gpt4 book ai didi

azure-devops - 在脚本中设置任务组变量不会更改其值

转载 作者:行者123 更新时间:2023-12-03 21:18:48 25 4
gpt4 key购买 nike

如何确保在非脚本任务中更新和访问任务组变量?

在一个任务组中,设置一个 CONTAINER_PORT 后脚本中的变量,它在以后的脚本任务中可用,但是当通过 $(CONTAINER_PORT) 访问它时,则返回原始任务组变量值。

例如使用任务组创建构建后,我必须设置 CONTAINER_PORT81因为默认情况下所有任务组变量都是必需的。

任务 1 - 配置脚本 (Bash)

containerPort=8080
if [ $(framework) == 'dotnet' ]; then containerPort=80; fi;
echo "##vso[task.setvariable variable=CONTAINER_PORT]$containerPort";

任务 2 - 生成 Dockerfile(文件创建器)
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE $(CONTAINER_PORT)
...

任务 2(输出)- 我期望 EXPOSE 8080这里
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 81
...

任务 3 - 提交脚本 (Bash)
echo "Port should be set to: $CONTAINER_PORT"

任务 3(输出)
Port should be set to: 8080

tldr;正确 $CONTAINER_PORT value 可以在 future 的脚本任务中访问,但不能在 File Creator 中访问需要文件内容的任务。

文件创建器示例:
File Creator

最佳答案

您的命令字符串缺少 ;而且代理很挑剔:

echo "##vso[task.setvariable variable=CONTAINER_PORT]$containerPort";
应该:
echo "##vso[task.setvariable variable=CONTAINER_PORT;]$containerPort";
^

关于azure-devops - 在脚本中设置任务组变量不会更改其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52844816/

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