Bump version; switch worker exports to shared #16
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |