Skip to content

chore(release): v0.2.1 #4

chore(release): v0.2.1

chore(release): v0.2.1 #4

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
pull-requests: 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 tag v$NEW_VERSION
git push
git push --tags
env:
NEW_VERSION: ${{ steps.version.outputs.newVersion }}
release:
name: Create Release
runs-on: ubuntu-24.04-arm
needs: [changeset_check]
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: ${{ steps.changeset.outputs.hasChangesets == 'true' }}
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.changeset_check.outputs.newVersion }}
name: Release v${{ needs.changeset_check.outputs.newVersion }}
body: |
## Changes
Check the [CHANGELOG.md](./CHANGELOG.md) for detailed changes.
## Extension Files
- Chrome: `amgiflol-${{ needs.changeset_check.outputs.newVersion }}-chrome.zip`
- Firefox: `amgiflol-${{ needs.changeset_check.outputs.newVersion }}-firefox.zip`
files: |
dist/*-chrome.zip
dist/*-firefox.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 }}-build-${{ github.run_number }}
name: Build v${{ needs.changeset_check.outputs.currentVersion }}-build-${{ github.run_number }}
body: |
## Build Release
This is a build release without version changes.
## Extension Files
- Chrome: `amgiflol-${{ needs.changeset_check.outputs.currentVersion }}-chrome.zip`
- Firefox: `amgiflol-${{ needs.changeset_check.outputs.currentVersion }}-firefox.zip`
files: |
dist/*-chrome.zip
dist/*-firefox.zip
draft: false
prerelease: true