git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v5 1/6] ci/github: install git before checking out the repository

From
Karthik Nayak <karthik.188@gmail.com>
Date
Apr 23, 2025, 17:39 UTC
Message-ID
<CAOLa=ZQJZ0L2wONYJo_JNKSDHHRWQ-sOTuA34FLLgzzZPnHdqg@mail.gmail.com>
In-Reply-To
<3607a937-9795-4348-981e-dce92203c6d7@gmail.com>
phillip.wood123@gmail.com writes:
Show 11 quoted lines
> Hi Karthik
>
> This looks good, I've left a few comments about the wording of the
> commit message but I wouldn't worry too much unless you end up
> re-rolling for some other reason.
>
> On 23/04/2025 09:15, Karthik Nayak wrote:
>> The GitHub's CI workflow uses 'actions/checkout@v4' to checkout the
>
> We don't need "The" here
>
Yeah, I think we can remove it.
>> repository. This action defaults to using the GitHub REST API to obtain
>
> I'd maybe say "falls back" rather than "defaults"
>
Right!
Show 16 quoted lines
>> the repository if the `git` executable isn't available.
>>
>> The step to build Git in the GitHub workflow can be summarized as:
>>
>>    ...
>>    - uses: actions/checkout@v4 #1
>>    - run: ci/install-dependencies.sh #2
>>    ...
>>    - run: sudo --preserve-env --set-home --user=builder ci/run-build-and-tests.sh #3
>>    ...
>>
>> Step #1, clones the repository, since the `git` executable isn't present
>
> It would be more accurate to say that it tries to clone the repository -
> if we fall back to extracting a tarball then we're not cloning.
>
Yes indeed.
Show 14 quoted lines
>> at this step, it uses GitHub's REST API to obtain a tar of the
>> repository.
>>
>> Step #2, installs all dependencies, which includes the `git` executable.
>>
>> Step #3, sets up the build, which includes setting up meson in the meson
>> job. At this point the `git` executable is present.
>>
>> This means while the `git` executable is present, the repository doesn't
>> contain the '.git' folder.
>
> I'd maybe say "source tree" instead of "repository" as it isn't a
> repository without a ".git" directory.
>
Good point.
Show 10 quoted lines
>> To keep both the CI's (GitLab and GitHub)
>> behavior consistent and to ensure that the build is performed on a
>> real-world scenario, install `git` before the repository is checked out.
>> This ensures that 'actions/checkout@v4' will clone the repository
>> instead of using a tarball. We also update the package cache while
>> installing `git`, this is because some distros will fail to locate the
>> package without updating the cache.
>
> Nice explanation, the code changes look good
>

Thanks for the review. I'll add it locally to my tree. That way if I end up with a new version, It'll incorporate these changes.

