有谁知道如何解决“缺少 gitlab-runner。上传工件被禁用。”
我的服务器上有两个 ssh 运行程序。一种用于本地 ssh 运行程序,另一种用于远程服务器 ssh 运行程序。本地 ssh 运行程序运行良好。但是,当我调用远程 shh 运行程序时,它正在成功构建,但显示“缺少 gitlab-runner。上传工件已被禁用。”这样我就无法在下一阶段调用神器了。
gitlab-ci.yml 文件如下所示:
stages:
- build
- deploy
cache:
paths:
- .gradle/wrapper
- .gradle/caches
build:
stage: build
script:
- build script
artifacts:
paths:
- build/
only:
- master
deploy:
stage: deploy
script:
- deploy script
dependencies:
- build
only:
- master
您还需要在 ssh 目标主机上安装
gitlab-runner
。 Gitlab 不知何故需要它来上传工件。现在也记录了这一点:https://docs.gitlab.com/runner/executors/ssh.html:
如果您想上传作业工件,请在您通过 SSH 连接的主机上安装
。gitlab-runner
您可以将
gitlab-runner
放入路径 ~/bin
中,并将 ~/bin
添加到变量 PATH 中。
我希望有另一种解决方法。我的 SSH 执行器用例适用于 IBM i 平台,该平台目前没有 GO 运行时,因此不幸的是,无法在此服务器上安装 gitlab-runner。
我的解决方法是将复杂的 ssh 逻辑放入非 ssh 执行器运行程序中,该运行程序手动执行 ssh 连接,通过 ssh 运行命令,然后在构建之后,在脚本末尾通过 scp 或 sftp 将工件返回到运行程序逻辑已被执行。非常麻烦。