【发布时间】:2022-09-29 19:42:32
【问题描述】:
我正在尝试传递在 GitLab 中注册新版本所需的 JSON 结构,但我不确定应该如何转义双引号。这是我的gitlab-ci.yml 的发布工作部分:
release:
stage: release
tags:
- windows
rules:
- if: $CI_COMMIT_TAG
variables:
ASSET_LINK_DETAILS: \"{\\\"name\\\":\\\"${PACKAGE_NAME}.zip\\\",\\\"url\\\":\\\"${PACKAGE_REGISTRY_URL}/${PACKAGE_NAME}.zip\\\"}\"
script:
- \'Write-Host \"Creating release...\"\'
- \'Start-Process -FilePath \"release-cli\" -ArgumentList \"create --name `\"Release $CI_COMMIT_TAG`\" --tag-name `\"$CI_COMMIT_TAG`\" --asset-link ${env:ASSET_LINK_DETAILS}\" -NoNewWindow -Wait\'
- \'Write-Host \"Finished creating release...\"\'
运行此作业会从 release-cli 返回错误:
Incorrect Usage: flag provided but not defined: -asset-link
将此 JSON 传递到 PowerShell 中的命令的正确方法是什么?
-
尝试用一些引号限定 JSON 字符串:
--asset-link ${env:ASSET_LINK_DETAILS}->--asset-link \'${env:ASSET_LINK_DETAILS}\' -
我尝试用像
`\"${env:ASSET_LINK_DETAILS}`\"这样的转义双引号将其包裹起来,但它给了我同样的错误。
标签: json powershell gitlab gitlab-ci gitlab-ci-runner