【问题标题】:How to generate random number in GitLab YAML file如何在 GitLab YAML 文件中生成随机数
【发布时间】:2020-11-01 00:50:09
【问题描述】:

我的 Gitlab 分支中有 YAML 文件。根据要求,我想在 YAML 文件中创建一个随机的 mergeID。

【问题讨论】:

  • 你能给出你测试过的代码吗?
  • YAML 不是编程语言,因此无法生成随机数。 gitlab-ci-runner 标签没有意​​义,因为它是用 TOML 配置的,而不是 YAML。

标签: gitlab yaml gitlab-ci


【解决方案1】:

如果您指的是 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

【讨论】:

  • 非常感谢,看来解决了我的要求!!!
  • 这里我还有一个要求,即:生成七位随机数。所以我修改了如下代码 - let SevenDigitMR_ID=RANDOM -MINIMUM 999999 -MAXIMUM 9999999 - echo $SevenDigitMR_ID 但它仍然只生成相同的五位随机数。默认情况下,$RANDOM 只生成最多 5 位的数字。
  • 在 stackoverflow 中搜索答案。如果找不到,请发布另一个问题;)
【解决方案2】:

另一个不使用脚本的简单解决方案是使用 gitlab 环境变量CI_JOB_ID。 它不是随机数,但它是唯一的。

variables:
  MERGE_ID: $CI_JOB_ID

【讨论】:

    猜你喜欢
    • 2018-07-28
    • 2018-10-08
    • 2010-11-14
    • 2016-12-11
    • 2012-11-06
    • 2011-09-15
    • 2012-07-25
    • 2014-07-23
    • 2019-01-14
    相关资源
    最近更新 更多