可以在macOS上安装和更新GitLab Runner。
正在安装
在macOS上安装GitLab Runner有两种方法:
手动安装。GitLab正式支持和推荐此方法。
自制安装。使用Homebrew进行安装,以替代手动安装。
手动安装(官方)
注意:有关GitLab Runner 9及更早版本的文档,请访问此文档。
下载适用于您系统的二进制文件:
sudo curl--output/usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
您可以按照Bleeding Edge中的说明为每个可用版本下载二进制文件-下载任何其他带标签的版本。
授予其执行权限:
sudo chmod+x /usr/local/bin/gitlab-runner
其余命令应以将运行Runner的用户身份执行。
注意:在macOS上构建iOS或macOS应用程序时,请使用shell executor。构建和测试以登录用户的身份直接在构建主机上运行。它不在容器中运行。这不如使用容器执行器安全。有关更多信息,请参阅安全隐患文档,以获取有关此方案中应注意的事项的更多详细信息。
将Runner作为服务安装并启动它:
cd~gitlab-runnerinstall gitlab-runner start
Runner已安装,将在系统重新引导后运行。
自制安装(替代)
可使用Homebrew公式来安装GitLab。
注意:GitLab不维护Homebrew公式。
要使用Homebrew安装GitLab Runner:
安装GitLab Runner。
brewinstall gitlab-runner
将Runner作为服务安装并启动。
brew services start gitlab-runner
Runner已安装并正在运行。
macOS的局限性
注意:该服务需要从以您当前用户身份登录的“终端”窗口中安装。只有这样,您才能管理服务。
当前,唯一可行的在macOS中运行的方法是在用户模式下运行该服务。
由于该服务仅在用户登录后才运行,因此您应该在macOS机器上启用自动登录。
该服务将作为推出LaunchAgent。通过使用LaunchAgents,构建将能够执行UI交互,从而可以在iOS模拟器中运行和测试。
值得注意的是,macOS还具有LaunchDaemons在后台完全运行的服务。LaunchDaemons是在系统启动时运行的,但它们对UI交互的访问权限与相同LaunchAgents。您可以尝试以形式运行Runner的服务LaunchDaemon,但当前不支持此操作模式。
您可以在执行install命令后通过检查~/Library/LaunchAgents/gitlab-runner.plist文件来验证Runner是否创建了服务配置文件。
如果使用Homebrew进行安装git,则可能已添加了一个/usr/local/etc/gitconfig文件,其中包含:
[credential]helper=osxkeychain
这告诉Git将用户凭据缓存在钥匙串中,这可能不是您想要的,并且可能导致获取挂起。您可以使用以下方法从系统中删除该行gitconfig:
git config--system--unsetcredential.helper
另外,您可以仅禁用credential.helperGitLab用户:
git config--global--addcredential.helper''
您可以使用以下命令检查状态credential.helper:
git config credential.helper
手动更新
停止服务:
gitlab-runner stop
下载二进制文件以替换Runner的可执行文件:
sudo curl-o/usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
您可以按照Bleeding Edge中的说明为每个可用版本下载二进制文件-下载任何其他带标签的版本。
授予其执行权限:
sudo chmod+x /usr/local/bin/gitlab-runner
启动服务:
gitlab-runner start
确保您阅读了FAQ部分,该部分描述了GitLab Runner的一些最常见问题。
升级服务文件
为了升级LaunchAgent配置,您需要卸载并安装该服务:
gitlab-runner uninstallgitlab-runnerinstall gitlab-runner start
在GitLab Runner服务中使用codesign
如果您gitlab-runner使用自制软件安装MacOS并进行构建调用codesign,则可能需要设置<key>SessionCreate</key><true/>为有权访问用户钥匙串。在以下示例中,我们以gitlab用户身份运行构建,并希望访问该用户安装的签名证书以进行代码签名:
gitlab-runner service not starting 问题解决
$ launchctl remove gitlab-runner$ launchctl list |grep gitlab-runner# Found plist via https://stackoverflow.com/a/28907800/796832$ rm/Users/用户名/Library/LaunchAgents/gitlab-runner.plist
$ gitlab-runnerinstall$ gitlab-runner start$ gitlab-runner statusgitlab-runner: Service is running!!
参考链接:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3344