Merge pull request #2022 from woocommerce/fix/2021-php82-deprecations #2115
This file contains 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: PHP Unit Tests | |
on: | |
push: | |
branches: | |
- trunk | |
- develop | |
paths: | |
- "**.php" | |
- composer.json | |
- composer.lock | |
- .github/workflows/php-unit-tests.yml | |
pull_request: | |
paths: | |
- "**.php" | |
- composer.json | |
- composer.lock | |
- .github/workflows/php-unit-tests.yml | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
GetMatrix: | |
name: Get WP version Matrix | |
runs-on: ubuntu-latest | |
outputs: | |
wp-versions: ${{ steps.wp.outputs.versions }} | |
latest-wp-version: ${{ fromJson(steps.wp.outputs.versions)[0] }} | |
steps: | |
- name: Get Release versions from Wordpress | |
id: wp | |
uses: woocommerce/grow/get-plugin-releases@actions-v1 | |
with: | |
slug: wordpress | |
UnitTests: | |
name: PHP unit tests - PHP ${{ matrix.php }}, WP ${{ matrix.wp-version }} | |
needs: GetMatrix | |
runs-on: ubuntu-latest | |
env: | |
WP_CORE_DIR: "/tmp/wordpress/src" | |
WP_TESTS_DIR: "/tmp/wordpress/tests/phpunit" | |
strategy: | |
matrix: | |
php: [8.0] | |
wp-version: ${{ fromJson(needs.GetMatrix.outputs.wp-versions) }} | |
include: | |
- php: 7.4 | |
wp-version: ${{ needs.GetMatrix.outputs.latest-wp-version }} | |
- php: 8.1 | |
wp-version: ${{ needs.GetMatrix.outputs.latest-wp-version }} | |
- php: 8.2 | |
wp-version: ${{ needs.GetMatrix.outputs.latest-wp-version }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Prepare PHP | |
uses: woocommerce/grow/prepare-php@actions-v1 | |
with: | |
php-version: "${{ matrix.php }}" | |
- name: Prepare MySQL | |
uses: woocommerce/grow/prepare-mysql@actions-v1 | |
- name: Install WP tests | |
run: ./bin/install-wp-tests.sh wordpress_test root root localhost ${{ matrix.wp-version }} | |
- if: matrix.wp-version == needs.GetMatrix.outputs.latest-wp-version && matrix.php == 8.0 | |
name: Set condition to generate coverage report (only on latest versions) | |
run: echo "generate_coverage=true" >> $GITHUB_ENV | |
- if: env.generate_coverage != 'true' | |
name: Run PHP unit tests | |
run: composer test-unit | |
- if: env.generate_coverage == 'true' | |
name: Run PHP unit tests (with code coverage) | |
run: phpdbg -qrr vendor/bin/phpunit --coverage-clover=tests/php-coverage/report.xml | |
- if: env.generate_coverage == 'true' | |
name: PHP unit coverage report | |
uses: codecov/codecov-action@v3 | |
with: | |
files: tests/php-coverage/report.xml | |
flags: php-unit-tests | |
name: php-coverage-report |