Skip to content

Bump version; switch worker exports to shared #16

Bump version; switch worker exports to shared

Bump version; switch worker exports to shared #16

Workflow file for this run

name: CI for Bitcoin
on:
push:
tags:
- 'v*'
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24.x'
registry-url: 'https://registry.npmjs.org'
- name: Update npm
run: npm install -g npm@latest
- name: Install dependencies
run: npm install
- name: Build the project
run: npm run build
- name: Build browser assets
run: npm run browserBuild
- name: Determine npm tag
id: npm_tag
run: |
VERSION="${{ github.ref_name }}"
if [[ "$VERSION" == *"-alpha"* ]]; then
echo "tag=alpha" >> $GITHUB_OUTPUT
elif [[ "$VERSION" == *"-beta"* ]]; then
echo "tag=beta" >> $GITHUB_OUTPUT
elif [[ "$VERSION" == *"-rc"* ]]; then
echo "tag=rc" >> $GITHUB_OUTPUT
else
echo "tag=latest" >> $GITHUB_OUTPUT
fi
echo "Determined npm tag: $(cat $GITHUB_OUTPUT | grep tag | cut -d= -f2)"
- name: Publish to npm
run: npm publish --access public --tag ${{ steps.npm_tag.outputs.tag }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
release:
runs-on: ubuntu-latest
needs: publish
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Generate changelog
id: changelog
uses: mikepenz/release-changelog-builder-action@v6
with:
configurationJson: |
{
"categories": [
{
"title": "### Breaking Changes",
"labels": ["breaking", "breaking-change", "BREAKING-CHANGE"]
},
{
"title": "### Features",
"labels": ["feature", "feat", "enhancement"]
},
{
"title": "### Bug Fixes",
"labels": ["bug", "fix", "bugfix"]
},
{
"title": "### Performance",
"labels": ["performance", "perf"]
},
{
"title": "### Documentation",
"labels": ["documentation", "docs"]
},
{
"title": "### Dependencies",
"labels": ["dependencies", "deps"]
},
{
"title": "### Other Changes",
"labels": []
}
],
"sort": {
"order": "ASC",
"on_property": "mergedAt"
},
"template": "#{{CHANGELOG}}",
"pr_template": "- #{{TITLE}} ([##{{NUMBER}}](#{{URL}})) by @#{{AUTHOR}}",
"empty_template": "- No changes",
"max_tags_to_fetch": 200,
"max_pull_requests": 200,
"max_back_track_time_days": 365,
"tag_resolver": {
"method": "semver"
}
}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Update CHANGELOG.md
env:
CHANGELOG_CONTENT: ${{ steps.changelog.outputs.changelog }}
run: |
TAG="${{ github.ref_name }}"
DATE=$(date +%Y-%m-%d)
NEW_HEADER="## [$TAG] - $DATE"
# Write changelog content to temp file using env var (avoids shell escaping)
printf '%s\n' "$CHANGELOG_CONTENT" > /tmp/new_entry.md
if [ -f CHANGELOG.md ]; then
# Create new file with entry inserted after header line
{
head -n 1 CHANGELOG.md
echo ""
echo "$NEW_HEADER"
echo ""
cat /tmp/new_entry.md
echo ""
tail -n +2 CHANGELOG.md
} > /tmp/CHANGELOG_NEW.md
mv /tmp/CHANGELOG_NEW.md CHANGELOG.md
else
# Create new CHANGELOG.md
{
echo "# Changelog"
echo ""
echo "All notable changes to this project will be documented in this file."
echo ""
echo "This changelog is automatically generated from merged pull requests."
echo ""
echo "$NEW_HEADER"
echo ""
cat /tmp/new_entry.md
} > CHANGELOG.md
fi
rm -f /tmp/new_entry.md
- name: Commit changelog
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add CHANGELOG.md
git diff --staged --quiet || git commit -m "docs: update CHANGELOG.md for ${{ github.ref_name }}"
git push origin HEAD:main || echo "No changes to push or push failed"
- name: Determine if prerelease
id: prerelease
run: |
VERSION="${{ github.ref_name }}"
if [[ "$VERSION" == *"-alpha"* ]] || [[ "$VERSION" == *"-beta"* ]] || [[ "$VERSION" == *"-rc"* ]]; then
echo "is_prerelease=true" >> $GITHUB_OUTPUT
else
echo "is_prerelease=false" >> $GITHUB_OUTPUT
fi
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
body: ${{ steps.changelog.outputs.changelog }}
prerelease: ${{ steps.prerelease.outputs.is_prerelease == 'true' }}
generate_release_notes: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}