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

Re: [PATCH v4 0/5] meson: add corresponding target for Makefile's hdr-check

From
Karthik Nayak <karthik.188@gmail.com>
Date
Apr 21, 2025, 15:33 UTC
Message-ID
<CAOLa=ZSR=7TEWLHa-wzBB4x+4+-BH3UC3G7s24Bc26JH63QKOA@mail.gmail.com>
In-Reply-To
<8b380da4-8d27-4efe-85fd-3bb599188fe9@gmail.com>
Phillip Wood <phillip.wood123@gmail.com> writes:
Show 47 quoted lines
> On 21/04/2025 08:48, Junio C Hamano wrote:
>> Karthik Nayak <karthik.188@gmail.com> writes:
>>
>>> This is based on master 9d22ac5122 (The third batch, 2025-04-07) with
>>> 'es/meson-build-skip-coccinelle' merged in.
>>>
>>
>> Like the previous round, this round also seems to break linux.meson
>> job at GitHub Actions CI when merged to 'seen'.  It may be quite
>> possible that it is caused by some semantic conflicts, and help to
>> find where the merged result is wrong is very much appreciated.
>>
>> For now, I've ejected the topic out of 'seen' again.
>>
>> Failing CI run:
>>
>> https://github.com/git/git/actions/runs/14563669225/job/40850047961
>>
>
> "git ls-files" is complaining that there isn't a git repository. Looking
> at the output of the checkout action (reproduced below) it appears it is
> extracting a tarball rather than using "git clone" because git is not
> available. I don't know what the best way to fix that is - I guess we
> could run "apt-get install git" before calling the checkout action.
>
> Best Wishes
>
> Phillip
>
>
> Run actions/checkout@v4
> /usr/bin/docker exec
> 6334961fdc01ddadb7a7af1fadd8ae33a6fce79b7428255d2231145f5e09f51d sh -c
> "cat /etc/*release | grep ^ID"
> Syncing repository: git/git
> Getting Git version info
>    Working directory is '/__w/git/git'
> Deleting the contents of '/__w/git/git'
> The repository will be downloaded using the GitHub REST API
> To create a local Git repository instead, add Git 2.18 or higher to the PATH
> Downloading the archive
> Writing archive to disk
> Extracting the archive
> /usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C
> /__w/git/git/23521f8f-82bd-4a9b-994a-cacfd7101756 -f
> /__w/git/git/23521f8f-82bd-4a9b-994a-cacfd7101756.tar.gz
> Resolved version git-git-c9e21a0

Yup, this seems to be the reason, I was primarily using GitLab CI for ensuring everything was working, apart from locally testing it. Seems like there is no issues on GitLab CI:

  https://gitlab.com/gitlab-org/git/-/pipelines/1777164771

So the only difference, is that, like you mentioned, GitHub strips the repository information by downloading a tar file using the REST API. The reason seems to be due to missing the 'git' executable:

  https://github.com/actions/checkout/issues/363

I tested this with the following patch, which seems to fix the issue at hand. Will send in a new version with this patch, once I validate all the tests.

-- >8 --
commit b4567cac2b5eb5e9b50b468a85854bad66a9f445
Author: Karthik Nayak <karthik.188@gmail.com>
Date:   Mon Apr 21 13:06:45 2025 +0200
    ci/github: install git before checking out the repository
    The GitHub CI workflow uses 'actions/checkout@v4' to checkout the
    repository. This action defaults to using the GitHub REST API to obtain
    the repository if Git isn't present. The REST API downloads a tar of the
    repository sans the Git information. Since we don't install Git before
    this step, using the REST API is the current behavior.
    The following commits will add the 'hdr-check' static check to meson.
    The check will use 'git ls-files' to obtain the set of header files.
    This will fail if the repository doesn't contain the Git directory. So
    install Git before running the 'actions/checkout@v4' action.
    Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 37541f3d10..a09fcf4d72 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -414,6 +414,16 @@ 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 [ -f /etc/alpine-release ]; then
+          apk update && apk add --no-cache git
+        elif [ -f /etc/almalinux-release ] || [ -f /etc/redhat-release ]; then
+           dnf -y install git
+        else
+          apt -q update && apt -q -y install git
+        fi
+        git config --global --add safe.directory "$GITHUB_WORKSPACE"
     - uses: actions/checkout@v4
     - run: ci/install-dependencies.sh
     - run: useradd builder --create-home
Previous: Phillip WoodNext: Phillip Wood
Message 32 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.