上次我們教到 needs 可以來指定哪個工作完成時,才會指向下一個工作,今天我們來教 CI/CD 之 variables 變數,在 Gitlab CI/CD 中也提供區域變數、公用變數和環境變數,提供的預設變數讓我們操作,我們會再這裡分成三期教各位。
CI/CD 變數命名先寫一個 variables,然後底下定義變數名稱,有如以下範例
variables:
name: "王小明"
age: 18
公用變數就用寫程式一樣,變數定義在最外面,可以在任何時候調用,有如以下範例
variables:
name: "王小明"
age: 18
run-unit-test:
script:
- echo "姓名 $name, 年齡 $age"
區域變數也是像寫程式這樣,把變數定義在工作裡面,而工作之間不能互相取得變數
run-unit-test:
variables:
name: "王小明"
age: 18
script:
- echo "姓名 $name, 年齡 $age"
接下來我們練習如何使用公用變數,有如以下範例,將變數先告至外面,由工作調用變數。
stages:
- testing
variables:
name: "王小明"
age: 18
run-unit-test:
stage: testing
script:
- echo "name $name, age $age"
可以看到有如下圖,變數成功印出來
接下來我們練習如何使用區域變數,有如以下範例,將變數先告至工作裡面,調用工作裏面變數。
stages:
- testing
run-unit-test:
stage: testing
variables:
name: "王小明"
age: 18
script:
- echo "name $name, age $age"
可以看到有如下圖,變數如期印出來
接下來我們來看我們定義兩個工作,其中看 "test-build" 這個工作,是否可以取得 "run-unit-test" 工作裡面的變數
stages:
- testing
run-unit-test:
stage: testing
variables:
name: "王小明"
age: 18
script:
- echo "name $name, age $age"
test-build:
stage: testing
script:
- echo "name $name, age $age"
有如下圖,雖然 CI/CD 並沒有爆出錯誤,但是我們看工作裡面出什麼事。
點進去 "run-unit-test" 工作裡面,可以看到變數有如預期印出
點進去 "test-build" 工作裡面,可以看到 "test-build" 無法取得 "run-unit-test" 工作裡面的變數。