gpt4 book ai didi

Azure管道 secret 变量不适用于PR触发器

转载 作者:行者123 更新时间:2023-12-03 02:49:46 25 4
gpt4 key购买 nike

我有一个 azure 的管道,其中有一个 secret 变量,可以在拉取请求时触发。触发时, secret 变量不可用于管道。

secret 变量在由分支提交触发时起作用。

管道

pr:
branches:
include:
- '*'
trigger:
branches:
exclude:
- '*'

jobs:
- job:
pool:
vmImage: 'ubuntu-latest'
timeoutInMinutes: 360
displayName: 'Running test'
steps:
- bash: |
if [ -z "$(system.pullRequest.sourceRepositoryUri)" ]
then
python3 runTest.py \
--config "blessedImageConfig-temp.json" \
--code $(SecretCode)
else
python3 runTest.py \
--config "blessedImageConfig-temp.json" \
--pullRepo $(system.pullRequest.sourceRepositoryUri) \
--pullId $(system.pullRequest.pullRequestNumber) \
--code $(SecretCode)
fi

Secret variable added via the webUI

输出和错误

Generating script.
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/95f6ae7c-d2e1-4ebd-891c-2d998eb4b1d9.sh
/home/vsts/work/_temp/95f6ae7c-d2e1-4ebd-891c-2d998eb4b1d9.sh: line 7: SecretCode: command not found
usage: runTest.py [-h] [--config CONFIG] [--code CODE] [--pullId PULLID]
[--pullRepo PULLREPO]
runTest.py: error: argument --code: expected one argument
##[error]Bash exited with code '2'.

最佳答案

SecretCode: command not found

此错误是由于它是一个 secret 变量,并且以错误的方式在命令行中传递的。

您可能对此感到困惑。但事实上,微软曾用 doc 对此发出过警告。 :永远不要在命令行上传递 secret 。这是设计使然。

我在我的 docker 构建中遇到过类似的问题。我通过将 Secrets 变量值映射到环境变量来解决这个问题,这在 Variable 的文档中也提到过.

对于您的Bash任务,还有关于 secret 变量的解决方案:使用环境变量输入将 secret 变量传递给此脚本'并设置targetType == Inline是必要的 .

因此,您可以将以下脚本添加到您的 Bash 任务脚本中,以将 secret 变量映射到环境变量中:

inputs:
targetType: 'inline'
- script:
echo $code
env:
code: $(SecretCode)

关于Azure管道 secret 变量不适用于PR触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56746668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com