在GitLab CI作业中,如何判断使用哪个版本的GitLab Runner?

时间:2017-12-13 03:19:47

标签: gitlab gitlab-ci gitlab-ci-runner

GitLab CI提供CI_SERVER_VERSION predefined variable,它非常适合确定用于安排作业的GitLab版本,但作业如何获得正在执行作业的GitLab Runner版本?我在Windows 10上使用Shell执行程序。

这是针对医疗软件,我需要检查跑步者的版本是否符合我们验证的版本。

1 个答案:

答案 0 :(得分:0)

我不认为使用预定义变量是可行的,因为它们只包含CI_RUNNER_DESCRIPTIONCI_RUNNER_IDCI_RUNNER_TAGS

您可以使用this section中举例说明的跑步者environment中的config.toml设置创建变通方法:

[[runners]]
  name = "ruby-2.1-docker"
  url = "https://CI/"
  token = "TOKEN"
  limit = 0
  executor = "docker"
  builds_dir = ""
  shell = ""
  environment = ["ENV=value", "CI_RUNNER_VERSION=10.2"]
  clone_url = "http://gitlab.example.local

如果您使用Ansible,Puppet,Chef或其他配置工具之类的东西,您可以确保他们在升级跑步者时更新配置,例如

或者创建一个bash脚本,根据每天/每晚替换config.toml中的CI_RUNNER_VERSION值,然后重新启动跑步者服务。这很容易。

您可以通过运行以下内容获取版本或跑步者(以及仅限确切版本):

$ gitlab-runner --version | head -n 1 | awk '{print $2}'