upload-snapshot: include UCRT64 artifacts when present#181
Merged
dscho merged 1 commit intoJun 23, 2026
Conversation
Now that the git-artifacts workflow can build UCRT64 variants, the snapshots should start carrying them. For the time being, though, UCRT64 must not become part of the full Git for Windows releases; it is meant to be offered through the snapshots only. Because the snapshot upload path is also run for full releases, where it picks up the bits that were produced for the release, and those builds do not include UCRT64, the workflow has to treat UCRT64 as optional rather than mandatory: if the files are there, include them, and if they are not, simply leave them out. To that end, teach the workflow about an optional git_artifacts_ucrt64_workflow_run_id input and a matching UCRT64_WORKFLOW_RUN_ID environment variable. Only when that run ID is provided does the "download remaining artifacts" step append ucrt64 to the list of architectures to fetch, and even then it downloads just the artifacts that the run actually published, so a run without UCRT64 contributes nothing. The full-release path is deliberately left untouched: the architectures list in github-release.js, which drives the release assembly, keeps its three entries (x86_64, i686, aarch64), so full releases remain UCRT64-free. Assisted-by: Opus 4.8 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho
added a commit
to git-for-windows/gfw-helper-github-app
that referenced
this pull request
Jun 22, 2026
The previous commit taught `/git-artifacts` to build the UCRT64 flavor, but the `upload-snapshot` cascade still only ever waited for, and forwarded, the three classic architectures. The freshly built UCRT64 bits were therefore dropped on the floor: nothing waited for that run and nothing handed its ID to the snapshot upload. Now that the snapshot pipeline can pick those bits up (git-for-windows/git-for-windows-automation#181 adds an optional `git_artifacts_ucrt64_workflow_run_id` input to `upload-snapshot.yml`, downloading the UCRT64 artifacts when the input is supplied), this teaches the helper to supply it. Both places that dispatch `upload-snapshot.yml` learn about the fourth architecture: the `git-artifacts` completion cascade in `cascadingRuns()`, and the push-to-`main` path in `handlePush()`. Adding `ucrt64` to the loop that gathers the per-architecture run IDs means the upload is held back until the UCRT64 build has finished, exactly like the other three, and the gathered ID is then passed along as the new input. This deliberately stops at snapshots. The full-release path (`/release`, which drives `release-git.yml`, and the automation side's own `architectures` list in `github-release.js`) is left UCRT64-free for the time being. Because `upload-snapshot.yml` does not declare the new input until #181 lands, dispatching it with that input beforehand would be rejected, so this change must not be merged before #181. Assisted-by: Opus 4.8 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Member
Author
|
Since the automation looks for an existing |
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.
Now that the git-artifacts workflow can build UCRT64 variants, this teaches
upload-snapshot.ymlto pick them up for the snapshots. UCRT64 is deliberately kept out of the full Git for Windows releases for the time being, so the pickup is lenient: a new optionalgit_artifacts_ucrt64_workflow_run_idinput (with a matchingUCRT64_WORKFLOW_RUN_IDenvironment variable) is honored only when it is provided, and even then only the UCRT64 artifacts that the run actually published are downloaded. A snapshot upload that runs against builds without UCRT64 (such as a full release, where this workflow picks up the bits that were produced) therefore contributes nothing extra.The full-release path is left untouched: the
architectureslist ingithub-release.jsthat drives the release assembly keeps its three entries (x86_64,i686,aarch64), so full releases remain UCRT64-free.Note that, to actually feed UCRT64 into the snapshots, whatever dispatches
upload-snapshot.yml(the GitForWindowsHelper app) will need to pass the newgit_artifacts_ucrt64_workflow_run_idinput.