如何将值传递给 Gitlab CI 作业
Posted
技术标签:
【中文标题】如何将值传递给 Gitlab CI 作业【英文标题】:How to pass values to a Gitlab CI Job 【发布时间】:2019-08-18 20:15:24 【问题描述】:我有一个 GitLab ci 工作来下载和构建一些文件,然后发布到另一台服务器。我做了一个 POC 并且成功了。问题是我想在手动或通过 API 触发时自定义作业。如何传递动态值(用户给定)以反映在 CI 作业中(如文件名、格式等)?
我正在使用 Windows 运行程序。
我看到了触发变量和环境变量,但是一旦在 UI 中设置了值,就可以在执行时检索。我想要从用户那里获取值的地方有点不同。
在 GitLab 中不可能吗?
编辑:
关于我如何使用管道的更多信息。我的管道有两个阶段 - 构建和部署。我希望构建运行一次,但我希望能够调用 deploy multiple 来部署到不同的服务器。我可以使用该变量来确定要部署到哪个服务器。通过 GitLab UI,这是可能的——我可以为管道设置变量,也可以为覆盖管道变量的作业设置变量。我只是想通过 API 做同样的事情。
【问题讨论】:
【参考方案1】:启动管道时可以传递变量:https://docs.gitlab.com/ee/ci/pipelines/#run-a-pipeline-manually
可以使用预定义的或手动指定的变量手动执行管道。
这些变量也可以在 API 调用中指定:https://docs.gitlab.com/ee/api/pipelines.html#create-a-new-pipeline
包含管道中可用变量的数组,匹配结构 [ ‘key’ => ‘UPLOAD_TO_S3’, ‘value’ => ‘true’ ]
【讨论】:
以上是关于如何将值传递给 Gitlab CI 作业的主要内容,如果未能解决你的问题,请参考以下文章
在 GitLab CI/CD 作业中将环境变量传递给 docker run 返回无效的参考格式?
如何在运行Jenkins CI管道时屏蔽作为用户输入传递的密码?
如何在运行作业之前使用用户界面向 gitlab 作业添加选项?
在 gitlab-ci 作业中将文件从摇杆容器传递到乳胶容器