簡體   English   中英

如何在 windows 上使用 gitlab-ci-multi-runner 訪問 gitlab-ci.yml 中的變量

[英]How to access variables in gitlab-ci.yml using gitlab-ci-multi-runner on windows

我不知道如何訪問由gitlab-ci.yml -file 提供的構建腳本中的變量。

我嘗試以兩種方式聲明變量:

  1. GitLab CI 的 Web 界面中的私有變量
  2. config.toml中的變量覆蓋/附加

我嘗試在我gitlab-ci.yml -files 命令中訪問它們,如下所示:

msbuild ci.msbuild [...] /p:Configuration=Release;NuGetOutputDir="$PACKAGE_SOURCE"

其中$PACKAGE_SOURCE是所需的變量( PACKAGE_SOURCE ),但它不起作用(它似乎沒有被替換)。 手動執行相同的命令就像預期的那樣工作(用它的內容替換變量名)

是否需要一些我不知道的其他語法?

我努力了:

$PACKAGE_SOURCE
$(PACKAGE_SOURCE)
${PACKAGE_SOURCE}

PS:驗證跑步者不會引起任何問題,如果這很重要的話。

我認為你正在為你的跑步者使用Windows? 我自己也有同樣的問題,甚至無法讓以下工作:

script:
  - echo $MySecret

但是,我正在閱讀關於變量的這個Gitlab CI文檔,並在它說出來時發現了問題

變量在構建環境中設置為環境變量,並且可以使用用於訪問此類變量的常規方法訪問

當然,大多數給出的例子都是針對bash的。 對於Windows,它使用%var%。 所以我把它改成了以下,這對我有用。 (通過觀察構建輸出確認。)

script:
  - echo %MySecret%

一個警告我認為這可能也會受到你在設置跑步者時選擇的外殼的影響,盡管我沒有嘗試過。

除了上面標記為正確的答案中所說的內容外,您還應該檢查 gitlab 設置中的 CI 變量是否設置為“受保護”。 如果是這樣,您可能無法在不受保護的分支中使用它們。

“您可以保護項目、組或實例 CI/CD 變量,使其僅傳遞到在受保護分支或受保護標簽上運行的管道。” -> 檢查它https://docs.gitlab.com/ee/ci/variables/index.html#protect-a-cicd-variable

請注意..在某些情況下,某些變量 Gitlab CI CD 報價並不總是可用..

就我而言,我想使用${CI_COMMIT_BRANCH}但如果您閱讀了文檔

https://docs.gitlab.com/ee/ci/variables/predefined_variables.html

提交分支名稱。 在分支管道中可用,包括默認分支的管道。 在合並請求管道或標簽管道中不可用。

暫無
暫無

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

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