Skip to content

chore(release): v0.2.1 #9

chore(release): v0.2.1

chore(release): v0.2.1 #9

Workflow file for this run

# .github/workflows/release.yml
name: Release
on:
push:
branches: [main]
# Manual workflow dispatch for releases
workflow_dispatch:
inputs:
action:
description: "Action to perform"
required: true
default: "build"
type: choice
options:
- build
- release
- submit
dryRun:
description: "Perform dry run (no actual submission)"
default: false
type: boolean
jobs:
changeset_check:
permissions:
contents: write
name: Version with Changeset
runs-on: ubuntu-24.04-arm
if: |
github.event_name == 'push' ||
github.event_name == 'workflow_dispatch'
outputs:
hasChangesets: ${{ steps.changeset-check.outputs.hasChangesets }}
newVersion: ${{ steps.changeset-check.outputs.newVersion }}
currentVersion: ${{ steps.changeset-check.outputs.currentVersion }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false
- uses: actions/setup-node@v4
with:
node-version: 24
cache: "pnpm"
- name: Configure Git
run: |
git config user.email "github-actions@users.noreply.github.com"
git config user.name "GitHub Actions"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Check for changesets
id: changeset-check
run: |
if [ -z "$(ls .changeset/*.md 2>/dev/null | grep -v README)" ]; then
echo "hasChangesets=false" >> "$GITHUB_OUTPUT"
echo "⚠️ No changesets found. Skipping version bump."
else
echo "hasChangesets=true" >> "$GITHUB_OUTPUT"
echo "✅ Changesets found. Proceeding with version bump."
fi
- name: Version packages
if: steps.changeset-check.outputs.hasChangesets == 'true'
id: version
run: |
pnpm changeset version
NEW_VERSION=$(node -p "require('./package.json').version")
echo "newVersion=$NEW_VERSION" >> "$GITHUB_OUTPUT"
echo "📦 New version: $NEW_VERSION"
- name: Get current version (if no changesets)
if: steps.changeset-check.outputs.hasChangesets == 'false'
id: current-version
run: |
CURRENT_VERSION=$(node -p "require('./package.json').version")
echo "currentVersion=$CURRENT_VERSION" >> "$GITHUB_OUTPUT"
echo "📦 Current version: $CURRENT_VERSION"
- name: Commit and Push (with version bump)
if: ${{ steps.changeset-check.outputs.hasChangesets == 'true' }}
run: |
git add .
git commit -m "chore(release): v$NEW_VERSION"
git push
env:
NEW_VERSION: ${{ steps.version.outputs.newVersion }}
release:
name: Create Release
runs-on: ubuntu-24.04-arm
needs: [changeset_check]
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false
- uses: actions/setup-node@v4
with:
node-version: 24
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build and Zip
run: |
pnpm run zip:all
- name: Create GitHub Release (with version bump)
if: ${{ needs.changeset_check.outputs.hasChangesets == 'true' }}
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.changeset_check.outputs.currentVersion }}
name: amgiflol@${{ needs.changeset_check.outputs.currentVersion }}
body_path: CHANGELOG.md
files: |
dist/*.zip
draft: false
prerelease: false
- name: Create GitHub Release (no version bump)
if: ${{ needs.changeset_check.outputs.hasChangesets == 'false' }}
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.changeset_check.outputs.currentVersion }}
name: amgiflol@${{ needs.changeset_check.outputs.currentVersion }}
body_path: CHANGELOG.md
files: |
dist/*.zip
draft: true
prerelease: true