Files
cadence-ui/.github/workflows/publish-packages.yml
T

67 lines
1.5 KiB
YAML

name: Publish Packages
on:
push:
tags:
- "cadence-ui-v*"
permissions:
contents: read
id-token: write
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.25.0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm
registry-url: https://registry.npmjs.org
scope: "@ai-ui"
- name: Require npm token
shell: bash
run: |
set -euo pipefail
if [[ -z "${NPM_TOKEN:-}" ]]; then
echo "::error::NPM_TOKEN secret is required to publish @ai-ui packages."
exit 1
fi
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Verify tag matches package version
shell: bash
run: |
set -euo pipefail
expected_tag="$(node ./scripts/release-metadata.mjs --field tag)"
if [[ "${expected_tag}" != "${GITHUB_REF_NAME}" ]]; then
echo "::error::Tag ${GITHUB_REF_NAME} does not match package version tag ${expected_tag}."
exit 1
fi
- name: Run release validation
run: pnpm release:validate
- name: Publish packages
run: pnpm release:publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}