Files
TallyNote/.gitea/workflows/release.yml
T
Qiufeng 32a73c5b50
TallyNote release / linux-x64 (push) Failing after 9m7s
release: 1.1.31 with detailed release notes
2026-09-04 13:06:44 +08:00

52 lines
1.9 KiB
YAML

name: TallyNote release
on:
push:
tags:
- "v*.*.*"
# A tag is the immutable input to a release. Publishing is kept in one job so
# SHA256SUMS covers every archive exactly once and the Gitea Release API never
# receives duplicate checksum assets from parallel architecture jobs.
permissions:
contents: write
jobs:
linux-x64:
runs-on: ubuntu-latest
steps:
- name: Checkout tag
uses: actions/checkout@v4
with:
# Release notes are derived from the previous version tag. A shallow
# checkout would leave only the synthetic release commit available.
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 24
- name: Enable pnpm
run: corepack enable && corepack prepare pnpm@9.0.6 --activate
- name: Verify tag and test gate
run: |
set -euo pipefail
test "$(node -p 'require("./package.json").version')" = "${GITHUB_REF_NAME#v}"
pnpm install --frozen-lockfile
pnpm check
# better-sqlite3 is a native addon; a single Vitest worker avoids a
# Node cleanup race observed on the hosted runner while preserving
# the complete test suite.
pnpm test -- --pool=forks --poolOptions.forks.singleFork=true --maxWorkers=1 --minWorkers=1
pnpm test:installer
- name: Build Linux release
run: pnpm release:build "${GITHUB_REF_NAME#v}" ./release
- name: Create and publish Gitea Release
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: ./scripts/publish-gitea-release.sh "$GITHUB_REF_NAME" ./release
# Linux x86 (i386/i686) is intentionally not published: Node.js 24 and the
# better-sqlite3/argon2/sharp native modules have no maintained 32-bit build.
# Add an ARM64 job only on a runner with native ARM64 support, then let the
# publisher aggregate all archives before signing one SHA256SUMS file.