CI: create rolling 'latest' pre-release on every main push
Previously the release job only ran on v* tag pushes, leaving main-branch builds with no downloadable binaries. - Release job now also triggers on push to main - On main: force-moves the 'latest' git tag to the current commit, then creates/updates a 'latest' pre-release with the built artifacts - On v* tag: existing versioned release behaviour unchanged Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
3ad68b45f7
commit
7866bf9081
29
.github/workflows/build.yml
vendored
29
.github/workflows/build.yml
vendored
@ -87,23 +87,35 @@ jobs:
|
|||||||
dist/*.exe
|
dist/*.exe
|
||||||
dist/GDPRScanner_linux_x86_64.zip
|
dist/GDPRScanner_linux_x86_64.zip
|
||||||
|
|
||||||
# ── Release (only on version tags v*) ────────────────────────────────────
|
# ── Release ───────────────────────────────────────────────────────────────
|
||||||
|
# • version tag (v*) → proper versioned release with generated notes
|
||||||
|
# • main push → rolling 'latest' pre-release (replaces previous)
|
||||||
release:
|
release:
|
||||||
name: Create GitHub Release
|
name: Create GitHub Release
|
||||||
needs: [build-m365-scanner]
|
needs: [build-m365-scanner]
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Download all artifacts
|
- name: Download all artifacts
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: artifacts
|
path: artifacts
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
|
|
||||||
- name: Create release
|
- name: Move 'latest' tag to current commit
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
run: |
|
||||||
|
git tag -f latest
|
||||||
|
git push origin latest --force
|
||||||
|
|
||||||
|
- name: Create versioned release
|
||||||
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ github.ref_name }}
|
name: ${{ github.ref_name }}
|
||||||
@ -111,3 +123,14 @@ jobs:
|
|||||||
prerelease: ${{ contains(github.ref_name, '-beta') || contains(github.ref_name, '-rc') }}
|
prerelease: ${{ contains(github.ref_name, '-beta') || contains(github.ref_name, '-rc') }}
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
files: artifacts/**
|
files: artifacts/**
|
||||||
|
|
||||||
|
- name: Update rolling 'latest' release
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
tag_name: latest
|
||||||
|
name: "Latest build (main)"
|
||||||
|
body: "Automated build from the latest commit on `main`. Not a stable release."
|
||||||
|
draft: false
|
||||||
|
prerelease: true
|
||||||
|
files: artifacts/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user