# NOTE: Changes to this file should also be applied to './test-windows.yml' name: Node.js Tests # **What it does**: Runs our tests. # **Why we have it**: We want our tests to pass before merging code. # **Who does it impact**: Docs engineering, open-source engineering contributors. on: workflow_dispatch: push: branches: - main pull_request: env: CI: true jobs: test: # Run on self-hosted if the private repo or ubuntu-latest if the public repo # See pull # 17442 in the private repo for context runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} timeout-minutes: 60 strategy: fail-fast: false matrix: # The same array lives in test-windows.yml, so make any updates there too. test-group: [ content, graphql, meta, rendering, routing, unit, linting, translations, ] 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 - name: Check out repo uses: actions/checkout@1e204e9a9253d643386038d443f96446fa156a97 with: # Enables cloning the Early Access repo later with the relevant PAT persist-credentials: 'false' - name: Setup node uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c with: node-version: 16.8.x cache: npm - name: Install dependencies run: npm ci - if: ${{ github.repository == 'github/docs-internal' }} name: Clone early access run: npm run heroku-postbuild env: DOCUBOT_REPO_PAT: ${{ secrets.DOCUBOT_REPO_PAT }} GIT_BRANCH: ${{ github.head_ref || github.ref }} - if: ${{ github.repository != 'github/docs-internal' }} name: Run build script run: npm run build - name: Run tests run: npm run test tests/${{ matrix.test-group }}/