name: Run Blocks E2E Tests on: pull_request: paths: - 'plugins/woocommerce-blocks/**' - 'plugins/woocommerce/src/Blocks/**' - 'plugins/woocommerce/templates/**' - 'plugins/woocommerce/patterns/**' jobs: JSE2EWithGutenberg: if: ${{ false }} # disable until we've fixed failing tests. strategy: fail-fast: false matrix: part: [1, 2, 3, 4, 5] name: JavaScript E2E Tests (WP latest with Gutenberg plugin) runs-on: ubuntu-latest defaults: run: working-directory: plugins/woocommerce-blocks 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: Install Jest run: pnpm install -g jest - name: E2E Tests (WP latest with Gutenberg plugin) env: WOOCOMMERCE_BLOCKS_PHASE: 3 run: | node ./bin/wp-env-with-gutenberg.js npm run wp-env start npm run wp-env:config && npx cross-env NODE_CONFIG_DIR=tests/e2e-jest/config wp-scripts test-e2e --config tests/e2e-jest/config/jest.config.js --listTests > ~/.jest-e2e-tests npx cross-env JEST_PUPPETEER_CONFIG=tests/e2e-jest/config/jest-puppeteer.config.js cross-env NODE_CONFIG_DIR=tests/e2e-jest/config wp-scripts test-e2e --config tests/e2e-jest/config/jest.config.js --runInBand --runTestsByPath $( awk 'NR % 5 == ${{ matrix.part }} - 1' < ~/.jest-e2e-tests ) - name: Upload artifacts on failure if: ${{ failure() }} uses: actions/upload-artifact@v3.1.2 with: name: e2e-with-gutenberg-test-report-${{matrix.part}} path: reports/e2e - name: Archive flaky tests report uses: actions/upload-artifact@v3.1.2 if: always() with: name: flaky-tests-report-${{ matrix.part }} path: flaky-tests if-no-files-found: ignore JSE2ETests: name: JavaScript E2E Tests (latest) strategy: fail-fast: false matrix: part: [1, 2, 3, 4, 5] runs-on: ubuntu-latest defaults: run: working-directory: plugins/woocommerce-blocks 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: Install Jest run: pnpm install -g jest - name: E2E Tests (WP latest) env: WOOCOMMERCE_BLOCKS_PHASE: 3 run: | node ./bin/wp-env-with-wp-641.js pnpm --filter='@woocommerce/block-library' wp-env start pnpm wp-env:config pnpm --filter='@woocommerce/block-library' exec cross-env NODE_CONFIG_DIR=tests/e2e-jest/config wp-scripts test-e2e --config tests/e2e-jest/config/jest.config.js --listTests > ~/.jest-e2e-tests pnpm --filter='@woocommerce/block-library' exec cross-env JEST_PUPPETEER_CONFIG=tests/e2e-jest/config/jest-puppeteer.config.js cross-env NODE_CONFIG_DIR=tests/e2e-jest/config wp-scripts test-e2e --config tests/e2e-jest/config/jest.config.js --runInBand --runTestsByPath $( awk 'NR % 5 == ${{ matrix.part }} - 1' < ~/.jest-e2e-tests ) --listTests pnpm --filter='@woocommerce/block-library' exec cross-env JEST_PUPPETEER_CONFIG=tests/e2e-jest/config/jest-puppeteer.config.js cross-env NODE_CONFIG_DIR=tests/e2e-jest/config wp-scripts test-e2e --config tests/e2e-jest/config/jest.config.js --runInBand --runTestsByPath $( awk 'NR % 5 == ${{ matrix.part }} - 1' < ~/.jest-e2e-tests ) - name: Upload artifacts on failure if: ${{ failure() }} uses: actions/upload-artifact@v3.1.2 with: name: e2e-test-report-${{matrix.part}} path: reports/e2e - name: Archive flaky tests report uses: actions/upload-artifact@v3.1.2 # v2.2.2 if: always() with: name: flaky-tests-report-${{ matrix.part }} path: flaky-tests if-no-files-found: ignore