Show 36 quoted lines
> Thanks
>
> Phillip
>
>> Helped-by: Phillip Wood <phillip.wood123@gmail.com>
>> Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
>> ---
>>   .github/workflows/main.yml | 14 ++++++++++++++
>>   1 file changed, 14 insertions(+)
>>
>> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
>> index 37541f3d10..e9112b3a64 100644
>> --- a/.github/workflows/main.yml
>> +++ b/.github/workflows/main.yml
>> @@ -414,6 +414,20 @@ jobs:
>>       - name: prepare libc6 for actions
>>         if: matrix.vector.jobname == 'linux32'
>>         run: apt -q update && apt -q -y install libc6-amd64 lib64stdc++6
>> +    - name: install git in container
>> +      run: |
>> +        if command -v git
>> +        then
>> +          : # nothing to do
>> +        elif command -v apk
>> +        then
>> +          apk add --update git
>> +        elif command -v dnf
>> +        then
>> +          dnf -yq update && dnf -yq install git
>> +        else
>> +          apt-get -q update && apt-get -q -y install git
>> +        fi
>>       - uses: actions/checkout@v4
>>       - run: ci/install-dependencies.sh
>>       - run: useradd builder --create-home
>>
Previous: phillip.wood123@gmail.comNext: Karthik Nayak
Message 52 of 69 in “meson: add corresponding target for Makefile's hdr-check”
  1. 0/3 meson: add corresponding target for Makefile's hdr-checkKarthik Nayak, Apr 8, 2025
  2. 1/3 coccinelle: meson: rename variables to be more specificKarthik Nayak, Apr 8, 2025
  3. 2/3 meson: move headers definition from 'contrib/coccinelle'Karthik Nayak, Apr 8, 2025
  4. 3/3 meson: add support for 'headers-check'Karthik Nayak, Apr 8, 2025
  5. Junio C HamanoApr 8, 2025
  6. Karthik NayakApr 10, 2025
  7. 0/4 meson: add corresponding target for Makefile's hdr-checkKarthik Nayak, Apr 10, 2025
  8. 1/4 coccinelle: meson: rename variables to be more specificKarthik Nayak, Apr 10, 2025
  9. 2/4 meson: move headers definition from 'contrib/coccinelle'Karthik Nayak, Apr 10, 2025
  10. Patrick SteinhardtApr 11, 2025
  11. Karthik NayakApr 11, 2025
  12. 3/4 meson: add support for 'hdr-check'Karthik Nayak, Apr 10, 2025
  13. Phillip WoodApr 10, 2025
  14. Junio C HamanoApr 10, 2025
  15. Karthik NayakApr 14, 2025
  16. Patrick SteinhardtApr 11, 2025
  17. Karthik NayakApr 14, 2025
  18. Toon ClaesApr 14, 2025
  19. Karthik NayakApr 14, 2025
  20. 4/4 makefile/meson: add 'headers-check' as alias for 'hdr-check'Karthik Nayak, Apr 10, 2025
  21. Phillip WoodApr 10, 2025
  22. Junio C HamanoApr 10, 2025
  23. Karthik NayakApr 14, 2025
  24. 0/5 meson: add corresponding target for Makefile's hdr-checkKarthik Nayak, Apr 20, 2025
  25. 1/5 coccinelle: meson: rename variables to be more specificKarthik Nayak, Apr 20, 2025
  26. 2/5 meson: move headers definition from 'contrib/coccinelle'Karthik Nayak, Apr 20, 2025
  27. 3/5 meson: rename 'third_party_sources' to 'third_party_excludes'Karthik Nayak, Apr 20, 2025
  28. 5/5 makefile/meson: add 'check-headers' as alias for 'hdr-check'Karthik Nayak, Apr 20, 2025
  29. 4/5 meson: add support for 'hdr-check'Karthik Nayak, Apr 20, 2025
  30. Junio C HamanoApr 21, 2025
  31. Phillip WoodApr 21, 2025
  32. Karthik NayakApr 21, 2025
  33. Phillip WoodApr 22, 2025
  34. Karthik NayakApr 22, 2025
  35. Junio C HamanoApr 22, 2025
  36. Eli SchwartzApr 23, 2025
  37. Phillip WoodApr 23, 2025
  38. Karthik NayakApr 22, 2025
  39. Phillip WoodApr 23, 2025
  40. Junio C HamanoApr 21, 2025
  41. Phillip WoodApr 21, 2025
  42. Junio C HamanoApr 21, 2025
  43. Phillip WoodApr 23, 2025
  44. Patrick SteinhardtApr 22, 2025
  45. Karthik NayakApr 21, 2025
  46. Junio C HamanoApr 21, 2025
  47. Karthik NayakApr 22, 2025
  48. Junio C HamanoApr 22, 2025
  49. 0/6 meson: add corresponding target for Makefile's hdr-checkKarthik Nayak, Apr 23, 2025
  50. 1/6 ci/github: install git before checking out the repositoryKarthik Nayak, Apr 23, 2025
  51. phillip.wood123@gmail.comApr 23, 2025
  52. Karthik NayakApr 23, 2025
  53. 2/6 coccinelle: meson: rename variables to be more specificKarthik Nayak, Apr 23, 2025
  54. 3/6 meson: move headers definition from 'contrib/coccinelle'Karthik Nayak, Apr 23, 2025
  55. 4/6 meson: rename 'third_party_sources' to 'third_party_excludes'Karthik Nayak, Apr 23, 2025
  56. 5/6 meson: add support for 'hdr-check'Karthik Nayak, Apr 23, 2025
  57. phillip.wood123@gmail.comApr 23, 2025
  58. Karthik NayakApr 23, 2025
  59. 6/6 makefile/meson: add 'check-headers' as alias for 'hdr-check'Karthik Nayak, Apr 23, 2025
  60. Patrick SteinhardtApr 23, 2025
  61. Karthik NayakApr 23, 2025
  62. phillip.wood123@gmail.comApr 23, 2025
  63. Junio C HamanoApr 23, 2025
  64. Junio C HamanoApr 23, 2025
  65. Junio C HamanoApr 23, 2025
  66. Karthik NayakApr 23, 2025
  67. Junio C HamanoApr 23, 2025
  68. Karthik NayakApr 23, 2025
  69. Karthik NayakApr 23, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.