Gitlab Ci 文件变量内容而不是路径
Gitlab Ci File Variable content instead of path
我正在尝试设置用于构建和测试我们项目的管道。
A 已设置在组级别归档变量以在管道内使用
Variables for mvn settings and certificate
问题是,mvn_settings 文件被解析为文本而不是路径。
所以我的构建失败了。
$ mvn $MAVEN_CLI_OPTS compile
Unable to parse command line options: Unrecognized option: --><!--
如果我 "echo" $mvn_settings
我得到了路径。
此外,当我对管道工作的路径进行硬编码时
我的管道:
variables:
...
MAVEN_CLI_OPTS: "--batch-mode -s '$mvn_settings'"
...
before_script:
- keytool -importcert -file "$db_trust" -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -trustcacerts -noprompt
generate:
stage: generate
script:
- mvn $MAVEN_CLI_OPTS compile
artifacts:
paths:
- target/
expire_in: 3 days
...
有什么方法可以确定管道何时使用内容以及何时使用路径?
当您在 .gitlab-ci.yml 文件的变量部分中使用文件变量时,该变量会扩展为包含内容而不是文件名。这是 GitLab 中的一个错误,他们可能会在即将发布的版本中修复。这是 GitLab 上的问题:
https://gitlab.com/gitlab-org/gitlab/issues/29407
他们用 P2
标记了它,这意味着他们将尝试在标记后的 60 天内修复它。不过他们好像错过了这个月的截止日期。
与此同时,您可能需要在需要时手动使用变量。如果你有一个巨大的 .gitlab-ci.yml 文件,你可以使用 yaml anchors or the extends keyword 来重用你的脚本的一部分,而不必依赖于变量扩展。
我正在尝试设置用于构建和测试我们项目的管道。 A 已设置在组级别归档变量以在管道内使用 Variables for mvn settings and certificate
问题是,mvn_settings 文件被解析为文本而不是路径。 所以我的构建失败了。
$ mvn $MAVEN_CLI_OPTS compile
Unable to parse command line options: Unrecognized option: --><!--
如果我 "echo" $mvn_settings
我得到了路径。
此外,当我对管道工作的路径进行硬编码时
我的管道:
variables:
...
MAVEN_CLI_OPTS: "--batch-mode -s '$mvn_settings'"
...
before_script:
- keytool -importcert -file "$db_trust" -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -trustcacerts -noprompt
generate:
stage: generate
script:
- mvn $MAVEN_CLI_OPTS compile
artifacts:
paths:
- target/
expire_in: 3 days
...
有什么方法可以确定管道何时使用内容以及何时使用路径?
当您在 .gitlab-ci.yml 文件的变量部分中使用文件变量时,该变量会扩展为包含内容而不是文件名。这是 GitLab 中的一个错误,他们可能会在即将发布的版本中修复。这是 GitLab 上的问题:
https://gitlab.com/gitlab-org/gitlab/issues/29407
他们用 P2
标记了它,这意味着他们将尝试在标记后的 60 天内修复它。不过他们好像错过了这个月的截止日期。
与此同时,您可能需要在需要时手动使用变量。如果你有一个巨大的 .gitlab-ci.yml 文件,你可以使用 yaml anchors or the extends keyword 来重用你的脚本的一部分,而不必依赖于变量扩展。