mirror of
https://github.com/easingthemes/ssh-deploy
synced 2026-04-05 20:33:01 +08:00
Move major tag update (e.g. v6) into the release workflow as a conditional step, gated on semantic-release actually publishing. This avoids the GITHUB_TOKEN limitation where events from the default token don't trigger separate workflows. Also reverts @semantic-release/github from .releaserc since we no longer rely on the release event to trigger a separate workflow.
55 lines
1.6 KiB
YAML
55 lines
1.6 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
release:
|
|
name: Test, Build and Release
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
node-version: [ 24.x ]
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: ${{ matrix['node-version'] }}
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
- name: Build Library
|
|
run: npm run build --if-present
|
|
- name: Run Tests
|
|
run: npm test --if-present
|
|
- name: Release
|
|
id: semantic
|
|
uses: cycjimmy/semantic-release-action@v6
|
|
with:
|
|
semantic_version: 24
|
|
dry_run: false
|
|
extra_plugins: |
|
|
@semantic-release/changelog
|
|
@semantic-release/git
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
GIT_AUTHOR_NAME: github-actions
|
|
GIT_AUTHOR_EMAIL: github-actions@github.com
|
|
GIT_COMMITTER_NAME: github-actions
|
|
GIT_COMMITTER_EMAIL: github-actions@github.com
|
|
CI: true
|
|
- name: Update major version tag
|
|
if: steps.semantic.outputs.new_release_published == 'true'
|
|
run: |
|
|
MAJOR="v${{ steps.semantic.outputs.new_release_major_version }}"
|
|
TAG="v${{ steps.semantic.outputs.new_release_version }}"
|
|
echo "Updating $MAJOR tag to point to $TAG"
|
|
git tag -f "$MAJOR" "$TAG"
|
|
git push -f origin "$MAJOR"
|