mirror of
https://github.com/borgbackup/borg.git
synced 2026-04-26 16:49:50 -04:00
CI: run also for tag pushes
Simplifies tag-based binary building and attestation.
This commit is contained in:
parent
f24adf5484
commit
4be4609445
1 changed files with 7 additions and 35 deletions
42
.github/workflows/ci.yml
vendored
42
.github/workflows/ci.yml
vendored
|
|
@ -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 }}
|
||||
|
|
|
|||
Loading…
Reference in a new issue