[Snyk] Fix for 4 vulnerabilities #14
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
# NOTE: Changes to this file should also be applied to './test-windows.yml' and './test-translations.yml' | |
name: Node.js Tests | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches-ignore: | |
- translations | |
env: | |
CI: true | |
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/test.yml", ".node-version", ".npmrc", "app.json", "content/**", "data/**","lib/**", "Dockerfile", "feature-flags.json", "Gemfile", "Gemfile.lock", "middleware/**", "node_modules/**","package.json", "package-lock.json", "server.js", "tests/**", "translations/**", "Procfile", "webpack.config.js"]' | |
test: | |
needs: see_if_should_skip | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
strategy: | |
fail-fast: false | |
matrix: | |
test-group: | |
[content, meta, rendering, routing, unit, links-and-images, graphql] | |
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: Check out repo | |
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f | |
with: | |
# Enables cloning the Early Access repo later with the relevant PAT | |
persist-credentials: 'false' | |
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} | |
name: Setup node | |
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d | |
with: | |
node-version: 14.x | |
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} | |
name: Get npm cache directory | |
id: npm-cache | |
run: | | |
echo "::set-output name=dir::$(npm config get cache)" | |
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} | |
name: Cache node modules | |
uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a | |
with: | |
path: ${{ steps.npm-cache.outputs.dir }} | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} | |
name: Install dependencies | |
run: npm ci | |
- name: Clone early access | |
if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' && github.repository == 'github/docs-internal' }} | |
run: npm run heroku-postbuild | |
env: | |
DOCUBOT_REPO_PAT: ${{ secrets.DOCUBOT_REPO_PAT }} | |
GIT_BRANCH: ${{ github.ref }} | |
- name: Run build script | |
if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' && github.repository != 'github/docs-internal' }} | |
run: npm run build | |
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} | |
name: Run tests | |
run: npx jest tests/${{ matrix.test-group }}/ | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' |