Skip to content

chore(release): publish #38

chore(release): publish

chore(release): publish #38

Workflow file for this run

name: Release
on:
push:
tags:
- "@wdprlib/ast@*"
- "@wdprlib/parser@*"
- "@wdprlib/render@*"
- "@wdprlib/decompiler@*"
- "@wdprlib/runtime@*"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
jobs:
release:
runs-on: ubuntu-latest
environment: release
permissions:
contents: write
id-token: write
steps:
- name: Extract package directory from tag
id: package
run: |
TAG="${GITHUB_REF_NAME}"
# @wdprlib/render@1.0.1 → render
SCOPED="${TAG%@*}"
DIR="${SCOPED#@wdprlib/}"
echo "dir=packages/${DIR}" >> "$GITHUB_OUTPUT"
echo "Publishing: ${SCOPED} from packages/${DIR}"
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- uses: actions/setup-node@v6
with:
node-version: "24"
registry-url: "https://registry.npmjs.org"
- run: bun install --frozen-lockfile
- run: bun run build
- name: Resolve workspace dependencies
run: |
for pkg in packages/*/; do
if [ -f "$pkg/package.json" ]; then
echo "Resolving deps for $pkg"
(cd "$pkg" && node ../../scripts/resolve-workspace-deps.js)
fi
done
- name: Publish to npm (OIDC Trusted Publishing)
working-directory: ${{ steps.package.outputs.dir }}
run: npm publish --access public
env:
NPM_CONFIG_PROVENANCE: true