无法将变量通过gitlab桥传递到另一个管道

时间:2019-12-30 17:07:38

标签: variables gitlab-ci pipeline multi-project

这是我简单的Yaml文件

image: my/docker/image

stages:
    - print
    - testvarbridge

variables:
    INCOMMING_VAR: $ENV_VAR

print_these:
    stage: print
    script:
        - echo $INCOMMING_VAR
        - export $INCOMMING_VAR

testvarbridge:
    stage: testvarbridge
    variables:
        TEST_VAR: $INCOMMING_VAR
    trigger: 
        project: my-project/pipeline-two
        branch: ci-cd

$ENV_VAR是项目中用于测试的变量...它只是说"this_is_the_variable"

当我触发pipleine时..打印台正确打印:

echo $INCOMMING_VAR
this_is_the_variable

但是当第二个管道被触发时,它只是被设置为对传入的变量执行简单的echo命令。它回显如下:

echo TEST_VAR
$ENV_VAR

如您所见,当testvarbridge阶段设置变量TEST_VAR,时,它首先将$ENV_VAR变量作为文字字符串。它不会求值并获取与该变量关联的值。我想念什么吗?

1 个答案:

答案 0 :(得分:0)

这是3年前在gitlab-org/gitlab-runner issue 1809中的报道:“在其他变量中使用变量”。

  

一种解决方法是在#!/bin/bash service ssh start /usr/bin/node /myApp/app.js 中而不是before_script中设置var。
  因此,将问题中给出的示例编写为:

variables