Release #17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |