ci: run checks on every push, publish only on tag
Same split as pulsenode's workflow: previously this only ran at all when pushing a version tag, so lint/typecheck/format/test never ran on regular commits or PRs - a broken push could sit unnoticed until someone tried to cut a release. Now checks run on every push and PR; publish to the npm registry stays gated to a tag push and requires checks to pass first. Renamed release.yaml -> ci.yml to match.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*.*.*"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: https://github.com/actions/checkout@v4
|
||||
|
||||
- uses: https://github.com/pnpm/action-setup@v4
|
||||
with:
|
||||
version: 11.21.0
|
||||
|
||||
- uses: https://github.com/actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
|
||||
- run: pnpm run lint
|
||||
- run: pnpm run typecheck
|
||||
- run: pnpm run format:check
|
||||
- run: pnpm run test
|
||||
|
||||
- name: Set package version from the tag
|
||||
run: npm pkg set version="${GITHUB_REF_NAME#v}"
|
||||
|
||||
# Scoped to this one registry host+path (via publishConfig.registry in package.json) rather
|
||||
# than actions/setup-node's registry-url, which would set it as the *default* registry for
|
||||
# every install - breaking `pnpm install` for this project's own (unscoped, public) deps.
|
||||
- name: Configure registry auth for publish
|
||||
run: pnpm config set "//dev.pivoine.art/api/packages/valknar/npm/:_authToken" "$PACKAGE_TOKEN"
|
||||
env:
|
||||
PACKAGE_TOKEN: ${{ secrets.PACKAGE_TOKEN }}
|
||||
|
||||
- name: Publish to Gitea npm registry
|
||||
run: pnpm publish --no-git-checks
|
||||
Reference in New Issue
Block a user