Skip to content

chore: upgrade github actions #141

chore: upgrade github actions

chore: upgrade github actions #141

Workflow file for this run

# build and test
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
# "checks" job runs on linux + 16 only and checks that install, build, lint and audit work
# it also primes the pnpm store cache for linux, important for downstream tests
checks:
timeout-minutes: 5
runs-on: ${{ matrix.os }}
strategy:
matrix:
# pseudo-matrix for convenience, NEVER use more than a single combination
node: [16]
os: [ubuntu-latest]
outputs:
build_successful: ${{ steps.build.outcome == 'success' }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'
- name: install
run: pnpm install --frozen-lockfile --prefer-offline
# reactivate this when there is a build step
# - name: build
# id: build
# run: pnpm run build
- name: lint
if: (${{ success() }} || ${{ failure() }})
run: pnpm run lint
- name: audit
if: (${{ success() }} || ${{ failure() }})
run: pnpm audit
# this is the test matrix
# it is skipped if the build step of the checks job wasn't successful (still runs if lint or audit fail)
test:
needs: checks
if: (${{ success() }} || ${{ failure() }}) && (${{ needs.checks.output.build_successful }})
timeout-minutes: 10
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest ]
node: [ 16, 18, 20, 22 ]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'
- name: install
run: pnpm install --frozen-lockfile --prefer-offline
- name: run tests
run: pnpm test