Skip to content

When checking for excluded files, use the normalized path to ensure that it works in Windows environments. #1799

When checking for excluded files, use the normalized path to ensure that it works in Windows environments.

When checking for excluded files, use the normalized path to ensure that it works in Windows environments. #1799

Workflow file for this run

name: PHP Unit Testing
on:
push:
branches:
- trunk
- 'release/**'
# Only run if PHP-related files changed.
paths:
- '.github/workflows/php-test.yml'
- '**.php'
- '.wp-env.json'
- '**/package.json'
- 'package-lock.json'
- 'phpunit.xml.dist'
- 'composer.json'
- 'composer.lock'
pull_request:
branches:
- trunk
- 'release/**'
- 'feature/**'
# Only run if PHP-related files changed.
paths:
- '.github/workflows/php-test.yml'
- '**.php'
- '.wp-env.json'
- '**/package.json'
- 'package-lock.json'
- 'phpunit.xml.dist'
- 'composer.json'
- 'composer.lock'
types:
- opened
- reopened
- synchronize
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
php-test:
name: PHP ${{ matrix.php }} - WP ${{ matrix.wordpress }}${{ matrix.experimental && ' (experimental)' || '' }}${{ matrix.coverage && ' (with coverage)' || '' }}
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: true
matrix:
php:
- '7.3'
- '7.4'
- '8.0'
- '8.1'
wordpress: [ 'latest' ]
include:
- php: '7.2'
wordpress: '6.3'
- php: '8.2'
wordpress: 'latest'
coverage: true
- php: '8.3'
wordpress: 'trunk'
experimental: true
env:
WP_ENV_PHP_VERSION: ${{ matrix.php }}
WP_ENV_CORE: ${{ matrix.wordpress == 'trunk' && 'WordPress/WordPress' || format( 'https://wordpress.org/wordpress-{0}.zip', matrix.wordpress ) }}
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- name: Setup Node.js (.nvmrc)
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: npm
- name: npm install
run: npm ci
- name: Start WordPress
run: |
if [[ ${{ matrix.coverage == true }} == true ]]; then
npm run wp-env start -- --xdebug=coverage
else
npm run wp-env start
fi
- name: Run tests
run: |
if [[ ${{ matrix.coverage == true }} == true ]]; then
npm run test-php-coverage
npm run test-php-multisite-coverage
else
npm run test-php
npm run test-php-multisite
fi
- name: Upload code coverage report
if: ${{ matrix.coverage }}
uses: codecov/codecov-action@893cfea3da0870ceb77096be8b5fe014720f3c32
with:
file: build/logs/*.xml
flags: unit
token: ${{ secrets.CODECOV_TOKEN }}
phpcs-sniffs:
name: PHP (Sniffs) ${{ matrix.php }} ${{ matrix.coverage && ' (with coverage)' || '' }}
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: true
matrix:
php:
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
wordpress: [ 'latest' ]
include:
- php: '8.3'
coverage: true
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- name: Install PHP dependencies
uses: ramsey/composer-install@57532f8be5bda426838819c5ee9afb8af389d51a
with:
working-directory: "phpcs-sniffs"
- name: Run tests
working-directory: "phpcs-sniffs"
run: |
if [[ ${{ matrix.coverage == true }} == true ]]; then
composer run-tests -- --coverage-clover ../build/logs/phpcs-coverage.xml
else
composer run-tests
fi
- name: Upload code coverage report
if: ${{ matrix.coverage }}
uses: codecov/codecov-action@893cfea3da0870ceb77096be8b5fe014720f3c32
with:
file: build/logs/*.xml
flags: phpcs-sniffs
token: ${{ secrets.CODECOV_TOKEN }}