Hi matlab-actions team,
Starting with v3.1.0 / v3.1.1 the release pipeline commits the MATLAB launcher binaries directly into the action tree:
dist/bin/glnxa64/run-matlab-command
dist/bin/maca64/run-matlab-command
dist/bin/maci64/run-matlab-command
dist/bin/win64/run-matlab-command.exe
This is a real improvement over fetching them via common-utils at install time — consumers who pin a SHA now get exactly the bytes you shipped at release time, not whatever a CDN happens to serve later.
It does, however, leave one gap on the downstream-review side: there's no way to tie those bytes back to the workflow run that produced them. The launcher (src/index.ts → dist/index.js) rebuilds cleanly from source, but the four native binaries are opaque to any rebuild check.
We're running into this on the Apache Software Foundation side, where apache/infrastructure-actions allowlists every action SHA used by ASF projects. Our automated check (verify-action-build) classifies v3.1.1 as "unverified pre-compiled binaries" because neither of its two verification paths is available:
gh attestation verify --owner matlab-actions <binary> — no SLSA attestation found.
- Release asset
SHA256SUMS — no assets are attached to any release.
The downstream PR is apache/infrastructure-actions#846; we'd like to land v3.1.1, but the policy is to hold in-tree binaries without provenance.
Either of these would close the gap:
(a) Add actions/attest-build-provenance to .github/workflows/publish.yml so each binary gets a SLSA attestation. The runs-on/action project did this in a one-line PR (runs-on/action#37) and the result was that gh attestation verify --owner runs-on <binary> started succeeding for every subsequent release. This is the strongest signal and ideal because it ties each artifact to the exact workflow run.
(b) Or ship a SHA256SUMS file as a release asset listing the four dist/bin/* binaries. A simple sha256sum dist/bin/*/run-matlab-command* > SHA256SUMS + gh release upload step in publish.yml works. Weaker than (a) (the checksum file itself isn't signed yet) but a strong cryptographic chain from release to the bytes that ship.
Happy to send a PR with the workflow change if it would help — let me know which path you'd prefer.
Thanks!
Hi matlab-actions team,
Starting with v3.1.0 / v3.1.1 the release pipeline commits the MATLAB launcher binaries directly into the action tree:
This is a real improvement over fetching them via
common-utilsat install time — consumers who pin a SHA now get exactly the bytes you shipped at release time, not whatever a CDN happens to serve later.It does, however, leave one gap on the downstream-review side: there's no way to tie those bytes back to the workflow run that produced them. The launcher (
src/index.ts→dist/index.js) rebuilds cleanly from source, but the four native binaries are opaque to any rebuild check.We're running into this on the Apache Software Foundation side, where
apache/infrastructure-actionsallowlists every action SHA used by ASF projects. Our automated check (verify-action-build) classifies v3.1.1 as "unverified pre-compiled binaries" because neither of its two verification paths is available:gh attestation verify --owner matlab-actions <binary>— no SLSA attestation found.SHA256SUMS— no assets are attached to any release.The downstream PR is apache/infrastructure-actions#846; we'd like to land v3.1.1, but the policy is to hold in-tree binaries without provenance.
Either of these would close the gap:
(a) Add
actions/attest-build-provenanceto.github/workflows/publish.ymlso each binary gets a SLSA attestation. Theruns-on/actionproject did this in a one-line PR (runs-on/action#37) and the result was thatgh attestation verify --owner runs-on <binary>started succeeding for every subsequent release. This is the strongest signal and ideal because it ties each artifact to the exact workflow run.(b) Or ship a
SHA256SUMSfile as a release asset listing the fourdist/bin/*binaries. A simplesha256sum dist/bin/*/run-matlab-command* > SHA256SUMS+gh release uploadstep inpublish.ymlworks. Weaker than (a) (the checksum file itself isn't signed yet) but a strong cryptographic chain from release to the bytes that ship.Happy to send a PR with the workflow change if it would help — let me know which path you'd prefer.
Thanks!