Repository navigation
ci: pin the chocolatey toolchain and retry it - #103
Merged
Merged
Conversation
Every GitHub action in these workflows is SHA-pinned, but the WinFsp SDK and the Inno Setup compiler were pulled at whatever version happened to be current. That is the one unpinned input that reaches a release artifact: wsldrive.exe links against the downloaded winfsp-x64.lib, and wsldrive-setup.exe is produced by the downloaded compiler. A hijacked or simply broken package would ship. choco is also the least reliable step in both workflows - a network blip failed the whole run, with no retry. Both are now behind scripts/ci/choco-install.ps1, which holds the pins in one table (winfsp 2.1.25156, innosetup 6.7.1 - the versions the last green run actually installed), retries three times with a widening backoff, and keeps the existing treatment of exit 3010 as success. A package with no pin is refused rather than quietly falling back to latest, so adding a tool means choosing a version. Verified: the script parses, resolves both pins, and refuses an unpinned package with a clear message; both workflow files still parse as YAML. The install path itself is exercised by this PR's own CI run. Closes #67
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #67.
Every GitHub action in these workflows is SHA-pinned, but the WinFsp SDK and the Inno Setup compiler were pulled at whatever version was current. That is the one unpinned input that reaches a release artifact:
wsldrive.exelinks against the downloadedwinfsp-x64.lib, andwsldrive-setup.exeis produced by the downloaded compiler. A hijacked or simply broken package would ship.choco is also the least reliable step in both workflows — a network blip failed the whole run, with no retry.
Both now go through
scripts/ci/choco-install.ps1, which:winfsp 2.1.25156,innosetup 6.7.1, the versions the last green run actually installed — so there is a single place to bump;Verification
no pinned version for 'not-a-real-pin'.Not done here:
--checksumand artifact attestations, both mentioned on the issue. Checksums would need the per-version hashes maintained alongside the pins, and attestation is a release-workflow change worth doing on its own.