-
-
Notifications
You must be signed in to change notification settings - Fork 359
Use runner-provided Git for Windows now that it's 2.49.0 #1920
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use runner-provided Git for Windows now that it's 2.49.0 #1920
Conversation
f951866
to
c5d3793
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Although the new runner image is a stable release and it's been a few days, it is apparently not yet in use on the GitHub-hosted runners. When CI runs on this PR, the runner has has Git 2.48.1. The runner image here is 20250309.1.0 while the version with Git 2.49.0 is 20250330.1.1. I think this can probably be kept open until the GitHub-hosted runners use the new image, then merged. (If that doesn't happen soon, then this PR could be closed and reopened later.)
c5d3793
to
c206852
Compare
Because GitoxideLabs#1849 (git-for-windows/git#5436) caused some incorrect test failures in `test-fixtures-windows`, we have been upgrading Git for Windows on the runner for that job: - We starting doing that in of 4237e5a (GitoxideLabs#1870). At that time, we upgraded it to the most recent tag, to select the latest release even though it was a release candiate, because Git for Windows 2.49.0 had not yet had a stable release. - Then Git for Windows 2.49.0 got a stable release, and starting in ddef6d3 (GitoxideLabs#1892) we have upgraded to the release marked "latest" (which in Git for Windows is always the latest stable release). More recently, the Windows Server 2022 runner image (which the `windows-latest` label we use currently selects) has upgraded its Git for Windows installation from 2.48.1 to 2.49.0: https://github.com/actions/runner-images/releases/tag/win22%2F20250330.1 It is therefore no longer necessary for the `test-fixtures-windows` job to upgrade Git for Windows on the runner. This removes the step that did that. (Either version of the step could be brought back from the history if ever needed again.) This closes GitoxideLabs#1849, per the plan in: GitoxideLabs#1849 (comment)
c206852
to
3501e82
Compare
It turns out that what happened is that, due to regressions with Rust and CMake in the image (actions/runner-images#11941), the image was rolled back soon after being deployed (actions/runner-images#11953). Since then, a newer image 20250406.1.1 is being used. I've observed it to use that newer image in all of a number of re-runs here and in my fork. Still, when it first started being used this morning, it was labeled as a pre-release in Edit: I think this further indicates that the upgrade is well in place and can be relied on: actions/runner-images#11953 (comment) |
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
Although this is (currently, and in the immediately foreseeable future) only used in one place, it's cumbersome and also something that we've removed and reintroduced before. Making it a composite action may make it reasonable to keep it around for next time it is needed. It had previously been removed based on the idea that it wasn't clear what form it would need to be in if needed again. Now that it is needed again, the current form as well as the form that seems most likely for future needs is to install the latest stable release of Git for Windows (rather than a release candidate, hard coded version, etc.). Note that this should still not be used habitually, as the Git for Windows installation that ships preinstalled on a runner image should be preferred except when insufficient. See GitoxideLabs#1870, GitoxideLabs#1892, GitoxideLabs#1920, and the recent commit that reintroduced this logic, for background.
Although this is -- currently, and in the immediately foreseeable future -- only used in one place, it's cumbersome and also something that we've removed and reintroduced before. Making it a composite action may make it reasonable to keep it around for next time it is needed. It had previously been removed based on the idea that it wasn't clear what form it would need to be in if needed again. Now that it is needed again, the current form as well as the form that seems most likely for future needs is to install the latest stable release of Git for Windows -- rather than a release candidate, hard coded version, etc. Note that this should still not be used habitually, as the Git for Windows installation that ships preinstalled on a runner image should be preferred except when insufficient. See GitoxideLabs#1870, GitoxideLabs#1892, GitoxideLabs#1920, and the recent commit that reintroduced this logic, for background. This may be a bit complicated to get working, because we want to run the composite action before we have used `actions/checkout`. This is so `actions/checkout` can use and therefore verify that the new Git for Windows version works, and so we don't leave any dangling subprocesses or otherwise open files that would keep the new Git for Windows's Inno Setup installer from removing or replacing the old Git for Windows. But to run a composite action from a`./` path, one ordinarily needs to have checked out the repository already. A composite action can of course be run from a specified ref on a specified repository. But unless we're actually spinning it out to be a general reusable action that versions separately from workflows here such as `ci.yml`, we would always want to run the composite action as defined at the same commit we are at. (The effect of modifying it on a feature branch is othewise cumbersome and unintuitive.) This same commit is often pointed to by the same remote ref -- but not always, because the `pull_request` trigger runs workflows on a temporary merge commit.
Extract "Upgrade Git for Windows" to a composite action Although this is -- currently, and in the immediately foreseeable future -- only used in one place, it's cumbersome and also something that we've removed and reintroduced before. Making it a composite action may make it reasonable to keep it around for next time it is needed. It had previously been removed based on the idea that it wasn't clear what form it would need to be in if needed again. Now that it is needed again, the current form as well as the form that seems most likely for future needs is to install the latest stable release of Git for Windows -- rather than a release candidate, hard coded version, etc. Note that this should still not be used habitually, as the Git for Windows installation that ships preinstalled on a runner image should be preferred except when insufficient. See GitoxideLabs#1870, GitoxideLabs#1892, GitoxideLabs#1920, and the recent commit that reintroduced this logic, for background.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
The `windows-11-arm` runner still has Git for Windows 2.48.1. It thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now. This is responsible for failures seen so far on `windows-11-arm`, other than the failures that appear to be related to performance. This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for Windows installation on the runner, but does so *only* in the `windows-11-arm` job, and *not* in the `windows-latest` job. The code is modified to download the ARM64 installer rather than the x86-64 installer. Besides being only done for `windows-11-arm` and installing an ARM64 build, this is the same as the code in GitoxideLabs#1892 (building on GitoxideLabs#1870). It thus attempts to install the latest stable release, but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background. Especially in view of the preview status of the `windows-11-arm` image, it may be a good idea to inspect and report the status of the Git for Windows installation before and after the upgrade. But this commit does not add such functionality.
Closes #1849
Because #1849 (git-for-windows/git#5436) caused some incorrect test failures in
test-fixtures-windows
, we have been upgrading Git for Windows on the runner for that job:We starting doing that in of 4237e5a (#1870). At that time, we upgraded it to the most recent tag, to select the latest release even though it was a release candiate, because Git for Windows 2.49.0 had not yet had a stable release.
Then Git for Windows 2.49.0 got a stable release, and starting in ddef6d3 (#1892) we have upgraded to the release marked "latest" (which in Git for Windows is always the latest stable release).
More recently, the Windows Server 2022 runner image (which the
windows-latest
label we use currently selects) has upgraded its Git for Windows installation from 2.48.1 to 2.49.0: https://github.com/actions/runner-images/releases/tag/win22%2F20250330.1It is therefore no longer necessary for the
test-fixtures-windows
job to upgrade Git for Windows on the runner. This removes the step that did that. (Either version of the step could be brought back from the history if ever needed again.)This is as planned in #1849 (comment).