Gitlab 的 CI/CD 中的动态变量

问题描述 投票:0回答:1

我的 Laravel 项目有 gitlab runner。我想部署在一个目录中,它的名称将由日期和时间组成,并加上“_”来表示我想要运行的内容

echo `date +"%d_%m_%Y_%H_%M"`.

我应该在变量值中放入什么?

我现在有:

variables:
  SSH_PRIVATE_KEY: $SSH_PRIVATE_KEY
  CURRENT_ID: echo `date +"%d_%m_%Y_%H_%M"`

但它只输出这个文本。

gitlab continuous-integration
1个回答
0
投票

这取决于您想使用此变量做什么。

  • 如果这个变量只在这个作业中使用,那么你可以在使用之前在
    before_script
    script
    中定义它:
job_name:
  stage: stage_name
  before_script:
    - |
      # Export and use a variable
      export CURRENT_ID="$(date +"%d_%m_%Y_%H_%M")"
      echo "${CURRENT_ID}"
  • 如果此变量必须是动态的,但您同意根据文档将其传递到下一个作业:
job_A:
  stage: stage_A
  script:
    - echo "CURRENT_ID=$(date +"%d_%m_%Y_%H_%M")" >> build.env
  artifacts:
    reports:
      dotenv: build.env

job_B:
  stage: stage_B
  script:
    - echo "${CURRENT_ID}" # output of 'date' command
  • 如果上述解决方案都不起作用,那么您可以按照以下文档生成由在管道期间生成的 yaml 定义的子管道:触发动态子管道
© www.soinside.com 2019 - 2024. All rights reserved.