Skip to content

Commit 424069c

Browse files
committed
ci(release): upload build artifacts on push and PR
Run the packaging pipeline on branch pushes and pull requests, upload generated package artifacts for every run, and keep GitHub Release creation restricted to tag events.
1 parent 82296be commit 424069c

File tree

1 file changed

+32
-8
lines changed

1 file changed

+32
-8
lines changed

.github/workflows/release.yml

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ name: Release KiCAD Library
22

33
on:
44
push:
5+
branches:
6+
- '**'
57
tags:
68
- '*'
9+
pull_request:
710

811
jobs:
912
release:
@@ -44,38 +47,59 @@ jobs:
4447
printf 'Generated by CI release workflow.\n' > release-staging/resources/.keep
4548
fi
4649
47-
- name: Get current tag
48-
id: get_tag
49-
run: echo "tag=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT"
50+
- name: Resolve package tag
51+
id: resolve_tag
52+
run: |
53+
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
54+
package_tag="${GITHUB_REF#refs/tags/}"
55+
elif [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then
56+
package_tag="pr-${{ github.event.pull_request.number }}-${GITHUB_SHA::7}"
57+
else
58+
branch_name="${GITHUB_REF_NAME//\//-}"
59+
package_tag="snapshot-${branch_name}-${GITHUB_SHA::7}"
60+
fi
61+
echo "tag=${package_tag}" >> "$GITHUB_OUTPUT"
5062
5163
- name: Build release package
5264
id: build
5365
run: |
54-
uv run scripts/build_release.py --source-dir release-staging --tag "${{ steps.get_tag.outputs.tag }}"
66+
uv run scripts/build_release.py --source-dir release-staging --tag "${{ steps.resolve_tag.outputs.tag }}"
5567
echo "package_path=$(cat package_path.txt)" >> "$GITHUB_OUTPUT"
5668
echo "metadata_path=$(cat metadata_path.txt)" >> "$GITHUB_OUTPUT"
5769
echo "package_size=$(cat package_size.txt)" >> "$GITHUB_OUTPUT"
5870
echo "install_size=$(cat install_size.txt)" >> "$GITHUB_OUTPUT"
5971
echo "package_sha256=$(cat package_sha256.txt)" >> "$GITHUB_OUTPUT"
6072
73+
- name: Upload build artifacts
74+
uses: actions/upload-artifact@v4
75+
with:
76+
name: kicad-package-${{ steps.resolve_tag.outputs.tag }}
77+
path: |
78+
${{ steps.build.outputs.package_path }}
79+
${{ steps.build.outputs.metadata_path }}
80+
package_size.txt
81+
install_size.txt
82+
package_sha256.txt
83+
6184
- name: Create Release
85+
if: startsWith(github.ref, 'refs/tags/')
6286
uses: ncipollo/release-action@v1
6387
with:
6488
artifacts: |
6589
${{ steps.build.outputs.package_path }}
6690
${{ steps.build.outputs.metadata_path }}
67-
tag: ${{ steps.get_tag.outputs.tag }}
68-
name: Release ${{ steps.get_tag.outputs.tag }}
91+
tag: ${{ steps.resolve_tag.outputs.tag }}
92+
name: Release ${{ steps.resolve_tag.outputs.tag }}
6993
body: |
70-
## SiFli KiCAD Library ${{ steps.get_tag.outputs.tag }}
94+
## SiFli KiCAD Library ${{ steps.resolve_tag.outputs.tag }}
7195
7296
### Package Information
7397
- **Package Size**: ${{ steps.build.outputs.package_size }} bytes
7498
- **Install Size**: ${{ steps.build.outputs.install_size }} bytes
7599
- **SHA256**: `${{ steps.build.outputs.package_sha256 }}`
76100
77101
### Installation
78-
1. Download `sifli-kicad-libraries-${{ steps.get_tag.outputs.tag }}.zip` from this release.
102+
1. Download `sifli-kicad-libraries-${{ steps.resolve_tag.outputs.tag }}.zip` from this release.
79103
2. Open KiCad Package and Content Manager.
80104
3. Use **Install from file...** and select the downloaded zip.
81105
draft: false

0 commit comments

Comments
 (0)