簡體   English   中英

GitLab CI/CD - 如何在命令中使用變量?

[英]GitLab CI/CD - how to use variable in command?

我寫了以下管道:

image: maven:3-openjdk-11

variables:
    TARGET_LOCATION: "/tmp/uploads/"

stages:
    - deploy

deploy-job:
    stage: deploy
    before_script:
    - export MAVEN_ARTIFACT_VERSION=$(mvn --non-recursive help:evaluate -Dexpression=project.version | grep -v '\[.*'| tail -1)
    - export MAVEN_ARTIFACT=app-${MAVEN_ARTIFACT_VERSION:+$MAVEN_ARTIFACT_VERSION.jar} 
    script:
    - eval $(ssh-agent -s)
    (SSH STUFF HERE...)
    - scp -o HostKeyAlgorithms=ssh-rsa -p /builds/xxxxx/app/target/$MAVEN_ARTIFACT user@host:${TARGET_LOCATION}

我希望 scp 命令中的 $MAVEN_ARTIFACT 更改為app-BETA-0.1.jar和 TARGET_NAME 更改它的值,但它沒有解析,我在兩個地方都有變量名。 我也嘗試過使用括號,但我無法實現我想要的。 有沒有辦法將腳本執行期間生成的變量作為參數傳遞給在同一腳本部分中執行的其他程序?

以下是管道執行的一段日志:

$ scp -o HostKeyAlgorithms=ssh-rsa -p /builds/xxxxx/app/target/$MAVEN_ARTIFACT user@host:${TARGET_LOCATION}

您正確使用了這些,並且它正在工作。

GitLab 管道日志完全按照您在腳本中編寫的方式顯示命令。 它不會用它們的值替換變量。 如果您需要驗證該值或確認它已設置,請使用標准調試技術,例如使用echo $MAVIN_ARTIFACT之類的打印值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM