name: Browser Tests # **What it does**: This runs our browser tests on pull requests. # **Why we have it**: This is the only way we currently test our browser JavaScript. # **Who does it impact**: Docs engineering, open-source engineering contributors. on: workflow_dispatch: push: branches: - main pull_request: jobs: see_if_should_skip: continue-on-error: true runs-on: ubuntu-latest # Map a step output to a job output outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - id: skip_check uses: fkirc/skip-duplicate-actions@36feb0d8d062137530c2e00bd278d138fe191289 with: cancel_others: 'false' github_token: ${{ github.token }} paths: '[".github/workflows/browser-test.yml","assets/**", "content/**", "data/**", "includes/**", "javascripts/**", "jest-puppeteer.config.js", "jest.config.js", "layouts/**", "lib/**", "middleware/**", "package-lock.json", "package.json", "server.js", "translations/**", "webpack.config.js"]' build: needs: see_if_should_skip runs-on: ubuntu-latest steps: # Each of these ifs needs to be repeated at each step to make sure the required check still runs # Even if if doesn't do anything - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} name: Checkout uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} name: Setup Node uses: actions/setup-node@c46424eee26de4078d34105d3de3cc4992202b1e with: node-version: 14.x - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} name: Install uses: rachmari/puppeteer-container@6d56d6e132a3df76cf60bc290a4282f7fbaed05e timeout-minutes: 5 with: args: npm ci - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} name: Test timeout-minutes: 10 uses: rachmari/puppeteer-container@6d56d6e132a3df76cf60bc290a4282f7fbaed05e with: args: npm run browser-test