Skip to content

Commit a64219e

Browse files
authored
Merge pull request #103 from wp-cli/fix/use-composer-prepare-in-gha
2 parents 6dfbd40 + 476f8f3 commit a64219e

File tree

3 files changed

+63
-27
lines changed

3 files changed

+63
-27
lines changed

.github/workflows/code-quality.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ jobs:
66

77
lint: #-----------------------------------------------------------------------
88
name: Lint PHP files
9-
runs-on: ubuntu-latest
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
php: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0']
13+
runs-on: ubuntu-20.04
1014
steps:
1115
- name: Check out source code
1216
uses: actions/checkout@v2
@@ -55,7 +59,7 @@ jobs:
5559

5660
phpcs: #----------------------------------------------------------------------
5761
name: PHPCS
58-
runs-on: ubuntu-latest
62+
runs-on: ubuntu-20.04
5963

6064
steps:
6165
- name: Check out source code

.github/workflows/testing.yml

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
fail-fast: false
1111
matrix:
1212
php: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0']
13-
runs-on: ubuntu-latest
13+
runs-on: ubuntu-20.04
1414

1515
steps:
1616
- name: Check out source code
@@ -58,38 +58,55 @@ jobs:
5858
run: composer phpunit
5959

6060
functional: #----------------------------------------------------------------------
61-
name: Functional - WP ${{ matrix.wp }} on PHP ${{ matrix.php }}
61+
name: Functional - WP ${{ matrix.wp }} on PHP ${{ matrix.php }} with MySQL ${{ matrix.mysql }}
6262
strategy:
6363
fail-fast: false
6464
matrix:
6565
php: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0']
6666
wp: ['latest']
67+
mysql: ['8.0']
6768
test: ["composer behat || composer behat-rerun"]
6869
include:
6970
- php: '5.6'
7071
wp: 'trunk'
72+
mysql: '8.0'
73+
test: "composer behat || composer behat-rerun"
74+
- php: '5.6'
75+
wp: 'trunk'
76+
mysql: '5.7'
77+
test: "composer behat || composer behat-rerun"
78+
- php: '5.6'
79+
wp: 'trunk'
80+
mysql: '5.6'
7181
test: "composer behat || composer behat-rerun"
7282
- php: '7.4'
7383
wp: 'trunk'
84+
mysql: '8.0'
85+
test: "composer behat || composer behat-rerun"
86+
- php: '8.0'
87+
wp: 'trunk'
88+
mysql: '8.0'
7489
test: "composer behat || composer behat-rerun"
7590
- php: '8.0'
7691
wp: 'trunk'
92+
mysql: '5.7'
93+
test: "composer behat || composer behat-rerun"
94+
- php: '8.0'
95+
wp: 'trunk'
96+
mysql: '5.6'
7797
test: "composer behat || composer behat-rerun"
7898
- php: '5.6'
7999
wp: '3.7'
100+
mysql: '5.6'
80101
test: "composer behat || composer behat-rerun"
81-
runs-on: ubuntu-latest
102+
runs-on: ubuntu-20.04
82103

83104
services:
84105
mysql:
85-
image: mysql:5.7
86-
env:
87-
MYSQL_DATABASE: wp_cli_test
88-
MYSQL_USER: root
89-
MYSQL_ROOT_PASSWORD: root
106+
image: mysql:${{ matrix.mysql }}
90107
ports:
91108
- 3306
92-
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
109+
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wp_cli_test --entrypoint sh mysql:${{ matrix.mysql }} -c "exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password"
93110

94111
steps:
95112
- name: Check out source code
@@ -133,17 +150,20 @@ jobs:
133150
if: steps.check_files.outputs.files_exists == 'true'
134151
run: sudo systemctl start mysql
135152

136-
- name: Prepare test database
153+
- name: Configure DB environment
137154
if: steps.check_files.outputs.files_exists == 'true'
138155
run: |
139156
export MYSQL_HOST=127.0.0.1
140157
export MYSQL_TCP_PORT=${{ job.services.mysql.ports['3306'] }}
158+
echo "WP_CLI_TEST_DBROOTUSER=root" >> $GITHUB_ENV
159+
echo "WP_CLI_TEST_DBROOTPASS=root" >> $GITHUB_ENV
141160
echo "WP_CLI_TEST_DBUSER=wp_cli_test" >> $GITHUB_ENV
142161
echo "WP_CLI_TEST_DBPASS=password1" >> $GITHUB_ENV
143162
echo "WP_CLI_TEST_DBHOST=$MYSQL_HOST:$MYSQL_TCP_PORT" >> $GITHUB_ENV
144-
mysql -e "CREATE DATABASE IF NOT EXISTS \`wp_cli_test\`;" -uroot -proot
145-
mysql -e "GRANT ALL PRIVILEGES ON \`wp_cli_test\`.* TO 'wp_cli_test'@'%' IDENTIFIED BY 'password1';" -uroot -proot
146-
mysql -e "GRANT ALL PRIVILEGES ON \`wp_cli_test_scaffold\`.* TO 'wp_cli_test'@'%' IDENTIFIED BY 'password1';" -uroot -proot
163+
164+
- name: Prepare test database
165+
if: steps.check_files.outputs.files_exists == 'true'
166+
run: composer prepare-tests
147167

