【问题标题】:User defined variables in Gitlab CI environment URL emptyGitlab CI 环境 URL 中的用户定义变量为空
【发布时间】:2016-11-09 08:05:42
【问题描述】:

我有以下(简体)gitlab-ci.yml

variables:
  APP_NAME: "hello-gitlab-ci"
deploy:
  stage: deploy
  script: some-script
environment:
  name: staging
  url: http://hostname/$APP_NAME/$CI_BUILD_REF_NAME

Gitlab UI 中生成的 url 例如:http://hostname//master$APP_NAME 似乎解析为空字符串,而 runner 变量 $CI_BUILD_REF_NAME 正确解析。

GitLab 社区版 8.13.0,gitlab-runner 1.7.1。 我错过了什么?

【问题讨论】:

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


    【解决方案1】:

    GitLab doc 开始,YAML 定义的变量受 GitLab Runner 0.5.0 或更高版本和 GitLab CI 7.14 或更高版本的支持,因此首先检查您的 GitLab 组件版本。

    尝试同时启用调试,以获得更多关于此变量未解析原因的线索:

    job1:
      variables:
        CI_DEBUG_TRACE: "true"
    

    【讨论】:

    • GitLab 社区版 8.13.0,gitlab-runner 1.7.1
    • @user449326 好的。你在什么操作系统上运行? CI_DEBUG_TRACE 是否产生任何有趣的细节?
    • 调试输出没有出现environmenturl,除了WARNING: environment is not supported by selected executor and shell,但快速研究表明这似乎是一个常见的警告,可以忽略。环境变量出现的位置已正确解析,如++ export APP_NAME=hello-gitlab-ci ++ APP_NAME=hello-gitlab-ci
    【解决方案2】:

    这很可能是 GitLab Runner 中的一个错误,其中 env 变量是在环境之后但在脚本之前定义的。你有没有考虑打开一个问题? https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues

    【讨论】:

      【解决方案3】:

      GitLab 变量没有在 .gitlab-ci.yml 的环境部分中专门翻译。有一些关于此的问题(以及缺乏有关此的文档),例如https://gitlab.com/gitlab-org/gitlab-ce/issues/27921

      【讨论】:

        猜你喜欢
        • 2021-03-20
        • 1970-01-01
        • 1970-01-01
        • 2022-12-31
        • 1970-01-01
        • 2020-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多