From 7877f11863376f21d88dd17b212a4ec616c431c8 Mon Sep 17 00:00:00 2001 From: masarray Date: Sun, 12 Jul 2026 04:37:04 +0700 Subject: [PATCH] Support public releases from versioned release branches --- .github/workflows/release.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf4eeb5..824dd77 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,8 @@ on: push: tags: - 'v*.*.*' + branches: + - 'release/v*.*.*' pull_request: branches: [ main ] paths: @@ -42,6 +44,7 @@ jobs: runs-on: windows-latest outputs: version: ${{ steps.version.outputs.value }} + tag_name: ${{ steps.version.outputs.tag_name }} artifact_name: ${{ steps.version.outputs.artifact_name }} steps: @@ -64,6 +67,9 @@ jobs: if ('${{ github.ref_type }}' -eq 'tag') { $version = '${{ github.ref_name }}' -replace '^[vV]', '' } + elseif ('${{ github.ref }}'.StartsWith('refs/heads/release/v')) { + $version = '${{ github.ref_name }}' -replace '^release/[vV]', '' + } elseif ('${{ github.event_name }}' -eq 'workflow_dispatch') { $version = '${{ inputs.version }}' if ([string]::IsNullOrWhiteSpace($version)) { @@ -79,10 +85,13 @@ jobs: throw "Unsupported release version: $version" } + $tagName = "v$version" $artifactName = "ARSVIN-$version-windows-x64" "value=$version" >> $env:GITHUB_OUTPUT + "tag_name=$tagName" >> $env:GITHUB_OUTPUT "artifact_name=$artifactName" >> $env:GITHUB_OUTPUT Write-Host "Release version: $version" + Write-Host "Release tag: $tagName" - name: Build and test shell: pwsh @@ -256,7 +265,7 @@ jobs: release: name: Publish GitHub Release - if: github.ref_type == 'tag' + if: github.ref_type == 'tag' || startsWith(github.ref, 'refs/heads/release/v') needs: package runs-on: ubuntu-latest permissions: @@ -272,6 +281,10 @@ jobs: - name: Create GitHub Release uses: softprops/action-gh-release@v3 with: + tag_name: ${{ needs.package.outputs.tag_name }} + target_commitish: ${{ github.sha }} + name: ARSVIN ${{ needs.package.outputs.tag_name }} + make_latest: true generate_release_notes: true fail_on_unmatched_files: true files: |