【问题标题】:How to read a env variable added in script execution from GitHub workflow如何从 GitHub 工作流程读取脚本执行中添加的环境变量
【发布时间】:2022-11-23 03:03:50
【问题描述】:

使用具有以下行的工作流执行脚本 (tmp.py):

os.environ["VERSION"] = "Version 1.1.1.2.2.3"
print(os.system('env')) #prints all env included above one

现在我在工作流程中需要这个变量:

- name: Run script
        run: python3 tmp.py

- name: print env var
  if: always()
  run: |
    echo ${{ env.VERSION  }} #Blank, expected the value "Version 1.1.1.2.2.3"

它打印空白。后来我浏览了 GitHub 文档,发现这种语法 {{ env.APP_VERSION }} 只有在 env 本身添加到工作流中时才能使用。

那么如何在工作流中使用这个 var os.environ["VERSION"] 值呢?

文档链接:https://docs.github.com/en/actions/learn-github-actions/environment-variables 我没试过工作.<job_id>.env因为它似乎与工作环境有关。

【问题讨论】:

    标签: python github github-actions


    【解决方案1】:

    要在一个步骤中保存环境变量(以在另一个步骤中使用它),您通常会使用以下语法:

    echo "foo=bar" >> $GITHUB_ENV
    

    在 Python 脚本中,这将以类似的方式完成。我个人使用以下语法直接将变量写入 env 文件:

    import os
    
    env_file = os.getenv('GITHUB_ENV')
    
    bar='bar'
    
    with open(env_file, "a") as myfile:
        myfile.write(f"foo={bar}")
    

    然后可以在后续步骤中使用${{ env.foo }} 访问该变量。

    请注意,此解决方案适用于使用 GITHUB_OUTPUT 而不是 GITHUB_ENV 的输出。

    【讨论】:

    • 我用过 python 一个,它有效。谢谢!!
    【解决方案2】:

    查看这篇文章: https://medium.com/@m97chahboun/how-to-use-any-programming-language-on-github-workflow-f5e389cfd886 您可以在 python 语言上应用相同的步骤

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 2022-10-23
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2016-12-23
      • 2022-01-19
      相关资源
      最近更新 更多