Repository navigation
fix: reject spool data whose spec blocks are entirely zero #32
Workflow file for this run
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: CI | |
| on: | |
| push: | |
| branches: [main, master, 'epic/**'] | |
| pull_request: | |
| branches: [main, master, 'epic/**'] | |
| workflow_dispatch: | |
| jobs: | |
| test: | |
| name: Parser Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run parser validation tests | |
| run: make test | |
| build-ufbt: | |
| name: Build Plugin (ufbt) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| needs: test # Only build if tests pass | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Build Bambu parser plugin with ufbt | |
| id: build | |
| # Pinned to the commit v0.1.4 points at: this action downloads and runs | |
| # an SDK toolchain, so a mutable tag would be an unreviewed code path. | |
| uses: flipperdevices/flipperzero-ufbt-action@e7cd34914e61ddc056acd8daaab96d8b4d4d9f55 # v0.1.4 | |
| with: | |
| # Deliberately floating. Pinning an SDK version would hide firmware API | |
| # breakage until a manual bump; on `release` this job goes red instead. | |
| # What a red job means is "the SDK moved and broke the build" — i.e. | |
| # API-table breakage. It is a prompt to re-diff | |
| # plugin/nfc_supported_card_plugin.h against upstream, not a detector of | |
| # drift inside it: as that header explains, NfcSupportedCardsPlugin is | |
| # exported rather than imported, so a struct layout change compiles | |
| # clean, passes APPCHK and leaves this job green. Nothing catches that | |
| # automatically. | |
| sdk-channel: release | |
| - name: Upload plugin artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: bambu_parser-ufbt | |
| path: ${{ steps.build.outputs.fap-dir }}/bambu_parser.fal | |
| retention-days: 30 | |
| build: | |
| name: Build Plugin (fbt) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| needs: test # Only build if tests pass | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Checkout flipperzero-firmware submodule | |
| run: | | |
| git submodule update --init flipperzero-firmware | |
| cd flipperzero-firmware | |
| git submodule update --init --depth 1 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Cache Flipper toolchain | |
| uses: actions/cache@v4 | |
| with: | |
| path: flipperzero-firmware/toolchain | |
| key: flipper-toolchain-${{ runner.os }}-v2 | |
| restore-keys: | | |
| flipper-toolchain-${{ runner.os }}- | |
| - name: Build Bambu parser plugin | |
| env: | |
| FBT_NO_SYNC: 1 | |
| FBT_GIT_SUBMODULE_SHALLOW: 1 | |
| run: make build | |
| - name: Upload plugin artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: bambu_parser | |
| path: dist/bambu_parser.fal | |
| retention-days: 30 | |
| manifest-agreement: | |
| name: Manifest Agreement | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| needs: [build, build-ufbt] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Download fbt artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: bambu_parser | |
| path: artifacts/fbt | |
| - name: Download ufbt artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: bambu_parser-ufbt | |
| path: artifacts/ufbt | |
| # The app is declared twice — in the root application.fam for ufbt, and in | |
| # the App() block `make copy-plugin` appends for fbt. Nothing else compares | |
| # them, so a one-sided edit would ship divergent metadata with CI green. | |
| - name: Compare shipped app metadata from both build paths | |
| run: | | |
| python3 .github/scripts/compare_fapmeta.py \ | |
| artifacts/fbt/bambu_parser.fal \ | |
| artifacts/ufbt/bambu_parser.fal |