Skip to content

Version Packages (#149) #390

Version Packages (#149)

Version Packages (#149) #390

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
# cancel in-progress runs on new commits to same PR (gitub.event.number)
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
cancel-in-progress: true
# use min permissions
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
ci:
timeout-minutes: 5
runs-on: ${{ matrix.os }}
strategy:
matrix:
# pseudo-matrix for convenience, NEVER use more than a single combination
node: [24]
os: [ubuntu-latest]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: 'false'
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ matrix.node }}
package-manager-cache: false # pnpm is not installed yet
- name: install pnpm
shell: bash
run: |
PNPM_VER=$(jq -r '.packageManager | if .[0:5] == "pnpm@" then .[5:] else "packageManager in package.json does not start with pnpm@\n" | halt_error(1) end' package.json)
echo installing pnpm version $PNPM_VER
npm i -g pnpm@$PNPM_VER
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ matrix.node }}
package-manager-cache: true # caches pnpm via packageManager field in package.json
cache: 'pnpm'
- name: install
run: pnpm install --frozen-lockfile --prefer-offline --ignore-scripts
- name: format
run: pnpm check:format
- name: lint
if: ${{ success() || failure() }}
run: pnpm check:lint
- name: types
if: ${{ success() || failure() }}
run: pnpm check:types
- name: audit
if: ${{ success() || failure() }}
run: pnpm check:audit
- name: publint
if: ${{ success() || failure() }}
run: pnpm check:publint
- name: generated types are up to date
if: ${{ success() || failure() }}
run: pnpm generate:types && [ "`git status --porcelain=v1`" == "" ]
- name: tests
if: ${{ success() || failure() }}
run: pnpm test