【问题标题】:Python not seeing environment variables on GitHub Actions [closed]Python在GitHub Actions上看不到环境变量[关闭]
【发布时间】:2021-03-30 13:57:54
【问题描述】:

我有一些连接到测试 Postgres 数据库的 pytest 测试。这些在当地运作良好。但是,在 GitHub 操作上,没有 Postgres DB,因此我必须禁用具有这些测试的整个模块。

根据the docsCI Always set to true.,所以我要做的就是检查 CI env-var,如果存在并设置了测试模块,则禁用它:

if os.getenv('CI'):
    pytest.skip("No PostgreSQL on GH Actions CI/CD", allow_module_level=True)

没用。

我尝试手动设置它,通过env: 手动设置其他环境变量,但它们都对 Python 不可见。通过否定上述测试 not os.getenv('CI') 在本地禁用模块按预期工作。

可能是什么问题?

【问题讨论】:

    标签: python pytest github-actions tox


    【解决方案1】:

    知道了。我正在使用tox 来运行测试等。事实证明,tox 不会复制父环境,除非它通过 passenv 指令被告知。这是清除它的SO answer

    【讨论】:

      【解决方案2】:

      您没有向我们展示任何代码,但如果我使用以下 .github/workflows/environment.yml 设置存储库:

      ---
      name: "Environment test"
      on:
        push:
        workflow_dispatch:
      
      jobs:
        show_environment:
          name: "Show environment variables"
          runs-on: ubuntu-latest
      
          steps:
            - name: "Show environmetn variables"
              run: |
                env
      
        python_test:
          name: "Reproduce behavior from https://stackoverflow.com/q/65382013/147356"
          runs-on: ubuntu-latest
      
          steps:
            - name: "Checkout repository"
              uses: actions/checkout@v2
      
            - name: "Set up python"
              uses: actions/setup-python@v2
              with:
                python-version: 3.8
      
            - name: "Run python script"
              run: |
                python actiontest.py
      

      并将此actiontest.py 包含在存储库中:

      import os
      
      if os.getenv('CI'):
          print('Looks like GitHub!')
      else:
          print('Maybe running locally?')
      

      这一切似乎都按记录工作。 show environment 表明 CI 变量按预期定义,actiontest.py script 成功检测到该变量。

      如果您看到不同的行为,请在您的问题中包含一个完整的可重现示例,我们很乐意帮助您弄清楚发生了什么。

      【讨论】:

      • @larsks 谢谢。您的回答给了我一个想法,让我找到了下面的解决方案。
      猜你喜欢
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 2022-10-23
      • 2019-12-14
      • 2015-04-05
      • 2022-01-28
      • 2020-04-20
      相关资源
      最近更新 更多