Skip to content
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

ci(windows): avoid using external gpg by mistake #3463

Merged
merged 1 commit into from
Oct 13, 2021

Conversation

dscho
Copy link
Member

@dscho dscho commented Oct 13, 2021

I stumbled over a CI failure this morning when I scrambled to tie up all the loose ends for an unexpected v2.33.1 release. Turns out that the CI picked up the installed Git for Windows' gpg.exe, and due to a mismatch in the MSYS2 runtime between the installed Git for Windows and the subset of the Git for Windows SDK used for compiling in the CI runs, it worked just enough to pass the prereq, but then failed the tests.

On the Windows build agents, a lot of programs are installed, and added
to the PATH automatically.

One such program is Git for Windows, and due to the way it is set up,
unfortunately its copy of `gpg.exe` is also reachable via the PATH.

This usually does not pose any problems. To the contrary, it even allows
us to test the GPG parts of Git's test suite even if `gpg.exe` is not
delivered as part of `git-sdk-64-minimal`, the minimal subset of Git for
Windows' SDK that we use in the CI builds to compile Git.

However, every once in a while we build a new MSYS2 runtime, which means
that there is a mismatch between the copy in `git-sdk-64-minimal` and
the copy in C:\Program Files\Git\usr\bin. When that happens we hit the
dreaded problem where only one `msys-2.0.dll` is expected to be in the
PATH, and things start to fail.

Let's avoid all of this by restricting the PATH to the minimal set. This
is actually done by `git-sdk-64-minimal`'s `/etc/profile`, and we just
have to source this file manually (one would expect that it is sourced
automatically, but the Bash steps in Azure Pipelines/GitHub workflows
are explicitly run using `--noprofile`, hence the need for doing this
explicitly).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho dscho force-pushed the work-around-ci-failures-with-gpg branch from 63c5038 to cd5242d Compare October 13, 2021 12:31
@dscho dscho merged commit 42f3463 into git-for-windows:main Oct 13, 2021
@dscho dscho deleted the work-around-ci-failures-with-gpg branch October 13, 2021 13:08
@dscho dscho added this to the v2.33.1 milestone Oct 13, 2021
git-for-windows-ci pushed a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit to dscho/git that referenced this pull request Oct 13, 2021
…lures-with-gpg

ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 13, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Oct 14, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 14, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 14, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Oct 14, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 14, 2021
ci(windows): avoid using external gpg by mistake
git-for-windows-ci pushed a commit that referenced this pull request Oct 14, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Oct 15, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Oct 15, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Oct 29, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Nov 1, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Nov 4, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Nov 4, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Nov 10, 2021
ci(windows): avoid using external gpg by mistake
dscho added a commit that referenced this pull request Nov 16, 2021
ci(windows): avoid using external gpg by mistake
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant