You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/workflows/release-build.yml
+16-13Lines changed: 16 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -12,8 +12,8 @@
12
12
# an inline `attest-build-provenance` step can prove, i.e. Build L2).
13
13
# See https://docs.github.com/actions/security-guides/using-artifact-attestations-and-reusable-workflows-to-achieve-slsa-v1-build-level-3
14
14
#
15
-
# This job: builds the 11 shipped firmware flavors reproducibly via `nix build`,
16
-
# GATES on a bit-identical rebuild of all eleven (a non-reproducible image fails the
15
+
# This job: builds the 14 shipped firmware flavors reproducibly via `nix build`,
16
+
# GATES on a bit-identical rebuild of all fourteen (a non-reproducible image fails the
17
17
# job before anything is published), generates a CycloneDX SBOM, hashes everything
18
18
# into SHA256SUMS, attests GitHub build provenance for every .uf2, signs the
19
19
# checksums with keyless cosign (sigstore/Fulcio via OIDC — no private key), and
@@ -84,20 +84,23 @@ jobs:
84
84
echo "tag=$tag" >> "$GITHUB_OUTPUT"
85
85
echo "version=${tag#v}" >> "$GITHUB_OUTPUT"
86
86
87
-
- name: build the 11 reproducible firmware flavors
87
+
- name: build the 14 reproducible firmware flavors
88
88
run: |
89
89
tag="${{ steps.tag.outputs.tag }}"
90
90
mkdir -p dist
91
91
# The ten touch-required flavors (default/pqc, fips/fips-pqc, the
92
92
# strong-pin PIN-hardening pair, and the always-uv / strict-up behavior
93
93
# pairs) plus the trusted-display flavor (its on-screen Approve/Deny is
94
-
# the physical-consent gate). `strict-up` ships with a caveat: it is not
95
-
# spec-conformant for the up:false pre-flight (docs/releases.md). The
96
-
# `no-touch` flavors auto-confirm user presence (test-only; see
97
-
# firmware/Cargo.toml "Never ship a no-touch build") and MUST NOT be
98
-
# published — a signed no-touch asset would remove the physical-consent
99
-
# gate from an end-user build.
100
-
for pkg in firmware firmware-pqc firmware-fips firmware-fips-pqc firmware-strong-pin firmware-strong-pin-pqc firmware-always-uv firmware-always-uv-pqc firmware-strict-up firmware-strict-up-pqc firmware-display; do
94
+
# the physical-consent gate) and the two flash-geometry siblings of the
95
+
# default image (2mb / 16mb — same features + RS-Key identity, only the
96
+
# flash map differs, for boards whose chip is not the 4 MB default).
97
+
# `strict-up` ships with a caveat: it is not spec-conformant for the
98
+
# up:false pre-flight (docs/releases.md). The `no-touch` flavors
99
+
# auto-confirm user presence (test-only; see firmware/Cargo.toml
100
+
# "Never ship a no-touch build") and MUST NOT be published — a signed
101
+
# no-touch asset would remove the physical-consent gate from an
102
+
# end-user build.
103
+
for pkg in firmware firmware-pqc firmware-fips firmware-fips-pqc firmware-strong-pin firmware-strong-pin-pqc firmware-always-uv firmware-always-uv-pqc firmware-strict-up firmware-strict-up-pqc firmware-display firmware-2mb firmware-16mb firmware-strict-config; do
- name: reproducibility gate — rebuild all 5, require bit-identical
113
+
- name: reproducibility gate — rebuild all 14, require bit-identical
111
114
run: |
112
115
# `nix build --rebuild` recompiles the derivation already in the store
113
116
# and fails with a hash mismatch if the output is not bit-identical.
114
117
# A non-reproducible flavor fails here, before the release is created.
115
-
for pkg in firmware firmware-pqc firmware-fips firmware-fips-pqc firmware-strong-pin firmware-strong-pin-pqc firmware-always-uv firmware-always-uv-pqc firmware-strict-up firmware-strict-up-pqc firmware-display; do
118
+
for pkg in firmware firmware-pqc firmware-fips firmware-fips-pqc firmware-strong-pin firmware-strong-pin-pqc firmware-always-uv firmware-always-uv-pqc firmware-strict-up firmware-strict-up-pqc firmware-display firmware-2mb firmware-16mb firmware-strict-config; do
0 commit comments