chore(deps): bump peter-evans/close-issue from 1 to 3 #652
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
name: Node CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- '**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
prepare-yarn-cache: | |
name: Prepare yarn cache | |
strategy: | |
fail-fast: false | |
matrix: | |
# for some reason the Windows cache doesn't work | |
os: [ubuntu-latest, macOS-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: Validate cache | |
env: | |
# Use PnP and disable postinstall scripts as this just needs to | |
# populate the cache for the other jobs | |
YARN_NODE_LINKER: pnp | |
YARN_ENABLE_SCRIPTS: false | |
run: yarn --immutable | |
lint-and-typecheck: | |
name: Running TypeScript compiler & ESLint | |
runs-on: ubuntu-latest | |
needs: prepare-yarn-cache | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: install | |
run: yarn --immutable | |
- name: build | |
run: yarn build | |
- name: test typings | |
run: yarn test-types | |
- name: verify TypeScript@4.2 compatibility | |
run: yarn verify-old-ts | |
- name: verify Yarn PnP compatibility | |
run: yarn verify-pnp | |
- name: run eslint | |
run: yarn lint | |
- name: run prettier | |
run: yarn lint:prettier:ci | |
- name: check copyright headers | |
run: yarn check-copyright-headers | |
test: | |
name: Node v${{ matrix.node-version }} on ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [12.x, 14.x, 16.x, 17.x] | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
needs: prepare-yarn-cache | |
steps: | |
- name: Set git config | |
shell: bash | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.symlinks true | |
if: runner.os == 'Windows' | |
- uses: actions/checkout@v2 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: yarn | |
- name: install | |
run: yarn --immutable | |
- name: build | |
run: yarn build:js | |
- name: Get number of CPU cores | |
id: cpu-cores | |
uses: SimenB/github-actions-cpu-cores@v1 | |
- name: run tests | |
run: yarn test-ci-partial:parallel --max-workers ${{ steps.cpu-cores.outputs.count }} | |
test-jasmine: | |
name: Node LTS on ${{ matrix.os }} using jest-jasmine2 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
needs: prepare-yarn-cache | |
steps: | |
- name: Set git config | |
shell: bash | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.symlinks true | |
if: runner.os == 'Windows' | |
- uses: actions/checkout@v2 | |
- name: Use Node.js LTS | |
uses: actions/setup-node@v2 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: install | |
run: yarn --immutable | |
- name: build | |
run: yarn build:js | |
- name: Get number of CPU cores | |
id: cpu-cores | |
uses: SimenB/github-actions-cpu-cores@v1 | |
- name: run tests using jest-jasmine | |
run: yarn jest-jasmine-ci --max-workers ${{ steps.cpu-cores.outputs.count }} | |
test-coverage: | |
name: Node LTS on Ubuntu with coverage | |
runs-on: ubuntu-latest | |
needs: prepare-yarn-cache | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Use Node.js LTS | |
uses: actions/setup-node@v2 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: install | |
run: yarn --immutable | |
- name: build | |
run: yarn build:js | |
- name: Get number of CPU cores | |
id: cpu-cores | |
uses: SimenB/github-actions-cpu-cores@v1 | |
- name: run tests with coverage | |
run: | | |
yarn jest-coverage --color --config jest.config.ci.js --max-workers ${{ steps.cpu-cores.outputs.count }} | |
yarn test-leak | |
- name: map coverage | |
run: node ./scripts/mapCoverage.js | |
if: always() | |
- uses: codecov/codecov-action@v2 | |
if: always() | |
with: | |
directory: ./coverage |