簡體   English   中英

變量內變量 gitlab ci

[英]Variable inside variable gitlab ci

有沒有辦法在 gitlab ci 的自定義變量中使用預定義變量,如下所示:

before_script:
  - cat "${$CI_COMMIT_REF_NAME}" >> .env

$CI_COMMIT_REF_NAME中提取分支名稱並將其用作自定義變量的名稱

更新:

在此處輸入圖像描述

查看GitLab 14.3 (2021 年 9 月)

在其他變量中使用變量

CI/CD 管道執行場景可以依賴於擴展管道中聲明的變量或在另一個變量聲明中使用 GitLab 預定義變量。

在 14.3 中,我們在 GitLab SaaS 上啟用了“其他變量中的變量”功能。

現在您可以定義一個變量並在同一管道內的另一個變量定義中使用它

您還可以在另一個變量聲明中使用 GitLab 預定義變量。

此功能簡化了您的管道定義並消除了由重復可變數據引起的管道管理問題。

注意 - 對於 GitLab 自管理用戶,該功能默認禁用。
要使用此功能,您的 GitLab 管理員將需要啟用功能標志

演示-視頻

演示

請參閱文檔問題


dba評論中詢問:

這是否包括或排除使用全局定義的變量?

dba自己的答案:

全局變量可以重復使用,但它們需要具有遞歸擴展的local_var: ${global_var}語法(獨立於 shell)。

很多選擇。

但是您可以將預定義的 var 傳遞給.env

image: busybox:latest

variables:
  MY_CUSTOM_VARIABLE: $CI_JOB_STAGE
  ANIMAL_TESTING: "cats"

before_script:
  - echo "Before script section"
  - echo $CI_JOB_STAGE
  - echo $MY_CUSTOM_VARIABLE
  - echo $MY_CUSTOM_VARIABLE >> .env
  - echo $CI_COMMIT_BRANCH >> .env
  - cat .env

示例管道 output

$ echo "Before script section"
Before script section
$ echo $CI_JOB_STAGE
build
$ echo $MY_CUSTOM_VARIABLE
build
$ echo $MY_CUSTOM_VARIABLE >> .env
$ echo $CI_COMMIT_BRANCH >> .env
$ cat .env
build
exper/ci-var-into-env
$ echo "Do your build here"
Do your build here

或者早點傳進去。

image: busybox:latest

variables:
  MY_CUSTOM_VARIABLE: "${CI_JOB_STAGE}"
  ANIMAL_TESTING: "cats"

before_script:
  - echo "Before script section"
  - echo $CI_JOB_STAGE
  - echo $MY_CUSTOM_VARIABLE
  - echo $MY_CUSTOM_VARIABLE >> .env
  - cat .env
   

示例: https://gitlab.com/codeangler/make-ci-var-custom-var-in-script/-/blob/master/.gitlab-ci.yml

檢查這是否與gitlab-org/gitlab-runner問題 1809匹配:

描述

  • .gitlab-ci.yml文件中,用戶可以定義一個變量並在同一個.gitlab-ci.yml文件中的另一個變量定義中使用它。
  • 用戶還可以在變量聲明中使用 GitLab 預定義變量。

例子

variables: variable_1: "foo" # here, variable_1 is assigned the value foo variable_2: "${variable_1}" # variable_2 is assigned the value variable_1. # The expectation is that the value in variable_2 = value set for variable_1

如果是,則應針對 GitLab 14.1(2021 年 7 月)完成/實施

暫無
暫無

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

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