在 Script 部分的 .gitlab-ci.yml 中调用 GO 二进制文件并捕获响应
Posted
技术标签:
【中文标题】在 Script 部分的 .gitlab-ci.yml 中调用 GO 二进制文件并捕获响应【英文标题】:Call GO binary in .gitlab-ci.yml inside Script section and capture response 【发布时间】:2020-05-20 04:12:29 【问题描述】:我正在寻找一种从 .gitlab-ci.yml
文件中调用 main.go 文件的方法。 Main.go 接受标志并返回布尔值。
从bash,我可以在下面执行
go run ./cmd/main.go -timeout=10
It displays true/ false values.
现在从我的.gitlab-ci.yml
文件中,我想调用上面的程序。我们已经有了工作设置(docker 图像),所有的 GO/SH 二进制文件都将被放置在其中。所以.gitlab-ci.yml
文件知道上面程序的位置。只是我没有找到在脚本部分的.gitlab-ci.yml
中调用上述二进制文件的方法。我应该能够捕获 GO 二进制文件的返回响应。
【问题讨论】:
您是否在自托管运行器中运行您的工作? Runner、docker 图像、执行所需的 Infra 是自托管的。所以从 Git YML,我可以调用 go run binary。但是,我面临的问题是捕获 main.go 返回的输出并处理 【参考方案1】:有一种简单的调试方法(这只适用于自托管运行器)
在你的 .gitlab-ci.yml 中设置
script:
- tail -f /dev/null
- your commands
- your commands ...
运行此作业后,您的跑步者将冻结,您将能够在跑步者容器内进行连接
docker (or kubectl) exec -it <your runner container> bash
在此之后,您可以调试和测试您的所有命令,您将知道您的命令无法正常工作的原因,您可以稍后在您的 gitlab 文件中修复它
【讨论】:
以上是关于在 Script 部分的 .gitlab-ci.yml 中调用 GO 二进制文件并捕获响应的主要内容,如果未能解决你的问题,请参考以下文章