Gitlab CI 在同一 CI 文件中定义了空变量

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

我正在 gitlab.com 上使用默认共享运行器运行这个最小的

.gitlab-ci.yml
脚本:

variables:
  VAR: Value

job:
  only:
    - main

  run:
  - name: test
    script: echo VAR=$VAR

这是输出

steps:
    - name: test
      script: echo VAR=$VAR
VAR=

这到底是怎么回事?我如何实际获取变量的值?这似乎与有关变量的文档直接矛盾。

请注意,设置

CI_DEBUG_TRACE: true
显示
CI_RUNNER_VERSION=17.4.0~pre.110.g27400594

++ export VAR=Value
++ VAR=Value

所以这似乎是脚本无法访问/继承环境而不是被忽略的变量。 运行

script: env
证实了这一点:

steps:
    - name: test
      script: env
PWD=/builds
SHLVL=0
PATH=/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env

我已经寻找过这个问题,但我发现的所有潜在的欺骗都是遗漏的:这与在environment

部分
中使用空变量,或受保护的变量,或从加载变量不同
source

gitlab gitlab-ci gitlab-ci-runner
1个回答
0
投票

我认为这里的问题不在于变量,而在于错误的语法。我刚刚测试了它,变量按预期工作:

variables:
  VAR: Value

job:
  only:
    - main
  script:
    - echo VAR=$VAR

在输出中我看到:

Executing "step_script" stage of the job script
$ echo VAR=$VAR
VAR=Value
Cleaning up project directory and file based variables
Job succeeded
© www.soinside.com 2019 - 2024. All rights reserved.