【发布时间】:2019-03-21 21:07:07
【问题描述】:
在 Azure DevOps 中创建这样的内联 bash 命令时:
checksum="$(cksum file.txt)"
我最终会将cksum file.txt 视为必需参数。无论出于何种原因,这种行为并不一致,所以有时我设置了可以与内联 Bash 脚本一起正常工作的构建管道,但不可避免地,我会遇到这个问题并且无法修复它。
我什至尝试将cksum file.txt 参数设置为cksum file.txt,但将空格替换为编码字符串:%20。它变成了cksum%20file.txt,这不是 bash 中的有效命令。
这是完整的脚本:
yarnCacheFilename="$(cksum yarn.lock).yarnCache.docker.tgz"
wget "https://example.azureedge.net/yarn-cache/$yarnCacheFilename"
if [ -f "$yarnCacheFilename" ]; then
mkdir node_modules
tar -xzvf "$yarnCacheFilename"
else
yarn install --production
fi
足够简单。这是我可以在任何bash 终端上运行的代码。遗憾的是,Azure DevOps 正在向任务组添加一个参数:
存在此参数的事实意味着 Azure DevOps 正在阻止我的 bash 文件正确执行并替换最关键的部分。
我该如何解决这个问题?
【问题讨论】:
标签: azure-devops azure-pipelines azure-pipelines-build-task azure-task-groups