Product Collection: Make attributes available in rest_product_query hook #5941
Workflow file for this run
This file contains 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: Run tests against PR in an environment with HPOS disabled | |
on: | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: {} | |
jobs: | |
non-hpos-e2e-tests-run: | |
name: Runs E2E tests with HPOS disabled. | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 60 | |
strategy: | |
fail-fast: false | |
matrix: | |
shard: | |
[ | |
{ number: 1, name: 1/5 }, | |
{ number: 2, name: 2/5 }, | |
{ number: 3, name: 3/5 }, | |
{ number: 4, name: 4/5 }, | |
{ number: 5, name: 5/5 }, | |
] | |
permissions: | |
contents: read | |
env: | |
ALLURE_RESULTS_DIR: ${{ github.workspace }}/plugins/woocommerce/tests/e2e-pw/allure-results | |
ALLURE_REPORT_DIR: ${{ github.workspace }}/plugins/woocommerce/tests/e2e-pw/allure-report | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup WooCommerce Monorepo | |
uses: ./.github/actions/setup-woocommerce-monorepo | |
with: | |
install: '@woocommerce/plugin-woocommerce...' | |
build: '@woocommerce/plugin-woocommerce' | |
- name: Load docker images and start containers | |
working-directory: plugins/woocommerce | |
run: pnpm env:test | |
- name: Download and install Chromium browser. | |
working-directory: plugins/woocommerce | |
run: pnpm exec playwright install chromium | |
- name: Run Playwright E2E tests. | |
timeout-minutes: 60 | |
id: run_playwright_e2e_tests | |
env: | |
USE_WP_ENV: 1 | |
ENABLE_HPOS: 0 | |
FORCE_COLOR: 1 | |
working-directory: plugins/woocommerce | |
run: pnpm exec playwright test --config=tests/e2e-pw/playwright.config.js --shard ${{ matrix.shard.name }} | |
- name: Upload reports to GitHub Actions Artifacts | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: all-blob-reports-${{ matrix.shard.number }} | |
path: ${{ env.ALLURE_RESULTS_DIR }} | |
retention-days: 1 | |
compression-level: 9 | |
e2e-tests-success: | |
name: Evaluate e2e tests results | |
runs-on: ubuntu-latest | |
needs: non-hpos-e2e-tests-run | |
if: ${{ always() }} | |
steps: | |
- run: | | |
result="${{ needs.non-hpos-e2e-tests-run.result }}" | |
if [[ $result != "success" && $result != "skipped" ]]; then | |
echo "One or more e2e tests have failed!" | |
exit 1 | |
fi | |
echo "e2e tests have completed successfully." | |
merge-reports: | |
name: Merge e2e test reports | |
# Merge reports after playwright-tests, even if some shards have failed | |
if: always() | |
needs: [e2e-tests-success] | |
runs-on: ubuntu-latest | |
env: | |
ALLURE_RESULTS_DIR: ${{ github.workspace }}/plugins/woocommerce/tests/e2e-pw/test-results/allure-results | |
ALLURE_REPORT_DIR: ${{ github.workspace }}/plugins/woocommerce/tests/e2e-pw/test-results/allure-report | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup WooCommerce Monorepo | |
uses: ./.github/actions/setup-woocommerce-monorepo | |
with: | |
install: '@woocommerce/plugin-woocommerce...' | |
build: '@woocommerce/plugin-woocommerce' | |
- name: Download blob reports from GitHub Actions Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ env.ALLURE_RESULTS_DIR }} | |
pattern: all-blob-reports-* | |
run-id: e2e-tests-run | |
merge-multiple: true | |
- name: Generate Playwright E2E Test report. | |
id: generate_e2e_report | |
working-directory: plugins/woocommerce | |
run: pnpm exec allure generate --clean ${{ env.ALLURE_RESULTS_DIR }} --output ${{ env.ALLURE_REPORT_DIR }} | |
- name: Archive Playwright E2E test report | |
if: | | |
always() && | |
steps.generate_e2e_report.conclusion == 'success' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: e2e-test-report---pr-${{ github.event.number }} | |
path: | | |
${{ env.ALLURE_RESULTS_DIR }} | |
${{ env.ALLURE_REPORT_DIR }} | |
if-no-files-found: ignore | |
retention-days: 5 | |
non-hpos-api-tests-run: | |
name: Runs API tests with HPOS disabled. | |
runs-on: ubuntu-20.04 | |
permissions: | |
contents: read | |
env: | |
ALLURE_RESULTS_DIR: ${{ github.workspace }}/plugins/woocommerce/tests/api-core-tests/api-test-report/allure-results | |
ALLURE_REPORT_DIR: ${{ github.workspace }}/plugins/woocommerce/tests/api-core-tests/api-test-report/allure-report | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup WooCommerce Monorepo | |
uses: ./.github/actions/setup-woocommerce-monorepo | |
with: | |
install: '@woocommerce/plugin-woocommerce...' | |
build: '@woocommerce/plugin-woocommerce' | |
- name: Load docker images and start containers | |
working-directory: plugins/woocommerce | |
run: pnpm --filter='@woocommerce/plugin-woocommerce' env:test | |
- name: Run Playwright API tests. | |
id: run_playwright_api_tests | |
working-directory: plugins/woocommerce | |
env: | |
BASE_URL: http://localhost:8086 | |
USER_KEY: admin | |
USER_SECRET: password | |
ENABLE_HPOS: 0 | |
run: pnpm exec playwright test --config=tests/api-core-tests/playwright.config.js | |
- name: Generate Playwright API Test report. | |
id: generate_api_report | |
if: | | |
always() && | |
( | |
steps.run_playwright_api_tests.conclusion != 'cancelled' || | |
steps.run_playwright_api_tests.conclusion != 'skipped' | |
) | |
working-directory: plugins/woocommerce | |
run: pnpm exec allure generate --clean ${{ env.ALLURE_RESULTS_DIR }} --output ${{ env.ALLURE_REPORT_DIR }} | |
- name: Archive Playwright API test report | |
if: | | |
always() && | |
steps.generate_api_report.conclusion == 'success' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: api-test-report---pr-${{ github.event.number }} | |
path: | | |
${{ env.ALLURE_RESULTS_DIR }} | |
${{ env.ALLURE_REPORT_DIR }} | |
if-no-files-found: ignore | |
retention-days: 5 |