首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure管道环境变量失败

Azure管道环境变量失败
EN

Stack Overflow用户
提问于 2019-04-11 09:29:13
回答 2查看 734关注 0票数 2

我有以下yaml管道构建文件:

代码语言:javascript
复制
pr:
  branches:
    include:
    - master

jobs:
- job: 'Test'
  pool:
    vmImage: 'Ubuntu-16.04'
  strategy:
    matrix:
      Python36:
        python.version: '3.6'
    maxParallel: 4

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '$(python.version)'
      architecture: 'x64'
    env:
      POSTGRES: $(POSTGRES)

  - script: python -m pip install --upgrade pip && pip install -r requirements.txt
    displayName: 'Install dependencies'

  - script: |
      pip install pytest
      pytest tests -s --doctest-modules --junitxml=junit/test-results.xml
    displayName: 'pytest'

我在管道设置中将变量POSTGRES设置为秘密变量。在python代码中,所有环境变量都是通过调用

代码语言:javascript
复制
if not os.getenv(var):
    raise ValueError(f'Environment variable \'{var}\' is not set')

当执行构建时,它将为POSTGRES变量抛出上述错误。环境变量是否设置不正确?

EN

回答 2

Stack Overflow用户

发布于 2020-01-08 22:47:59

我不知道你是否还需要这个但是..。如果你看一下文档here,它会说:

与普通变量不同,它们不会自动解密为脚本的环境变量。不过,您可以显式地将它们映射到中。

所以看起来你做得很对。也许可以尝试为映射的变量使用不同的名称。可能是初始加密变量的名称混淆了映射(因为它已经是一个变量,所以不会重新映射它)。

票数 0
EN

Stack Overflow用户

发布于 2021-07-29 02:17:49

要使环境变量在Python脚本中可用,您需要在使用它的步骤中定义它:

代码语言:javascript
复制
  - script: |
      pip install pytest
      pytest tests -s --doctest-modules --junitxml=junit/test-results.xml
    displayName: 'pytest'
    env:
      POSTGRES: $(POSTGRES)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55623419

复制
相关文章

相似问题

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