平常 CI 在用的變數不見了
問題
有一天想要部署上 production 的時候發現:
CI 跑完了,可是推上 Code Deploy 的時候,他卻幫我部署到測試機
解法
把參數 echo 出來發現是 case-in 的判斷不符合預期,其中 $CI_BUILD_REF_NAME
的值不見了,echo $CI_BUILD_REF_NAME
也沒有東西,用 - export
之後才發現 $CI_BUILD_REF_NAME
不見了,取而代之的是 $CI_COMMIT_REF_NAME
,把 $CI_BUILD_REF_NAME
都改成 $CI_COMMIT_REF_NAME
之後,熟悉的 CI 又順暢地跑了起來。
.gitlab-ci.yml
- - case $CI_BUILD_REF_NAME in
+ - case $CI_COMMIT_REF_NAME in
原因是 gitlab 在升級 9.0 的時候,重新命名過變數名稱,舊的變數暫時還可以用,只是之後有一天
會壞掉...
參考資料
gitlab 9.0 (opens in a new tab)
List all variables (opens in a new tab)
Backend: Remove deprecated predefined CI_BUILD_* variables (opens in a new tab)