[Snyk] Fix for 1 vulnerabilities #209
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] | |
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 | |
- 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 | |
- if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} | |
name: Run build script | |
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' | |
- name: Send Slack notification if workflow fails | |
uses: rtCamp/action-slack-notify@e17352feaf9aee300bf0ebc1dfbf467d80438815 | |
if: failure() && github.ref == 'early-access' | |
env: | |
SLACK_WEBHOOK: ${{ secrets.DOCS_ALERTS_SLACK_WEBHOOK }} | |
SLACK_MESSAGE: 'Tests are failing on the `early-access` branch. https://github.com/github/docs-internal/tree/early-access' |