Refactor to extract Abilities base class #436
This file contains hidden or 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: E2E Tests | |
| on: | |
| pull_request: | |
| branches: [trunk] | |
| push: | |
| branches: [trunk] | |
| # Allow manually triggering the workflow | |
| workflow_dispatch: | |
| # Cancels all previous workflow runs for pull requests that have not completed | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} | |
| cancel-in-progress: true | |
| # Disable permissions for all available scopes by default | |
| permissions: {} | |
| jobs: | |
| test: | |
| name: Node ${{ matrix.node }} / WP ${{ matrix.wp }} | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| event: ['${{ github.event_name }}'] | |
| node: ['22', '24'] | |
| wp: ['latest', 'trunk'] | |
| exclude: | |
| # On PRs: only test Node 22 + WP trunk | |
| # TODO: Revert to WP latest on PRs once WP 6.9 is released with the Abilities API | |
| - event: 'pull_request' | |
| node: '24' | |
| - event: 'pull_request' | |
| wp: 'latest' | |
| env: | |
| WP_ENV_CORE: ${{ matrix.wp == 'trunk' && 'WordPress/WordPress' || null }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: | | |
| npm ci | |
| composer install --prefer-dist --no-progress | |
| - name: Npm build with coverage instrumentation | |
| env: | |
| COVERAGE_ENABLED: true | |
| run: npm run build | |
| - name: Install wp-env | |
| run: npm install -g @wordpress/env | |
| - name: Start wp-env | |
| run: wp-env start | |
| - name: Install Playwright browsers | |
| run: npx playwright install --with-deps | |
| - name: Run e2e tests with coverage | |
| run: npm run test:e2e:coverage | |
| - name: Generate LCOV report from Istanbul coverage | |
| if: always() | |
| run: npm run test:e2e:coverage:report | |
| - name: Upload E2E Coverage to Codecov | |
| if: always() | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: ./coverage/lcov.info | |
| flags: e2e | |
| slug: WordPress/secure-custom-fields | |
| name: e2e-coverage | |
| - name: Stop wp-env | |
| if: always() | |
| run: wp-env stop |