88 lines
3.6 KiB
YAML
88 lines
3.6 KiB
YAML
name: Run PHP unit tests
|
|
on: [pull_request]
|
|
|
|
jobs:
|
|
test-php:
|
|
env:
|
|
WP_CORE_DIR: '/tmp/wordpress'
|
|
COMPOSER_DEV: 1
|
|
|
|
runs-on: ubuntu-18.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php: ['7.1', '7.2', '7.3']
|
|
wordpress: ['5.4', '5.6']
|
|
woocommerce: ['4.8.0', '4.9.1']
|
|
phpunit: ['7.5.20']
|
|
composer: ['2.0.6']
|
|
include:
|
|
- php: '7.0'
|
|
wordpress: '5.6'
|
|
woocommerce: 'latest'
|
|
phpunit: '6.5.9'
|
|
composer: '1.10.19'
|
|
- php: '7.0'
|
|
wordpress: '5.6'
|
|
woocommerce: '4.9.1'
|
|
phpunit: '6.5.9'
|
|
composer: '2.0.6'
|
|
- php: '8.0'
|
|
wordpress: '5.6'
|
|
woocommerce: '5.1.0'
|
|
phpunit: '7.5.20'
|
|
composer: '2.0.6'
|
|
steps:
|
|
- name: Cancel Previous Runs
|
|
uses: styfle/cancel-workflow-action@0.7.0
|
|
with:
|
|
access_token: ${{ github.token }}
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v2
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@2.9.0
|
|
with:
|
|
php-version: ${{matrix.php}}
|
|
tools: phpunit:${{matrix.phpunit}}
|
|
extensions: mysqli
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v2-beta
|
|
with:
|
|
node-version: '14'
|
|
- name: Install PNPM and install dependencies
|
|
uses: pnpm/action-setup@v2.2.1
|
|
with:
|
|
version: ^6.24.2
|
|
run_install: true
|
|
- name: Set up the tests
|
|
env:
|
|
WP_VERSION: ${{matrix.wordpress}}
|
|
WC_VERSION: ${{matrix.woocommerce}}
|
|
PHP_UNIT: ${{matrix.phpunit}}
|
|
COMPOSER_VERSION: ${{matrix.composer}}
|
|
run: |
|
|
sudo /etc/init.d/mysql start
|
|
bash bin/ci/gh-install-wp-tests.sh wc_admin_test root 'root' localhost
|
|
cd "$WP_CORE_DIR/wp-content/plugins/woocommerce-admin/"
|
|
pnpm run build:feature-config
|
|
composer install
|
|
node --version
|
|
pnpm --version
|
|
timedatectl
|
|
- name: Add PHP8 Compatibility.
|
|
run: |
|
|
if [ "$(php -r "echo version_compare(PHP_VERSION,'8.0','>=');")" ]; then
|
|
cd "$WP_CORE_DIR/wp-content/plugins/woocommerce-admin/"
|
|
composer install
|
|
curl -L https://github.com/woocommerce/phpunit/archive/add-compatibility-with-php8-to-phpunit-7.zip -o /tmp/phpunit-7.5-fork.zip
|
|
unzip -d /tmp/phpunit-7.5-fork /tmp/phpunit-7.5-fork.zip
|
|
composer bin phpunit config --unset platform
|
|
composer bin phpunit config repositories.0 '{"type": "path", "url": "/tmp/phpunit-7.5-fork/phpunit-add-compatibility-with-php8-to-phpunit-7", "options": {"symlink": false}}'
|
|
composer bin phpunit require --dev -W phpunit/phpunit:@dev --ignore-platform-reqs
|
|
rm -rf ./vendor/phpunit/
|
|
composer dump-autoload
|
|
fi
|
|
- name: Run the PHP unit tests
|
|
run: bin/phpunit.sh
|
|
shell: bash
|