Fix intermittent smctl not found in signing workflow#14190
Merged
Conversation
The Install SMCTL step had no error handling: a failed S3 download (0 bytes) led to a silent msiexec failure, but the script unconditionally declared success and added the path to GITHUB_PATH. Add download retry with file size validation, synchronous msiexec via Start-Process -Wait, and post-install binary verification.
Collaborator
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
Collaborator
|
(christophe + claude is a scary combo!) amazing, thanks for the fix. |
Collaborator
Author
|
I am beginning to have a nice workflow, and get what I want from claude to get targetted fix. By the way testing workflow passed: https://github.com/quarto-dev/quarto-cli/actions/runs/22905990760/job/66464755541 We now get 3 attempts in case of transient error with the s3 download, and then clear failure at installation instead of later at signing. |
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.
The
make-installer-winjob increate-release.ymlintermittently fails at "Sync certificates" withsmctlnot recognized, despite the previous step reporting successful installation.Root Cause
The
Install SMCTLstep has no error handling. When the 90 MB MSI download from S3 silently fails (0 bytes received),msiexecruns on the empty file and exits with a non-zero code that PowerShell doesn't propagate. The script unconditionally prints "SMCTL installed and added on PATH" and the next step fails whensmctl.exedoesn't exist on disk.Evidence from failed runs (#22838611306, #22635880163): curl shows 0 bytes downloaded while the successful run (#22887281659) shows a normal 90.7 MB download.
Fix
Start-Process -Waitwith exit code checksmctl.exeexists on diskTest plan
create-release.ymlviaworkflow_dispatchwithpublish-release=falseon this branch to exercise the signing path without publishing