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

Re: [PATCH 3/3] ci: add macOS jobs to GitLab CI

From
PWPhillip Wood <phillip.wood123@gmail.com>
Date
Jan 16, 2024, 14:58 UTC
Message-ID
<61115e68-3d63-4e08-85f7-ae6650f3724e@gmail.com>
In-Reply-To
<d196cfd9d01fe3b52c75a1e4e0aca9f67567ab43.1705318985.git.ps@pks.im>
Hi Patrick
On 15/01/2024 11:45, Patrick Steinhardt wrote:
> Add two macOS-based jobs to GitLab CI, one for Clang and one for GCC.

This doesn't match whats in the rest of the commit message where you explain why there is no gcc job. The patch itself looks good to me and it is nice that we'll now be testing on arm64 with the GitLab runners.

Show 9 quoted lines
> This matches equivalent jobs we have for GitHub Workflows, except that
> we use macOS 14 instead of macOS 13.
> 
> Note that one test marked as `test_must_fail` is surprisingly passing:
> 
>    t7815-grep-binary.sh                             (Wstat: 0 Tests: 22 Failed: 0)
>      TODO passed:   12
> 
> This seems to boil down to an unexpected difference in how regcomp(1)
nit: regcomp(3)?
Best Wishes
Phillip
Show 79 quoted lines
> works when matching NUL bytes. Cross-checking with the respective GitHub
> job shows though that this is not an issue unique to the GitLab CI job
> as it passes in the same way there.
> 
> Further note that we do not include the equivalent for the "osx-gcc" job
> that we use with GitHub Workflows. This is because the runner for macOS
> on GitLab is running on Apple M1 machines and thus uses the "arm64"
> architecture. GCC does not support this platform yet.
> 
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
>   .gitlab-ci.yml | 26 +++++++++++++++++++++++++-
>   ci/lib.sh      |  9 ++++++++-
>   2 files changed, 33 insertions(+), 2 deletions(-)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 793243421c..9748970798 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -7,7 +7,7 @@ workflow:
>       - if: $CI_COMMIT_TAG
>       - if: $CI_COMMIT_REF_PROTECTED == "true"
>   
> -test:
> +test:linux:
>     image: $image
>     before_script:
>       - ./ci/install-docker-dependencies.sh
> @@ -52,6 +52,30 @@ test:
>         - t/failed-test-artifacts
>       when: on_failure
>   
> +test:osx:
> +  image: $image
> +  tags:
> +    - saas-macos-medium-m1
> +  before_script:
> +    - ./ci/install-dependencies.sh
> +  script:
> +    - ./ci/run-build-and-tests.sh
> +  after_script:
> +    - |
> +      if test "$CI_JOB_STATUS" != 'success'
> +      then
> +        ./ci/print-test-failures.sh
> +      fi
> +  parallel:
> +    matrix:
> +      - jobname: osx-clang
> +        image: macos-13-xcode-14
> +        CC: clang
> +  artifacts:
> +    paths:
> +      - t/failed-test-artifacts
> +    when: on_failure
> +
>   static-analysis:
>     image: ubuntu:22.04
>     variables:
> diff --git a/ci/lib.sh b/ci/lib.sh
> index f631206a44..d5dd2f2697 100755
> --- a/ci/lib.sh
> +++ b/ci/lib.sh
> @@ -252,7 +252,14 @@ then
>   	CI_COMMIT="$CI_COMMIT_SHA"
>   	case "$CI_JOB_IMAGE" in
>   	macos-*)
> -		CI_OS_NAME=osx;;
> +		# GitLab CI has Python installed via multiple package managers,
> +		# most notably via asdf and Homebrew. Ensure that our builds
> +		# pick up the Homebrew one by prepending it to our PATH as the
> +		# asdf one breaks tests.
> +		export PATH="$(brew --prefix)/bin:$PATH"
> +
> +		CI_OS_NAME=osx
> +		;;
>   	alpine:*|fedora:*|ubuntu:*)
>   		CI_OS_NAME=linux;;
>   	*)
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 7 of 17 in “ci: add support for macOS to GitLab CI”
  1. 0/3 ci: add support for macOS to GitLab CIPatrick Steinhardt, Jan 15, 2024
  2. 1/3 ci: make p4 setup on macOS more robustPatrick Steinhardt, Jan 15, 2024
  3. Matthias AßhauerJan 18, 2024
  4. Patrick SteinhardtJan 18, 2024
  5. 2/3 Makefile: detect new Homebrew location for ARM-based MacsPatrick Steinhardt, Jan 15, 2024
  6. 3/3 ci: add macOS jobs to GitLab CIPatrick Steinhardt, Jan 15, 2024
  7. Phillip WoodJan 16, 2024
  8. Patrick SteinhardtJan 17, 2024
  9. 0/5 ci: add support for macOS to GitLab CIPatrick Steinhardt, Jan 18, 2024
  10. 1/5 t7527: decrease likelihood of racing with fsmonitor daemonPatrick Steinhardt, Jan 18, 2024
  11. 2/5 Makefile: detect new Homebrew location for ARM-based MacsPatrick Steinhardt, Jan 18, 2024
  12. 3/5 ci: handle TEST_OUTPUT_DIRECTORY when printing test failuresPatrick Steinhardt, Jan 18, 2024
  13. 4/5 ci: make p4 setup on macOS more robustPatrick Steinhardt, Jan 18, 2024
  14. 5/5 ci: add macOS jobs to GitLab CIPatrick Steinhardt, Jan 18, 2024
  15. Phillip WoodJan 21, 2024
  16. Patrick SteinhardtJan 22, 2024
  17. Junio C HamanoJan 22, 2024

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.