如何解决Gitlab CI 忽略 1 以外的 skript 退出代码
我正在尝试设置一个 gitlab 管道,以便某些 exit_codes 可以用于我正在执行的脚本。 我已经尝试过 shell 和 ruby 脚本,但两者似乎都有相同的行为。
如您所见,我只是在执行脚本,仅此而已,我的期望是,最后执行的脚本用作作业的退出状态。
在脚本中,我只调用了“exit 64”,在这种情况下这应该是“允许的失败”,但是管道日志说由于退出代码 1 导致作业失败:
如何让 gitlab 接受此(或 ruby)脚本的退出代码作为作业退出代码?
解决方法
更新:
我找到了解决这个问题的方法,显然 gitlab-runner 使用了“-e”标志,这意味着任何非 0 退出代码都会取消作业。 这可以通过使用“set +e”进行更新,但您仍然需要捕获作业的实际退出代码。
使用 $?在配置的两个不同行中不起作用,因为 gitlab 在它们之间进行了“echo”调用。
所以退出代码需要直接捕获,例如:
script:
- ruby "ci/example.rb" || EXIT_CODE=$?
- exit $EXIT_CODE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。