[英]Gitlab CI CD variable are not getting injected while running gitlab pipeline
我在 gitlab-ci.yml 文件中運行以下代碼部分:
script:
- pip install --upgrade pip
- cd ./TestAutomation
- pip install -r ./requirements.txt
以下是鍵和值。 所以我必須將任何值作為變量 ENV 傳遞給管道:dev
我已經通過擴展在 GitLab CI CD 變量部分添加了所有上述三個變量。 只是添加了一個值和鍵
我還發現我們可以在 .yml 文件本身中添加變量,如下所示。 我不確定我們如何為一個鍵添加多個值
variables:
TEST:
value: "some value" # this would be the default value
description: "This variable makes cakes delicious"
當我運行管道時出現錯誤,看起來這些變量和值沒有正確注入。
更多細節:
我在運行管道時遇到了同樣的錯誤。 因此我懷疑當我通過管道運行時類別變量沒有正確注入
如果需要,我會在共享屏幕上顯示它
請找到我的 gitlab-ci.yml 文件的圖像片段 - [![在此處輸入圖像描述][1]][1]
我在運行管道時傳遞了以下參數 - [![在此處輸入圖像描述][2]][2]
我觀察到的是——與我作為參數或變量傳遞的鍵關聯的值,這些值沒有被注入或替換而不是鍵。 所以理想情況下 ${Category} 應該替換為 value smoke 等
當 Gitlab CI CD 變量沒有作為環境變量注入到您的管道中時,請按照以下步驟進行驗證。
檢查變量是否已定義。 您至少需要為您的用戶設置Maintainer
角色。 Go 到設置 --> CI/CD --> 變量。 您可以查看所有項目變量和組變量(繼承)。
接下來,檢查這些變量是否被定義為Protected
的變量。 如果它們被標記為受保護,那么它們僅暴露於受保護的分支或受保護的標簽。 如果您當前的分支不是protected branch
,我建議取消選中此項。 如果不是,您始終可以使當前分支成為受保護的分支。
接下來,檢查您的代碼是否正確訪問了環境變量。 根據您的腳本語言,只需像訪問常規環境變量一樣訪問即可。
您實際上不需要在.gitlab-ci.yaml
文件中定義這些變量。 (即使他們的文檔是這樣說的)
希望這可以幫助。
GitLab UI 中設置的變量不會傳遞給服務容器。 要設置它們,請將它們分配給 UI 中的變量,然后在 your.gitlab-ci.yml 中重新分配它們:
stages:
- Test
# Added this to your yml file
variables:
ENV: $ENV
BROWSER: $BROWSER
Category: $Category
ui_tests:
stage: Test
image:
name: joyzourky/python-chromedriver:3.8
entrypoint: [""]
tags:
- micro
only:
- develop
when: manual
script:
- pip install --upgrade pip
- cd ./src/Tests/UIAutomation
- pip install -r ./requirements.txt
- pytest -s -v --env=${ENV} --browser=${BROWSER} --alluredir=./reports ./tests -m ${Category}
artifacts:
when: always
path:
- ./src/Tests/UIAutomation/reports/
- ./src/Tests/UIAutomation/logs/
expire_in: 1 day
正如@Keet Sugathadasa 提到的,觸發 CI 的分支必須受到保護; 這是我的情況,所以我必須通過轉到Settings > Repository > Protected branch
來保護它,然后從那里保護分支
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.