Skip to content

Release

Release #18

Workflow file for this run

name: Release
'on':
workflow_dispatch:
inputs:
version:
description: 'Explicit CalVer (e.g. 2026.05.13-2). Empty = auto-compute today.'
required: false
type: string
default: ''
dry-run:
description: 'Dry-run preview only (no publish or push)'
required: false
type: boolean
default: false
permissions:
contents: write
id-token: write
concurrency:
group: release
cancel-in-progress: false
jobs:
release:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
persist-credentials: true
- name: Configure git identity
run: |
git config user.name "senpi-release-bot"
git config user.email "actions@github.com"
- name: Setup Node.js
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org/'
- name: Setup Bun
uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1
with:
bun-version: 1.2.20
- name: Install dependencies
run: npm install --no-audit --no-fund
- name: Build all workspaces (so husky pre-commit type check resolves)
run: npm run build
- name: Reset auto-generated and npm-install drift files (not part of release diff)
run: git checkout -- packages/ai/src/models.generated.ts packages/ai/src/image-models.generated.ts package-lock.json
- name: Run release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SENPI_SKIP_PM_VERIFY: '1'
run: |
ARGS=""
if [ -n "${{ inputs.version }}" ]; then
ARGS="$ARGS --version ${{ inputs.version }}"
fi
if [ "${{ inputs.dry-run }}" = "true" ]; then
ARGS="$ARGS --dry-run"
fi
npm run release -- $ARGS