Skip to content

fix(footprints): use actual library in qualified footprint names #8

fix(footprints): use actual library in qualified footprint names

fix(footprints): use actual library in qualified footprint names #8

Workflow file for this run

name: Release KiCAD Library
on:
push:
branches:
- '**'
tags:
- '*'
pull_request:
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: Sync generator dependencies
run: uv sync --frozen
- name: Build SiliconSchema artifacts
run: uv run --directory SiliconSchema build-schema
- name: Generate symbols and footprints
run: uv run kicad-generator --output-dir build
- name: Stage release contents
run: |
rm -rf release-staging
mkdir -p release-staging/symbols release-staging/footprints release-staging/resources
cp metadata.json release-staging/metadata.json
cp build/symbols/libs/MCU_SiFli.kicad_sym release-staging/symbols/MCU_SiFli.kicad_sym
find build/footprints -maxdepth 1 -type d -name '*.pretty' -exec cp -R {} release-staging/footprints/ \;
if [ -d resources ]; then
cp -R resources/. release-staging/resources/
else
printf 'Generated by CI release workflow.\n' > release-staging/resources/.keep
fi
- name: Resolve package tag and PCM version
id: resolve_tag
run: |
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
package_tag="${GITHUB_REF#refs/tags/}"
pcm_version="${package_tag#v}"
elif [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then
package_tag="pr-${{ github.event.pull_request.number }}-${GITHUB_SHA::7}"
pcm_version="0.0.${{ github.event.pull_request.number }}"
else
branch_name="${GITHUB_REF_NAME//\//-}"
package_tag="snapshot-${branch_name}-${GITHUB_SHA::7}"
if [[ "$GITHUB_REF_NAME" == "main" ]]; then
sha6="${GITHUB_SHA::6}"
sha_num=$((16#$sha6 % 1000000))
printf -v sha_num_padded "%06d" "$sha_num"
pcm_version="99.0.${sha_num_padded}"
else
pcm_version="0.0.${GITHUB_RUN_NUMBER}"
fi
fi
echo "tag=${package_tag}" >> "$GITHUB_OUTPUT"
echo "version=${pcm_version}" >> "$GITHUB_OUTPUT"
- name: Build release package
id: build
run: |
uv run scripts/build_release.py --source-dir release-staging --tag "${{ steps.resolve_tag.outputs.tag }}" --version "${{ steps.resolve_tag.outputs.version }}"
echo "package_path=$(cat package_path.txt)" >> "$GITHUB_OUTPUT"
echo "metadata_path=$(cat metadata_path.txt)" >> "$GITHUB_OUTPUT"
echo "package_size=$(cat package_size.txt)" >> "$GITHUB_OUTPUT"
echo "install_size=$(cat install_size.txt)" >> "$GITHUB_OUTPUT"
echo "package_sha256=$(cat package_sha256.txt)" >> "$GITHUB_OUTPUT"
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: kicad-package-${{ steps.resolve_tag.outputs.tag }}
path: |
${{ steps.build.outputs.package_path }}
${{ steps.build.outputs.metadata_path }}
package_size.txt
install_size.txt
package_sha256.txt
- name: Create Release
if: startsWith(github.ref, 'refs/tags/')
uses: ncipollo/release-action@v1
with:
artifacts: |
${{ steps.build.outputs.package_path }}
${{ steps.build.outputs.metadata_path }}
tag: ${{ steps.resolve_tag.outputs.tag }}
name: Release ${{ steps.resolve_tag.outputs.tag }}
body: |
## SiFli KiCAD Library ${{ steps.resolve_tag.outputs.tag }}
### Package Information
- **Package Size**: ${{ steps.build.outputs.package_size }} bytes
- **Install Size**: ${{ steps.build.outputs.install_size }} bytes
- **SHA256**: `${{ steps.build.outputs.package_sha256 }}`
### Installation
1. Download `sifli-kicad-libraries-${{ steps.resolve_tag.outputs.tag }}.zip` from this release.
2. Open KiCad Package and Content Manager.
3. Use **Install from file...** and select the downloaded zip.
draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}