chore: fixes to release workflow and release shortcuts

This commit is contained in:
2025-09-30 23:18:56 +03:00
parent 91727e3863
commit fca04856a8
2 changed files with 45 additions and 4 deletions

View File

@@ -1,8 +1,6 @@
name: Release
on:
release:
types: [published]
push:
tags:
- 'v*.*.*'
@@ -86,10 +84,33 @@ jobs:
name: dist
path: dist/
create-release:
name: Create GitHub Release
runs-on: ubuntu-latest
needs: [lint, test, build]
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Download build artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: dist
path: dist/
- name: Create GitHub Release
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.2.0
with:
generate_release_notes: true
files: |
dist/**/*
publish:
name: Publish to npm
runs-on: ubuntu-latest
needs: [lint, test, build]
needs: [lint, test, build, create-release]
permissions:
contents: read
id-token: write
@@ -110,7 +131,24 @@ jobs:
- name: Build project
run: npm run build
- name: Check if version exists on npm
id: check-version
run: |
PACKAGE_VERSION=$(node -p "require('./package.json').version")
PACKAGE_NAME=$(node -p "require('./package.json').name")
echo "version=$PACKAGE_VERSION" >> $GITHUB_OUTPUT
echo "name=$PACKAGE_NAME" >> $GITHUB_OUTPUT
if npm view "$PACKAGE_NAME@$PACKAGE_VERSION" version 2>/dev/null; then
echo "exists=true" >> $GITHUB_OUTPUT
echo "⚠️ Version $PACKAGE_VERSION already exists on npm, skipping publish"
else
echo "exists=false" >> $GITHUB_OUTPUT
echo "✅ Version $PACKAGE_VERSION does not exist on npm, will publish"
fi
- name: Publish to npm
if: steps.check-version.outputs.exists == 'false'
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -32,7 +32,10 @@
"lint": "biome check src/",
"lint:fix": "biome check --write .",
"format": "biome format --write .",
"prepare": "husky"
"prepare": "husky",
"release:patch": "npm version patch -m 'chore: release v%s' && git push origin main --follow-tags",
"release:minor": "npm version minor -m 'chore: release v%s' && git push origin main --follow-tags",
"release:major": "npm version major -m 'chore: release v%s' && git push origin main --follow-tags"
},
"dependencies": {
"@types/yargs": "^17.0.33",