CI: run also for tag pushes

Simplifies tag-based binary building and attestation.
This commit is contained in:
Thomas Waldmann 2025-11-02 18:45:14 +01:00
parent f24adf5484
commit 4be4609445
No known key found for this signature in database
GPG key ID: 243ACFA951F78E01

View file

@ -5,17 +5,8 @@ name: CI
on:
push:
branches: [ master ]
paths:
- '**.py'
- '**.pyx'
- '**.c'
- '**.h'
- '**.yml'
- '**.toml'
- '**.cfg'
- '**.ini'
- 'requirements.d/*'
- '!docs/**'
tags:
- '2.*'
pull_request:
branches: [ master ]
paths:
@ -106,25 +97,6 @@ jobs:
fetch-depth: 0
fetch-tags: true
- name: Detect if commit is tagged
id: detect_tag
run: |
tag="$(git describe --exact-match --tags HEAD 2>/dev/null || true)"
# If HEAD is a merge commit, the PR head is usually the second parent (HEAD^2).
if [ -z "$tag" ] && git rev-parse -q --verify HEAD^2 >/dev/null 2>&1; then
tag="$(git describe --exact-match --tags HEAD^2 2>/dev/null || true)"
fi
echo "Found tag: ${tag}"
echo "tagged=$tag" >> "$GITHUB_OUTPUT"
- name: Check out exact tag
if: ${{ steps.detect_tag.outputs.tagged }}
uses: actions/checkout@v4
with:
ref: ${{ steps.detect_tag.outputs.tagged }}
fetch-depth: 0
fetch-tags: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
@ -240,14 +212,14 @@ jobs:
env_vars: OS, python
- name: Build Borg fat binaries (${{ matrix.binary }})
if: ${{ matrix.binary && steps.detect_tag.outputs.tagged }}
if: ${{ matrix.binary && startsWith(github.ref, 'refs/tags/') }}
run: |
pip install 'pyinstaller==6.14.2'
mkdir -p dist/binary
pyinstaller --clean --distpath=dist/binary scripts/borg.exe.spec
- name: Smoke-test the built binary (${{ matrix.binary }})
if: ${{ matrix.binary && steps.detect_tag.outputs.tagged }}
if: ${{ matrix.binary && startsWith(github.ref, 'refs/tags/') }}
run: |
pushd dist/binary
echo "single-file binary"
@ -260,7 +232,7 @@ jobs:
popd
- name: Prepare binaries (${{ matrix.binary }})
if: ${{ matrix.binary && steps.detect_tag.outputs.tagged }}
if: ${{ matrix.binary && startsWith(github.ref, 'refs/tags/') }}
run: |
mkdir -p artifacts
if [ -f dist/binary/borg.exe ]; then
@ -273,13 +245,13 @@ jobs:
ls -l artifacts/
- name: Attest binaries provenance (${{ matrix.binary }})
if: ${{ matrix.binary && steps.detect_tag.outputs.tagged }}
if: ${{ matrix.binary && startsWith(github.ref, 'refs/tags/') }}
uses: actions/attest-build-provenance@v3
with:
subject-path: 'artifacts/*'
- name: Upload binaries (${{ matrix.binary }})
if: ${{ matrix.binary && steps.detect_tag.outputs.tagged }}
if: ${{ matrix.binary && startsWith(github.ref, 'refs/tags/') }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.binary }}