fix(footprints): use actual library in qualified footprint names #8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |