Skip to content

chore: release v1.0.5 #14

chore: release v1.0.5

chore: release v1.0.5 #14

Workflow file for this run

name: Publish Packages
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.release.outputs.version }}
npm_tag: ${{ steps.release.outputs.npm_tag }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Determine release version and npm tag
id: release
shell: bash
run: |
VERSION="${GITHUB_REF_NAME#v}"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
if [[ "$VERSION" == *"-next."* ]]; then
echo "npm_tag=next" >> "$GITHUB_OUTPUT"
elif [[ "$VERSION" == *"-dev."* ]]; then
echo "npm_tag=dev" >> "$GITHUB_OUTPUT"
else
echo "npm_tag=latest" >> "$GITHUB_OUTPUT"
fi
- name: Ensure latest tags are on main
if: steps.release.outputs.npm_tag == 'latest'
shell: bash
run: |
git fetch origin main --depth=1
if ! git branch -r --contains "$GITHUB_SHA" | grep -q 'origin/main$'; then
echo "Latest releases must be tagged from main." >&2
exit 1
fi
verify:
needs: prepare
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Verify release
run: pnpm verify
publish-core:
needs:
- prepare
- verify
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Build core runtime
run: pnpm --filter @arrow-js/core build
- name: Publish @arrow-js/core
working-directory: packages/core
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
publish-highlight:
needs:
- prepare
- verify
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Build @arrow-js/highlight
run: pnpm --filter @arrow-js/highlight build
- name: Publish @arrow-js/highlight
working-directory: packages/highlight
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
publish-vite-plugin-arrow:
needs:
- prepare
- verify
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Publish @arrow-js/vite-plugin-arrow
working-directory: packages/vite-plugin-arrow
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
publish-skill:
needs:
- prepare
- verify
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Publish @arrow-js/skill
working-directory: packages/skill
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
publish-sandbox:
needs:
- prepare
- verify
- publish-core
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Publish @arrow-js/sandbox
working-directory: packages/sandbox
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
publish-framework:
needs:
- prepare
- verify
- publish-core
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Build @arrow-js/framework
run: pnpm --filter @arrow-js/framework build
- name: Publish @arrow-js/framework
working-directory: packages/framework
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
publish-ssr:
needs:
- prepare
- verify
- publish-framework
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Build @arrow-js/ssr
run: pnpm --filter @arrow-js/ssr build
- name: Publish @arrow-js/ssr
working-directory: packages/ssr
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
publish-hydrate:
needs:
- prepare
- verify
- publish-core
- publish-framework
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Build @arrow-js/hydrate
run: pnpm --filter @arrow-js/hydrate build
- name: Publish @arrow-js/hydrate
working-directory: packages/hydrate
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
publish-create-arrow-js:
needs:
- prepare
- verify
- publish-core
- publish-framework
- publish-highlight
- publish-hydrate
- publish-sandbox
- publish-ssr
- publish-vite-plugin-arrow
- publish-skill
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install latest npm
run: npm install -g npm@latest
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync package versions to tag
run: node scripts/release.mjs sync --version "${{ needs.prepare.outputs.version }}"
- name: Publish create-arrow-js
working-directory: packages/create-arrow-js
shell: bash
run: |
for attempt in 1 2 3; do
pnpm publish --tag "${{ needs.prepare.outputs.npm_tag }}" --access public --no-git-checks && exit 0
echo "Attempt $attempt failed, retrying in 10s..."
sleep 10
done
exit 1
release:
needs:
- prepare
- publish-core
- publish-framework
- publish-highlight
- publish-hydrate
- publish-sandbox
- publish-ssr
- publish-vite-plugin-arrow
- publish-skill
- publish-create-arrow-js
if: needs.prepare.outputs.npm_tag == 'latest'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-node@v6
with:
node-version: '24'
- run: npx changelogithub
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}