scope - Gitlab CI $CI_ENVIRONMENT_SLUG 为空

标签 scope environment-variables gitlab-ci

我想用$CI_ENVIRONMENT_SLUG将我们的 Selenium 测试指向正确的动态环境,但变量为空。
在部署阶段,它有一个合适的值,我不明白为什么这个变量在每个阶段都不可用。 echo cmd 打印一个空行。

Tests:
  image: maven:3.5.0-jdk-8
  stage: Tests and static code checks
  variables:
    QA_PUBLISH_URL: http://$CI_ENVIRONMENT_SLUG-publish.test.com
  script:
      - echo $QA_PUBLISH_URL
      - echo $CI_ENVIRONMENT_SLUG    # empty
      - mvn clean -Dmaven.repo.local=../../.m2/repository -B -s ../../settings.xml -P testrunner install -DExecutionID="FF_LARGE_WINDOWS10" -DRunMode="desktopLocal" -DSeleniumServerURL="https://$QA_ZALENIUM_USER:$QA_ZALENIUM_PASS@zalenium.test.com/wd/hub" -Dcucumber.options="--tags @sanity" -DJenkinsEnv="test.com" -DSeleniumSauce="No" -DBaseUrl=$QA_PUBLISH_URL

最佳答案

CI_ENVIRONMENT_SLUG仅在设置了环境的审核作业中可用。

目前 (11.2) 无法将变量从一个作业移动到另一个作业,尽管您可以:

echo -e -n "$CI_ENVIRONMENT_SLUG" > ci_environment_slug.txt

在审查作业中并将文件添加到工件中:
artifacts:
  paths:
  - ci_environment_slug.txt

并在您的 Tests工作,使用
before_script:
- export CI_ENVIRONMENT_SLUG=$(cat ci_environment_slug.txt)

关于scope - Gitlab CI $CI_ENVIRONMENT_SLUG 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50056669/

相关文章:

Javascript - 迭代期间使用值而不是引用

scope - 我们的变量是动态的吗?

r - 将整个包裹传递给雪簇

python - 创建一个新的范围,如 javascript

reactjs - 使用 gitlab-ci 部署 React 应用程序的最佳方式?

java - Tomcat:如何在 Netbeans 中设置 Java 系统属性?

maven - 具有默认回退的 pom.xml 环境变量

linux - Shell 变量扩展 - 使用 env 调用实用程序时的间接寻址

kubernetes - GitLab Runner : Failed to register the runner. 您可能遇到网络问题

组下所有项目的Gitlab API