name: Run tests against PR in an environment with COT enabled on: pull_request: workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: {} jobs: cot-e2e-tests-run: name: Runs E2E tests with COT enabled. runs-on: ubuntu-20.04 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 - name: Load docker images and start containers with COT enabled. working-directory: plugins/woocommerce env: ENABLE_HPOS: 1 run: pnpm env:test:cot --filter=woocommerce - 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 working-directory: plugins/woocommerce run: pnpm exec playwright test --config=tests/e2e-pw/playwright.config.js - name: Generate Playwright E2E Test report. id: generate_e2e_report if: | always() && ( steps.run_playwright_e2e_tests.conclusion != 'cancelled' || steps.run_playwright_e2e_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 E2E test report if: | always() && steps.generate_e2e_report.conclusion == 'success' uses: actions/upload-artifact@v3 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 cot-api-tests-run: name: Runs API tests with COT enabled. 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 - name: Load docker images and start containers with COT enabled. working-directory: plugins/woocommerce env: ENABLE_HPOS: 1 run: pnpm env:test:cot --filter=woocommerce - 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 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