[英]Gitlab azure cli multiple lines parameters
我正在尝试在 Gitlab 中创建一个 ci 管道以创建一个新的存储帐户。 由于此资源有很多可选参数,因此将它们全部放在一行中会使它变得很长,所以我想将其分解。 在我的本地 bash 实例中运行它可以正常工作,但在 gitlab 上却不行。如何在 gitlab 中将命令拆分为多行? 这是我的 CI 的样子:
image: mcr.microsoft.com/azure-cli:2.9.1
stages:
- preparation
create_storage:
stage: preparation
script:
# Create storage account if not exists:
- storageAccountAvailable=$(az storage account check-name --name myStorage --query "nameAvailable")
- >
if [[ $storageAccountAvailable = "true" ]]; then
az group create --location westeurope --name myStorageRG
az storage account create \
--name myStorage \
--resource-group myStorageRG \
--sku Standard_LRS \
--min-tls-version TLS1_2 \
--https-only true \
--access-tier Hot \
--default-action Deny \
--public-network-access Disabled
az storage account network-rule add --account-name myStorage --ip-address 1.1.1.1
fi
allow_failure: false
如果我像上面那样使用反斜杠,它会在最后一行--public.network-access Disabled
上失败,表示它无法识别该参数。 如果我完全删除反斜杠,它会在开始时失败并抱怨我缺少资源组。
将长命令拆分为多行以查看更好的可读性。 所以你可以使用文字|
并折叠>
()。 参考YAML multiline block scalar indicators 。
根据我们了解到的Gitlab Doc ,
如果多个命令组合成一个命令字符串,则仅报告最后一个命令的失败或成功。 由于错误,忽略早期命令的失败。 要解决此问题,请将每个命令作为单独的
script
项运行,或将exit 1
命令添加到每个命令字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.