我有以下yaml管道构建文件:
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代码中,所有环境变量都是通过调用
if not os.getenv(var):
raise ValueError(f'Environment variable \'{var}\' is not set')当执行构建时,它将为POSTGRES变量抛出上述错误。环境变量是否设置不正确?
发布于 2020-01-08 22:47:59
我不知道你是否还需要这个但是..。如果你看一下文档here,它会说:
与普通变量不同,它们不会自动解密为脚本的环境变量。不过,您可以显式地将它们映射到中。
所以看起来你做得很对。也许可以尝试为映射的变量使用不同的名称。可能是初始加密变量的名称混淆了映射(因为它已经是一个变量,所以不会重新映射它)。
发布于 2021-07-29 02:17:49
要使环境变量在Python脚本中可用,您需要在使用它的步骤中定义它:
- script: |
pip install pytest
pytest tests -s --doctest-modules --junitxml=junit/test-results.xml
displayName: 'pytest'
env:
POSTGRES: $(POSTGRES)https://stackoverflow.com/questions/55623419
复制相似问题