外鄉人日常
GitLab CI/CD
平常 CI 在用的變數不見了

平常 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)