Testing #220
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: Testing | |
on: | |
push: | |
schedule: | |
# run tests on every week Monday | |
- cron: '0 0 * * 1' | |
jobs: | |
static_analyze: | |
name: Static Analyze | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP with PECL extension | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
coverage: xdebug | |
- name: Get composer cache directory | |
run: echo "COMPOSER_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV | |
- name: Cache dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.COMPOSER_DIR }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer-static-analyze- | |
- name: Install dependencies | |
run: composer install --no-progress --no-interaction | |
- name: Check runtime dependencies | |
run: composer check-platform-reqs | |
- name: Run composer validate | |
run: composer validate --strict | |
- name: Run composer normalize | |
run: composer normalize --dry-run | |
- name: Run coding style checker | |
run: vendor/bin/phpcs -v -s --standard=WordPress --no-cache --extensions=php --parallel=4 --ignore="vendor|tests" . | |
- name: Run static analysis | |
run: vendor/bin/phpstan --memory-limit=-1 --verbose | |
testing: | |
name: WordPress ${{ matrix.wordpress }}, PHP ${{ matrix.php }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
# https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/ | |
matrix: | |
wordpress: [ '6.5', '6.4', '6.3', '6.2', '6.1', '6.0', '5.9', '5.8', '5.7', '5.6', '5.5', '5.4', '5.3', '5.2', '5.1', '5.0' ] | |
php: [ '8.3', '8.2', '8.1', '8.0', '7.4', '7.3', '7.2' ] | |
exclude: | |
- { php: '7.4', wordpress: '5.0' } | |
- { php: '7.4', wordpress: '5.1' } | |
- { php: '7.4', wordpress: '5.2' } | |
- { php: '8.0', wordpress: '5.0' } | |
- { php: '8.0', wordpress: '5.1' } | |
- { php: '8.0', wordpress: '5.2' } | |
- { php: '8.0', wordpress: '5.3' } | |
- { php: '8.0', wordpress: '5.4' } | |
- { php: '8.0', wordpress: '5.5' } | |
- { php: '8.0', wordpress: '5.6' } | |
- { php: '8.0', wordpress: '5.7' } | |
- { php: '8.0', wordpress: '5.8' } | |
- { php: '8.1', wordpress: '5.0' } | |
- { php: '8.1', wordpress: '5.1' } | |
- { php: '8.1', wordpress: '5.2' } | |
- { php: '8.1', wordpress: '5.3' } | |
- { php: '8.1', wordpress: '5.4' } | |
- { php: '8.1', wordpress: '5.5' } | |
- { php: '8.1', wordpress: '5.6' } | |
- { php: '8.1', wordpress: '5.7' } | |
- { php: '8.1', wordpress: '5.8' } | |
- { php: '8.2', wordpress: '5.0' } | |
- { php: '8.2', wordpress: '5.1' } | |
- { php: '8.2', wordpress: '5.2' } | |
- { php: '8.2', wordpress: '5.3' } | |
- { php: '8.2', wordpress: '5.4' } | |
- { php: '8.2', wordpress: '5.5' } | |
- { php: '8.2', wordpress: '5.6' } | |
- { php: '8.2', wordpress: '5.7' } | |
- { php: '8.2', wordpress: '5.8' } | |
- { php: '8.2', wordpress: '5.9' } | |
- { php: '8.2', wordpress: '6.0' } | |
- { php: '8.3', wordpress: '5.0' } | |
- { php: '8.3', wordpress: '5.1' } | |
- { php: '8.3', wordpress: '5.2' } | |
- { php: '8.3', wordpress: '5.3' } | |
- { php: '8.3', wordpress: '5.4' } | |
- { php: '8.3', wordpress: '5.5' } | |
- { php: '8.3', wordpress: '5.6' } | |
- { php: '8.3', wordpress: '5.7' } | |
- { php: '8.3', wordpress: '5.8' } | |
- { php: '8.3', wordpress: '5.9' } | |
- { php: '8.3', wordpress: '6.0' } | |
- { php: '8.3', wordpress: '6.1' } | |
- { php: '8.3', wordpress: '6.2' } | |
- { php: '8.3', wordpress: '6.3' } | |
services: | |
mysql: | |
image: mariadb:11.1 | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: yes | |
ports: | |
- 3306:3306 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP with PECL extension | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
coverage: xdebug | |
- name: Get composer cache directory | |
run: echo "COMPOSER_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV | |
- name: Cache dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.COMPOSER_DIR }} | |
key: ${{ runner.os }}-composer-testing-${{ matrix.php }}-${{ matrix.wordpress }}-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer-testing- | |
- name: Remove linter packages to prevent platform issue | |
run: composer remove --dev --no-update dealerdirect/phpcodesniffer-composer-installer ergebnis/composer-normalize phpstan/phpstan szepeviktor/phpstan-wordpress wp-coding-standards/wpcs | |
- name: Set PHPUnit for WordPress 5.0 | |
if: ${{ matrix.wordpress <= '5.0' }} | |
run: composer require phpunit/phpunit:~6.5 --dev --no-update | |
- name: Set PHPUnit for WordPress 5.1 ~ 5.8 | |
if: ${{ matrix.wordpress >= '5.1' && matrix.wordpress <= '5.8' }} | |
run: composer require phpunit/phpunit:~7.5 --dev --no-update | |
- name: Set PHPUnit for WordPress 5.9 ~ 6.4 | |
if: ${{ matrix.wordpress >= '5.9' && matrix.php <= '7.2' }} | |
run: composer require phpunit/phpunit:~8.5 --dev --no-update | |
- name: Set PHPUnit for WordPress 5.9 ~ 6.4 | |
if: ${{ matrix.wordpress >= '5.9' && matrix.php >= '7.3' }} | |
run: composer require phpunit/phpunit:~9.5 --dev --no-update | |
- name: Install dependencies | |
run: composer update --no-progress --no-interaction | |
- name: Install WP Tests | |
run: bash ./bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 ${{ matrix.wordpress }} | |
- name: phpunit tests | |
run: vendor/bin/phpunit |