[英]Gitlab Ci File Variable content instead of path
我正在嘗試建立一個管道來構建和測試我們的項目。 A 已在組級別設置文件變量以在管道變量中使用 mvn 設置和證書
問題是,mvn_settings 文件被解析為文本而不是路徑。 所以我的構建失敗了。
$ mvn $MAVEN_CLI_OPTS compile
Unable to parse command line options: Unrecognized option: --><!--
如果我“回顯” $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 錨點或extends 關鍵字來重用部分腳本,而不必依賴於變量擴展。
假設您在 CI/CD 設置中將文件變量命名為ENV_FILE_DEV
,您可以將其作為一種解決方法:
variables:
ENV_FILE: $CI_PROJECT_DIR/../$CI_PROJECT_NAME.tmp/ENV_FILE_DEV
然后ENV_FILE
變量將作為完整路徑可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.