148168
- name: Run Behat
149169
if: steps.check_files.outputs.files_exists == 'true'

bin/install-package-tests

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
# Database credentials can be provided via environment variables:
44
# - WP_CLI_TEST_DBHOST is the host to use and can include a port, i.e "127.0.0.1:33060" (defaults to "localhost")
5-
# - WP_CLI_TEST_DBUSER is the user that has permission to administer databases and users (defaults to "root").
6-
# - WP_CLI_TEST_DBPASS is the password to use for the above user (defaults to an empty password).
5+
# - WP_CLI_TEST_DBROOTUSER is the user that has permission to administer databases and users (defaults to "root").
6+
# - WP_CLI_TEST_DBROOTPASS is the password to use for the above user (defaults to an empty password).
7+
# - WP_CLI_TEST_DBUSER is the user that the tests run under (defaults to "wp_cli_test").
8+
# - WP_CLI_TEST_DBPASS is the password to use for the above user (defaults to "password1").
79

810
HOST=localhost
911
PORT=""
@@ -20,28 +22,38 @@ if [ -n "$WP_CLI_TEST_DBHOST" ]; then
2022
fi
2123

2224
USER=root
23-
if [ -n "$WP_CLI_TEST_DBUSER" ]; then
24-
USER="$WP_CLI_TEST_DBUSER"
25+
if [ -n "$WP_CLI_TEST_DBROOTUSER" ]; then
26+
USER="$WP_CLI_TEST_DBROOTUSER"
2527
fi
2628

2729
PASSWORD_STRING=""
30+
if [ -n "$WP_CLI_TEST_DBROOTPASS" ]; then
31+
PASSWORD_STRING="-p$WP_CLI_TEST_DBROOTPASS"
32+
fi
33+
34+
TEST_USER=wp_cli_test
35+
if [ -n "$WP_CLI_TEST_DBUSER" ]; then
36+
TEST_USER="$WP_CLI_TEST_DBUSER"
37+
fi
38+
39+
TEST_PASSWORD=password1
2840
if [ -n "$WP_CLI_TEST_DBPASS" ]; then
29-
PASSWORD_STRING="-p$WP_CLI_TEST_DBPASS"
41+
TEST_PASSWORD="$WP_CLI_TEST_DBPASS"
3042
fi
3143

3244
# Prepare the database for running the tests with a MySQL version 8.0 or higher.
3345
install_db_8_0_plus() {
34-
mysql -e "CREATE DATABASE IF NOT EXISTS wp_cli_test;" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
35-
mysql -e "CREATE USER IF NOT EXISTS wp_cli_test@$HOST IDENTIFIED BY 'password1'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
36-
mysql -e "GRANT ALL PRIVILEGES ON wp_cli_test.* TO wp_cli_test@$HOST" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
37-
mysql -e "GRANT ALL PRIVILEGES ON wp_cli_test_scaffold.* TO wp_cli_test@$HOST" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
46+
mysql -e "CREATE DATABASE IF NOT EXISTS \`wp_cli_test\`;" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
47+
mysql -e "CREATE USER IF NOT EXISTS \`wp_cli_test\`@'%' IDENTIFIED WITH mysql_native_password BY '$TEST_PASSWORD'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
48+
mysql -e "GRANT ALL PRIVILEGES ON \`wp_cli_test\`.* TO '$TEST_USER'@'%'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
49+
mysql -e "GRANT ALL PRIVILEGES ON \`wp_cli_test_scaffold\`.* TO '$TEST_USER'@'%'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
3850
}
3951

4052
# Prepare the database for running the tests with a MySQL version lower than 8.0.
4153
install_db_lower_than_8_0() {
42-
mysql -e "CREATE DATABASE IF NOT EXISTS wp_cli_test;" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
43-
mysql -e "GRANT ALL ON wp_cli_test.* TO wp_cli_test@$HOST IDENTIFIED BY 'password1'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
44-
mysql -e "GRANT ALL ON wp_cli_test_scaffold.* TO wp_cli_test@$HOST IDENTIFIED BY 'password1'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
54+
mysql -e "CREATE DATABASE IF NOT EXISTS \`wp_cli_test\`;" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
55+
mysql -e "GRANT ALL ON \`wp_cli_test\`.* TO '$TEST_USER'@'%' IDENTIFIED BY '$TEST_PASSWORD'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
56+
mysql -e "GRANT ALL ON \`wp_cli_test_scaffold\`.* TO '$TEST_USER'@'%' IDENTIFIED BY '$TEST_PASSWORD'" $HOST_STRING -u"$USER" "$PASSWORD_STRING"
4557
}
4658

4759
set -ex

0 commit comments

Comments
 (0)