Merge pull request #2046 from woocommerce/dev/wc-versions #2169
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 and WC version Matrix | |
runs-on: ubuntu-latest | |
outputs: | |
wp-versions: ${{ steps.wp.outputs.versions }} | |
wc-versions: ${{ steps.wc.outputs.versions }} | |
latest-wc-version: ${{ fromJson(steps.wc.outputs.versions)[0] }} | |
steps: | |
- name: Get Release versions from Wordpress | |
id: wp | |
uses: woocommerce/grow/get-plugin-releases@actions-v1 | |
with: | |
slug: wordpress | |
- name: Get Release versions from WooCommerce | |
id: wc | |
uses: woocommerce/grow/get-plugin-releases@actions-v1 | |
with: | |
slug: woocommerce | |
UnitTests: | |
name: PHP unit tests - PHP ${{ matrix.php }}, WP ${{ matrix.wp-version || 'latest' }}, WC ${{ matrix.wc-versions || 'latest' }} | |
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: [ latest ] | |
wc-versions: ${{ fromJson(needs.GetMatrix.outputs.wc-versions) }} | |
include: | |
- php: 8.2 | |
wp-version: latest | |
wc-versions: latest | |
- php: 7.4 | |
wp-version: ${{ fromJson(needs.GetMatrix.outputs.wp-versions)[2] }} # L-2 WP Version support | |
wc-versions: ${{ fromJson(needs.GetMatrix.outputs.wc-versions)[2] }} # L-2 WC Version support | |
- php: 8.1 | |
wp-version: latest | |
wc-versions: latest | |
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 }} ${{ matrix.wc-versions }} | |
- if: matrix.wc-versions == needs.GetMatrix.outputs.latest-wc-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 |