実現したいこと
CircleCI
のjob
内で正規表現を用いて正しく条件分岐させたい
以下のコードいうと、『release
』を出力させたい
問題の箇所
${CIRCLE_TAG}
に反応して以下の『build
』ジョブ内で条件分岐をしたいが、正しく動作しない- おそらく
"${CIRCLE_TAG}" == "/^release-v.*/"
の正規表現の書き方がおかしい為に動いていない
【config.yml】
config.yml
1jobs: 2 build: 3 docker: 4 - image: circleci/node:14.15.1 5 steps: 6 - run: 7 name: Build 8 command: | 9 cd webapp/ 10 if [ "${CIRCLE_TAG}" == "/^release-v.*/" ]; then 11 echo "release" 12 else 13 echo "normal" 14 fi
試したこと
①CircleCIデフォルト環境変数の${CIRCLE_TAG}
が渡ってきているか確認
以下のようにecho
を使って${CIRCLE_TAG}
を確認した所、値がしっかり渡ってきていました。
※タグをつけてgit push
した場合
config.yml
1 command: | 2 cd webapp/ 3 if [ "${CIRCLE_TAG}" == "/^release-v.*/" ]; then 4 echo "release" 5 echo ${CIRCLE_TAG} ←環境変数出力 6 else 7 echo "normal" 8 echo ${CIRCLE_TAG} ←環境変数出力 9 fi
なおCIRCLE_TAG
等の環境変数については以下を参照しました。
https://circleci.com/docs/ja/2.0/env-vars/
②if [ "${CIRCLE_TAG}" == "/^release-v.*/" ]; then
部分の問題箇所特定
以下のように条件分岐を単純化した所、タグ付きでpushした際release
が出力されました。
このことから条件分岐自体が間違えているのではなく、== "/^release-v.*/"
の書き方に問題があることがわかりました。
config.yml
1 command: | 2 cd webapp/ 3 if [ "${CIRCLE_TAG}" ]; then ←条件分岐を単純化 4 echo "release" 5 echo ${CIRCLE_TAG} 6 else 7 echo "normal" 8 echo ${CIRCLE_TAG} 9 fi
ご教示いただきたいこと
CircleCI
のconfig.yml
のjob
内での正規表現の正しい書き方をご教示いただけませんでしょうか。
大変お手数をおかけし恐縮ですが、何卒宜しくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。