Testing #1751
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Testing | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| - master | |
| pull_request: | |
| schedule: | |
| - cron: '0 0 * * *' # Run every day at midnight. | |
| jobs: | |
| functional: #---------------------------------------------------------------------- | |
| name: ${{ matrix.test-package }} (Phar ${{ matrix.use-phar }} / WP ${{ matrix.wp }} / PHP ${{ matrix.php }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php: ['7.2', '8.5'] | |
| wp: ['latest'] | |
| mysql: ['8.0'] | |
| use-phar: [true] | |
| test-package: | |
| - wp-cli-bundle | |
| - wp-cli | |
| - ability-command | |
| - block-command | |
| - cache-command | |
| - checksum-command | |
| - config-command | |
| - core-command | |
| - cron-command | |
| - db-command | |
| - embed-command | |
| - entity-command | |
| - eval-command | |
| - export-command | |
| - extension-command | |
| - i18n-command | |
| - import-command | |
| - language-command | |
| - maintenance-mode-command | |
| - media-command | |
| - package-command | |
| - rewrite-command | |
| - role-command | |
| - scaffold-command | |
| - search-replace-command | |
| - server-command | |
| - shell-command | |
| - site-health-command | |
| - super-admin-command | |
| - widget-command | |
| include: | |
| - php: '7.2' | |
| wp: 'latest' | |
| mysql: '8.0' | |
| use-phar: true | |
| test-package: 'wp-cli-bundle' | |
| - php: '7.3' | |
| wp: 'latest' | |
| mysql: '8.0' | |
| use-phar: true | |
| test-package: 'wp-cli-bundle' | |
| - php: '7.4' | |
| wp: 'latest' | |
| mysql: '8.0' | |
| use-phar: true | |
| test-package: 'wp-cli-bundle' | |
| - php: '7.4' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: true | |
| test-package: 'wp-cli-bundle' | |
| - php: '8.0' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: true | |
| test-package: 'wp-cli-bundle' | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: true | |
| test-package: 'wp-cli-bundle' | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: wp-cli-bundle | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: wp-cli | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: cache-command | |
| # Checksums are not available for trunk versions of Core. | |
| # - php: '8.0' | |
| # wp: 'trunk' | |
| # mysql: '8.0' | |
| # use-phar: false | |
| # test-package: checksum-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: config-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: core-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: cron-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: db-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: embed-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: entity-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: eval-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: export-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: extension-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: i18n-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: import-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: language-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: maintenance-mode-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: media-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: package-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: rewrite-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: role-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: scaffold-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: search-replace-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: server-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: shell-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: super-admin-command | |
| - php: '8.5' | |
| wp: 'trunk' | |
| mysql: '8.0' | |
| use-phar: false | |
| test-package: widget-command | |
| runs-on: ubuntu-22.04 | |
| services: | |
| mysql: | |
| image: mysql:${{ matrix.mysql }} | |
| ports: | |
| - 3306 | |
| 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" | |
| steps: | |
| - name: Check out source code | |
| uses: actions/checkout@v6 | |
| - name: Check existence of composer.json & behat.yml files | |
| id: check_files | |
| uses: andstor/file-existence-action@v3 | |
| with: | |
| files: "composer.json, behat.yml" | |
| - name: Install Ghostscript | |
| if: steps.check_files.outputs.files_exists == 'true' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install ghostscript -y | |
| - name: Set up PHP environment | |
| if: steps.check_files.outputs.files_exists == 'true' | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '${{ matrix.php }}' | |
| extensions: gd, imagick, mysql, zip | |
| coverage: none | |
| tools: composer | |
| - name: Install Composer dependencies & cache dependencies | |
| if: steps.check_files.outputs.files_exists == 'true' | |
| uses: "ramsey/composer-install@v3" | |
| env: | |
| COMPOSER_ROOT_VERSION: dev-${{ github.event.repository.default_branch }} | |
| - name: Change ImageMagick policy to allow pdf->png conversion. | |
| if: steps.check_files.outputs.files_exists == 'true' | |
| run: | | |
| sudo sed -i 's/^.*policy.*coder.*none.*PDF.*//' /etc/ImageMagick-6/policy.xml | |
| - name: Setup MySQL Server | |
| id: setup-mysql | |
| if: ${{ matrix.dbtype != 'sqlite' }} | |
| uses: shogo82148/actions-setup-mysql@v1 | |
| with: | |
| mysql-version: ${{ matrix.mysql }} | |
| auto-start: true | |
| root-password: root | |
| user: wp_cli_test | |
| password: password1 | |
| my-cnf: | | |
| default_authentication_plugin=mysql_native_password | |
| - name: Configure DB environment | |
| if: ${{ matrix.dbtype != 'sqlite' }} | |
| run: | | |
| echo "MYSQL_HOST=127.0.0.1" >> $GITHUB_ENV | |
| echo "MYSQL_TCP_PORT=3306" >> $GITHUB_ENV | |
| echo "WP_CLI_TEST_DBROOTUSER=root" >> $GITHUB_ENV | |
| echo "WP_CLI_TEST_DBROOTPASS=root" >> $GITHUB_ENV | |
| echo "WP_CLI_TEST_DBNAME=wp_cli_test" >> $GITHUB_ENV | |
| echo "WP_CLI_TEST_DBUSER=wp_cli_test" >> $GITHUB_ENV | |
| echo "WP_CLI_TEST_DBPASS=password1" >> $GITHUB_ENV | |
| echo "WP_CLI_TEST_DBHOST=127.0.0.1:3306" >> $GITHUB_ENV | |
| - name: Prepare test database | |
| if: steps.check_files.outputs.files_exists == 'true' | |
| run: composer prepare-tests | |
| - name: Conditionally use Phar instead of source | |
| if: steps.check_files.outputs.files_exists == 'true' && matrix.use-phar == true | |
| run: echo "TEST_PHAR=nightly" >> $GITHUB_ENV | |
| - name: Check Behat environment | |
| if: steps.check_files.outputs.files_exists == 'true' | |
| env: | |
| WP_VERSION: '${{ matrix.wp }}' | |
| WP_CLI_TEST_DBSOCKET: '${{ steps.setup-mysql.outputs.base-dir }}/tmp/mysql.sock' | |
| run: WP_CLI_TEST_DEBUG_BEHAT_ENV=1 composer behat | |
| - name: Run Behat | |
| if: steps.check_files.outputs.files_exists == 'true' | |
| env: | |
| WP_VERSION: '${{ matrix.wp }}' | |
| TEST_PACKAGE: 'wp-cli/${{ matrix.test-package }}' | |
| WP_CLI_TEST_DBSOCKET: '${{ steps.setup-mysql.outputs.base-dir }}/tmp/mysql.sock' | |
| run: composer test |