Skip to content

Add CI robustness, asset tests, and firmware-compatibility docs - #6

Closed
savemosca wants to merge 1 commit into
Firefox2100:mainfrom
savemosca:pr4-ci-tests-docs
Closed

savemosca wants to merge 1 commit into
Firefox2100:mainfrom
savemosca:pr4-ci-tests-docs

Conversation

@savemosca

Copy link
Copy Markdown

Summary

  • Runs the build on pull requests, on demand (workflow_dispatch), and weekly (in addition to release tags), and splits the workflow into a build job (runs on every trigger) and a release job (tag-only), so PRs get validated without requiring a release build.
  • Adds tests/check_assets.py: validates amiibo.dat identifiers, cross-checks game name/mapping files (including Switch 2) against each other and against amiibo.dat, and runs it as part of the build job.
  • Documents the App: 87, FW: 88-style SDK/firmware mismatch error and what causes it, plus a note that a firmware fork adding fields to shared NFC structs can make a mismatched build corrupt data silently instead of refusing to launch (found this the hard way while debugging on a custom firmware fork - see PR docs: improve README #2 in this batch for the actual fix).
  • Clarifies key_retail.bin's exact size/format requirement and that a malformed key is never logged or used to produce invalid data.
  • Ignores local uFBT SDK/venv caches, .DS_Store, and a temp-files/ folder intended for local NFC dumps and key material that should never be committed.

Test plan

  • python3 tests/check_assets.py passes against the current files/ assets
  • ufbt build succeeds against the official release SDK (API 88.x)
  • Workflow YAML validated by running it (with the equivalent Unleashed-SDK variant) successfully on a personal fork's Actions

🤖 Generated with Claude Code

- Run the build on pull requests, on demand (workflow_dispatch), and
  weekly (in addition to release tags), and split the workflow into a
  build job (runs every trigger) and a release job (tag-only), so PRs get
  validated without requiring a release build.
- Add tests/check_assets.py: validates amiibo.dat identifiers, cross-
  checks game name/mapping files (including Switch 2) against each other
  and against amiibo.dat, and runs as part of the build job.
- Document the `App: 87, FW: 88`-style SDK/firmware mismatch error and
  what causes it, plus a note that a firmware fork adding fields to
  shared NFC structs can make a mismatched build corrupt data silently
  instead of refusing to launch.
- Clarify key_retail.bin's exact size/format requirement and that a
  malformed key never gets logged or used to produce invalid data.
- Ignore local uFBT SDK/venv caches, .DS_Store, and a temp-files/ folder
  intended for local NFC dumps and key material that should never be
  committed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@savemosca savemosca closed this Sep 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant