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: 15 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)