GitHub Actions: run JavaScript tests
Solution
Note: the first example uses npm. For Yarn, see below
NPM:
# .github/workflows/test.yml
name: Run tests
on: [ push, pull_request, workflow_call ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
- run: npm test
Using it in other workflows:
# .github/workflows/publish.yml
name: Publish npm package
on:
push:
tags:
- "*"
jobs:
test:
uses: ./.github/workflows/test.yml
github-release:
runs-on: ubuntu-latest
needs: [test]
steps:
# ...
Yarn:
# .github/workflows/test.yml
name: Run tests
on: [ push, pull_request, workflow_call ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: yarn install --immutable
- run: yarn test
Yarn:
# .github/workflows/test.yml
name: Run tests
on: [push, pull_request, workflow_call]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: yarn install --immutable
- run: yarn test