added release workflow
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
name: release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
|
||||
jobs:
|
||||
build-on-workflow:
|
||||
runs-on: ubuntu-latest
|
||||
if: |
|
||||
github.event_name == 'workflow_run' &&
|
||||
github.event.workflow_run.conclusion == 'success'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Ensure all history is fetched
|
||||
ref: main
|
||||
|
||||
- name: Get Latest Tag
|
||||
id: get-latest-tag
|
||||
if:
|
||||
run: |
|
||||
git fetch --tags
|
||||
latest_tag=$(git describe --tags `git rev-list --tags --max-count=1`)
|
||||
echo "latest_tag=$latest_tag" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Release from Workflow Run
|
||||
if: |
|
||||
github.event_name == 'workflow_run' &&
|
||||
github.event.workflow_run.conclusion == 'success'
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
generate_release_notes: true
|
||||
append_body: true
|
||||
tag_name: ${{ steps.get-latest-tag.outputs.latest_tag }}
|
||||
|
||||
build-on-tag:
|
||||
runs-on: ubuntu-latest
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Ensure all history is fetched
|
||||
ref: main
|
||||
- name: Release from Tag Push
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
generate_release_notes: true
|
||||
append_body: true
|
||||
|
||||
write_changelog:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-on-workflow, build-on-tag]
|
||||
if: |
|
||||
always() &&
|
||||
(needs.build-on-workflow.result == 'success' || needs.build-on-tag.result == 'success' )
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Ensure all history is fetched
|
||||
ref: main
|
||||
|
||||
- name: Write CHANGELOG.md
|
||||
uses: rhysd/changelog-from-release/action@v3
|
||||
with:
|
||||
file: CHANGELOG.md
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
Reference in New Issue
Block a user