【发布时间】:2020-11-01 00:50:09
【问题描述】:
我的 Gitlab 分支中有 YAML 文件。根据要求,我想在 YAML 文件中创建一个随机的 mergeID。
【问题讨论】:
-
你能给出你测试过的代码吗?
-
YAML 不是编程语言,因此无法生成随机数。 gitlab-ci-runner 标签没有意义,因为它是用 TOML 配置的,而不是 YAML。
我的 Gitlab 分支中有 YAML 文件。根据要求,我想在 YAML 文件中创建一个随机的 mergeID。
【问题讨论】:
如果您指的是 gitlab-ci.yml 文件,这是可能的。 YAML 文件中定义的每个 GitLab 作业都提供了一个 script 部分,您可以在其中定义将在作业运行时由 GitLab 执行的 bash 命令。如果你想要更复杂的操作,你可以从脚本部分调用 Python 脚本。
幸运的是,在这种情况下,bash 有一个内置的$RANDOM 函数,在How to generate random number in Bash? 中进行了描述。
gitlab-ci.yml:
my-job:
stage: my-stage
script:
# Generate random number from 1 to 10:
- let MR_ID=$((1 + RANDOM % 10))
有关 GitLab 脚本的更多信息:https://docs.gitlab.com/ee/ci/yaml/#script
【讨论】:
另一个不使用脚本的简单解决方案是使用 gitlab 环境变量CI_JOB_ID。
它不是随机数,但它是唯一的。
variables:
MERGE_ID: $CI_JOB_ID
【讨论】: