[PR #120] [MERGED] Publish firmware artifacts as individual files (remove zip packaging) #213

Closed
opened 2026-10-22 05:07:41 +00:00 by roman · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/safijari/openpuck/pull/120
Author: @Copilot
Created: 7/4/2026
Status: ✅ Merged
Merged: 7/4/2026
Merged by: @safijari

Base: main ← Head: copilot/compile-uf2-files


📝 Commits (7)

  • 67f28b9 Update PR build workflow to track latest head commit
  • f5f8631 Add versioned PR metadata to artifact filenames
  • 687c499 Refine artifact naming across PR and non-PR builds
  • d5d7f97 Harden artifact staging loop and clarify PR metadata var
  • 8cb7803 Preserve unique artifact basenames during staging
  • d2c5e9b Simplify artifact staging extension loops
  • 6d3fbe7 Upload CI firmware artifacts individually without zip outputs

📊 Changes

2 files changed (+48 additions, -29 deletions)

View changed files

📝 .github/workflows/build.yml (+46 -26)
📝 .github/workflows/release.yml (+2 -3)

📄 Description

CI currently bundled build outputs into a single artifact and release packaging included .zip files. This change switches artifact publishing to per-file uploads and limits release assets to flashable formats (.uf2, .hex).

  • Build workflow (.github/workflows/build.yml)

    • Removed staged build/artifacts/* bundle upload.
    • Added discrete actions/upload-artifact@v4 steps for each firmware output:
      • OpenPuck-<version>-standard.uf2
      • OpenPuck-<version>-standard.hex
      • ReversePuckFirmware-<version>.uf2
      • ReversePuckFirmware-<version>.hex
    • Added if-no-files-found: error per upload to fail fast on missing outputs.
  • Release workflow (.github/workflows/release.yml)

    • Updated asset collection filters to exclude *.zip.
    • Kept only *.uf2 and *.hex in release_assets.
    • Removed .zip from the release body “Files included” list.
  • Example (new upload shape)

    - name: Upload OpenPuck UF2 artifact
      uses: actions/upload-artifact@v4
      with:
        name: OpenPuck-${{ steps.build_version.outputs.artifact_version }}-standard.uf2
        path: build/openpuck/OpenPuck.ino.uf2
        if-no-files-found: error
    

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/safijari/openpuck/pull/120 **Author:** [@Copilot](https://github.com/apps/copilot-swe-agent) **Created:** 7/4/2026 **Status:** ✅ Merged **Merged:** 7/4/2026 **Merged by:** [@safijari](https://github.com/safijari) **Base:** `main` ← **Head:** `copilot/compile-uf2-files` --- ### 📝 Commits (7) - [`67f28b9`](https://github.com/safijari/openpuck/commit/67f28b90236b8e8b0de78687b03c7de28b81a895) Update PR build workflow to track latest head commit - [`f5f8631`](https://github.com/safijari/openpuck/commit/f5f8631caba6d573d3e0664aba1a6e4b50cdb94d) Add versioned PR metadata to artifact filenames - [`687c499`](https://github.com/safijari/openpuck/commit/687c499b6ef0c217f40911711c42000a63389d47) Refine artifact naming across PR and non-PR builds - [`d5d7f97`](https://github.com/safijari/openpuck/commit/d5d7f976b5d315f57990a214c989c43c9fdc78f8) Harden artifact staging loop and clarify PR metadata var - [`8cb7803`](https://github.com/safijari/openpuck/commit/8cb780313aea4e3d0d5a3803d40700d45958b29a) Preserve unique artifact basenames during staging - [`d2c5e9b`](https://github.com/safijari/openpuck/commit/d2c5e9b437f2aa3ba2fba3c7f0904daeee5844b2) Simplify artifact staging extension loops - [`6d3fbe7`](https://github.com/safijari/openpuck/commit/6d3fbe73e9353673443509c4a30a88b9d8b08e0f) Upload CI firmware artifacts individually without zip outputs ### 📊 Changes **2 files changed** (+48 additions, -29 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/build.yml` (+46 -26) 📝 `.github/workflows/release.yml` (+2 -3) </details> ### 📄 Description CI currently bundled build outputs into a single artifact and release packaging included `.zip` files. This change switches artifact publishing to per-file uploads and limits release assets to flashable formats (`.uf2`, `.hex`). - **Build workflow (`.github/workflows/build.yml`)** - Removed staged `build/artifacts/*` bundle upload. - Added discrete `actions/upload-artifact@v4` steps for each firmware output: - `OpenPuck-<version>-standard.uf2` - `OpenPuck-<version>-standard.hex` - `ReversePuckFirmware-<version>.uf2` - `ReversePuckFirmware-<version>.hex` - Added `if-no-files-found: error` per upload to fail fast on missing outputs. - **Release workflow (`.github/workflows/release.yml`)** - Updated asset collection filters to exclude `*.zip`. - Kept only `*.uf2` and `*.hex` in `release_assets`. - Removed `.zip` from the release body “Files included” list. - **Example (new upload shape)** ```yaml - name: Upload OpenPuck UF2 artifact uses: actions/upload-artifact@v4 with: name: OpenPuck-${{ steps.build_version.outputs.artifact_version }}-standard.uf2 path: build/openpuck/OpenPuck.ino.uf2 if-no-files-found: error ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
roman 2026-10-22 05:07:42 +00:00
Sign in to join this conversation.
No labels
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
safijari/openpuck#213
No description provided.