首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从BuildKite命令步骤设置管道范围的环境变量?

从BuildKite命令步骤设置管道范围的环境变量?
EN

Stack Overflow用户
提问于 2022-04-19 00:13:48
回答 1查看 768关注 0票数 1

我有一个BuildKite管道,它有两个命令步骤和一个块步骤。除其他外,第一个命令步骤收集大量信息并将其放入环境变量中。然后,该块运行,并要求用户继续。假设已批准,则第二个命令将运行,但没有以前设置的环境变量(单独的步骤,可以是单独的代理,等等)。

最简单的可复制的:

代码语言:javascript
复制
    steps:
      - label: "Test setting variable"
        command: |
          export MY_VAR=SomeValue
      - wait: ~
      - label: "Test using variable"
        command: |
          echo MY_VAR=$$MY_VAR

有没有办法告诉BuildKite将导出的环境变量添加到管道范围的变量中?我有一个wait,所以第二步在第一步完成之前不会运行。

我意识到我可以使用buildkite-agent meta-data set/get。如果没有更好的办法我会这么做的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-07-01 01:10:52

您可以为整个管道创建一个全局env部分:

代码语言:javascript
复制
env:
  MY_VAR: SomeValue

steps:
  ...

这里设置的变量对所有步骤都可用。

不过,不确定您是否有要在此设置的值,听起来这些值只是在步骤中计算出来的。

作为另一种选择,您可以尝试将值导出到文件中,将文件存储为工件,然后按照所需的步骤还原它:

代码语言:javascript
复制
- label: "First step"
  commands:
    - echo export MY_VAR=SomeValue > shared_vars.sh
  artifact_paths:
    - shared_vars.sh

- label "Second step"
  commands:
    - buildkite-agent artifact download shared_vars.sh .
    - source shared_vars.sh
    - echo MY_VAR=$$MY_VAR

这是一个未经测试的伪代码,但我使用了类似的方法来修复Bitbucket管道中的相同问题,而且效果很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71918304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档