Issues with GitLab Runner on MacOS 15 Sequoia

Summary

This issue has been reported by a customer via ZD ticket (internal)

The issue relates to Apple's changes of the Security subsystem that now requires approval for local network access similar to its iOS, iPadOS and visionOS systems. The customer identified that the gitlab-runner is not able to access the local network even though it was allow-listed. Looking at the system console you will find issues with the nehelper as follows

nehelper +[NEProcessInfo copyUUIDsForExecutable:]_block_invoke: failed to get UUIDs for /usr/local/bin/gitlab-runner

With a bit of research we found that go-lang already has a bug raised for this issue. Within MacOS Sequoia all applications run as LaunchAgent or LaunchDaemon and need to be able to provide a valid UUID.

Running

 dwarfdump -u /usr/local/bin/gitlab-runner

shows that there is not a valid UUID set.

We have worked around the issue by patching the home-brew formula for the gitlab-runner to add "-linkmode=external" to the linker flags which solved the issue locally.

Steps to reproduce

Install gitlab runner on MacOS 15 (Sequoia)

Example Project

What is the current bug behavior?

The runner binaries do not work correctly on MacOS 15 out of the box

What is the expected correct behavior?

Relevant logs and/or screenshots

Output of checks

Results of GitLab environment info

Expand for output related to GitLab environment info

(For installations with omnibus-gitlab package run and paste the output of:
`sudo gitlab-rake gitlab:env:info`)

(For installations from source run and paste the output of:
`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)

Results of GitLab application Check

Expand for output related to the GitLab application check

(For installations with omnibus-gitlab package run and paste the output of: sudo gitlab-rake gitlab:check SANITIZE=true)

(For installations from source run and paste the output of: sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true)

(we will only investigate if the tests are passing)

Possible fixes