woocommerce/.github/workflows/pr-unit-tests.yml

97 lines
3.0 KiB
YAML
Raw Normal View History

2021-01-21 12:03:07 +00:00
name: Run unit tests on PR
on:
pull_request
2021-10-13 03:51:07 +00:00
defaults:
run:
shell: bash
2022-04-21 16:45:12 +00:00
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
2021-01-21 12:03:07 +00:00
jobs:
test:
name: PHP ${{ matrix.php }} WP ${{ matrix.wp }}
timeout-minutes: 20
2021-01-21 12:03:07 +00:00
runs-on: ubuntu-latest
2021-08-09 16:55:53 +00:00
continue-on-error: ${{ matrix.wp == 'nightly' }}
2021-01-21 12:03:07 +00:00
strategy:
fail-fast: false
2021-01-21 12:03:07 +00:00
matrix:
php: [ '7.2', '7.3', '7.4', '8.0' ]
2021-01-21 12:03:07 +00:00
wp: [ "latest" ]
include:
- wp: nightly
php: '7.4'
- wp: '5.8'
2021-01-21 12:03:07 +00:00
php: 7.2
- wp: '5.7'
2021-01-21 12:03:07 +00:00
php: 7.2
services:
database:
image: mysql:5.6
env:
MYSQL_ROOT_PASSWORD: root
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: composer
extensions: mysql
coverage: none
- name: Tool versions
run: |
php --version
composer --version
2022-04-21 16:45:12 +00:00
- name: Get cached composer and pnpm directories
uses: actions/cache@v3
id: cache-deps
2021-01-21 12:03:07 +00:00
with:
path: |
2022-04-21 16:45:12 +00:00
~/.pnpm-store
plugins/woocommerce/packages
plugins/woocommerce/vendor
key: ${{ runner.os }}-npm-composer-${{ hashFiles('plugins/woocommerce/composer.lock', '**/pnpm-lock.yaml') }}
- name: Install PNPM
run: npm install -g pnpm
- name: Install dependencies
run: pnpm install
- name: Install Composer dependencies
if: steps.cache-deps.outputs.cache-hit != 'true'
run: pnpm nx composer-install woocommerce
2021-01-21 12:03:07 +00:00
- name: Build Admin feature config
run: |
2022-04-06 03:27:37 +00:00
pnpm nx build:feature-config woocommerce
2021-01-21 12:03:07 +00:00
- name: Add PHP8 Compatibility.
run: |
if [ "$(php -r "echo version_compare(PHP_VERSION,'8.0','>=');")" ]; then
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
2022-04-21 16:45:12 +00:00
cd plugins/woocommerce
2021-01-21 12:03:07 +00:00
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/
2022-04-21 18:29:53 +00:00
pnpm nx composer-dump-autoload woocommerce
2021-08-09 16:00:29 +00:00
fi
2021-01-21 12:03:07 +00:00
- name: Init DB and WP
2022-04-21 16:45:12 +00:00
working-directory: plugins/woocommerce
2021-01-21 12:03:07 +00:00
run: ./tests/bin/install.sh woo_test root root 127.0.0.1 ${{ matrix.wp }}
- name: Run tests
2021-11-18 15:09:03 +00:00
run: pnpm nx test-unit woocommerce