Skip to content

chore(release): 0.12.0 #13

chore(release): 0.12.0

chore(release): 0.12.0 #13

Workflow file for this run

name: Publish
on:
push:
tags:
- 'v*'
concurrency:
group: publish
cancel-in-progress: false
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # for OIDC trusted publishing and npm provenance
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 22
cache: npm
registry-url: https://registry.npmjs.org
# Trusted publishing requires npm CLI >=11.5.1, newer than what Node 22 bundles
- run: npm install -g npm@latest
- run: npm ci
# Run the full CI suite before publishing
- run: npm run lint
- run: npm run format:check
- run: npm run test
- run: npm run type-check
- run: npm run build
# Only the packages actually bumped for this release get published — see CLAUDE.md's
# "Release process": core/react/vue/vanilla share one version-number pool but a release
# only bumps the ones that changed, so an unpublished-bump-free package here is expected,
# not an error. @vates/data-table-solid started its own independent version count at 0.1.0
# when it was split out of vanilla, until a future release folds it into the shared pool.
# `npm publish` itself refuses to republish a version already on the registry, so skip
# ahead of time rather than letting that fail the whole job.
- name: Publish changed packages
run: |
for pkg in core react vue solid vanilla; do
name=$(node -p "require('./packages/$pkg/package.json').name")
version=$(node -p "require('./packages/$pkg/package.json').version")
if npm view "$name@$version" version >/dev/null 2>&1; then
echo "$name@$version already published, skipping"
else
echo "Publishing $name@$version"
npm publish -w "packages/$pkg" --provenance --access public
fi
done