woocommerce/.github/workflows/pr-code-coverage.yml

77 lines
1.9 KiB
YAML

name: Run code coverage on PR
on:
pull_request
defaults:
run:
shell: bash
working-directory: plugins/woocommerce
jobs:
test:
name: Code coverage (PHP 7.4, WP Latest)
timeout-minutes: 20
runs-on: ubuntu-latest
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: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.7.0
with:
access_token: ${{ github.token }}
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 100
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
tools: composer
extensions: mysql
coverage: none
- name: Tool versions
run: |
php --version
composer --version
- name: Get cached composer directories
uses: actions/cache@v2
with:
path: |
./packages
./vendor
key: ${{ runner.os }}-${{ hashFiles('./composer.lock') }}
- name: Install PNPM and install dependencies
run: |
npm install -g pnpm
pnpm install
- name: Setup and install composer
run: pnpm nx composer-install woocommerce
- name: Build Admin feature config
working-directory: ./
run: |
pnpm nx build:feature-config woocommerce-admin
- name: Init DB and WP
run: pnpm nx install-unit-test-db woocommerce
- name: Run unit tests with code coverage. Allow to fail.
run: |
pnpm nx test-code-coverage woocommerce
exit 0
- name: Send code coverage to Codecov.
run: |
bash <(curl -s https://codecov.io/bash)