首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在github复合操作步骤中动态设置环境变量?

如何在github复合操作步骤中动态设置环境变量?
EN

Stack Overflow用户
提问于 2021-12-15 22:13:14
回答 1查看 9.4K关注 0票数 3

我确实需要它作为一个环境变量,这是专门为复合动作编写的。

在复合操作中,我尝试了许多不同的设置环境变量的方法。我找到的唯一方法是在步骤本身中使用env

代码语言:javascript
运行
复制
runs:
  using: "composite"
  steps:
    - name: "A step"
      env:
        BRANCH_REF: "${{ github.ref }}"
      run: echo "The branch is $BRANCH_REF"
      shell: bash

不幸的是,我需要动态地设置这个变量。在常规行动中,我会做这样的事情:

代码语言:javascript
运行
复制
    env:
      FOO: "${{ secrets.FOO }}"
    #...
    - run: echo "FOO=${{ github.event.inputs.foo }}" >> $GITHUB_ENV
      if: ${{ github.event.inputs.foo != '' }}

因为我做不到,所以我尝试了很多其他的方法,这些方法都是行不通的。这是我的最新尝试,但也不起作用:

代码语言:javascript
运行
复制
    - name: "A step"
      run: |
        if ${{ github.event.inputs.foo != '' }}
        then
          echo "Set from manual input: ${{ github.event.inputs.foo }}"
          echo "FOO=${{ github.event.inputs.foo }}" >> $GITHUB_ENV
        else
          echo "Use FOO workflow secret input: ${{ inputs.FOO }}"
          echo "FOO=${{ inputs.FOO }}" >> $GITHUB_ENV
        fi
        echo "foo is $FOO"
      shell: bash

我在GitHub控制台中获得的输出是:

代码语言:javascript
运行
复制
Run if true
  if true
  then
    echo "Set from manual input: My foo is a good foo"
    echo "FOO=My foo is a good foo" >> $GITHUB_ENV
  else
    echo "Use FOO secret: ***"
    echo "FOO=***" >> $GITHUB_ENV
  fi
  echo "foo is $FOO"
  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
Set from manual input: My foo is a good foo

foo is 

在最后一个输出行中,我得到了foo is,因此环境变量$FOO似乎没有被设置。

如何在复合操作中动态设置环境变量?

EN

Stack Overflow用户

回答已采纳

发布于 2021-12-17 22:14:50

您遇到的问题是,在echo "FOO=${{ github.event.inputs.foo }}" >> $GITHUB_ENV操作脚本步骤中调用GitHub并不会在当前步骤的脚本中设置该变量,如果您展开下一步的env头,则应该会看到动态设置的环境变量输入到该步骤中。

我通常会做这样的事情:

代码语言:javascript
运行
复制
FOO="${{ github.event.inputs.foo }}"
echo "FOO=${FOO}" >> $GITHUB_ENV

因此,您在当前步骤的脚本中设置了一个名为FOO的变量(使其在同一步骤的后续行中可用),并导出它以供以后的步骤使用

票数 10
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70370971

复制
相关文章

相似问题

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