質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

解決済

1回答

2190閲覧

【CircleCI】ジョブ内で正規表現を用いて正しく条件分岐させたい

im05ttbbh

総合スコア18

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2021/07/28 23:54

実現したいこと

CircleCIjob内で正規表現を用いて正しく条件分岐させたい
以下のコードいうと、『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

ご教示いただきたいこと

CircleCIconfig.ymljob内での正規表現の正しい書き方をご教示いただけませんでしょうか。
大変お手数をおかけし恐縮ですが、何卒宜しくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

以下のように記載を変えた所、うまく動作しました!

config.yml

1if [[ "${CIRCLE_TAG}" =~ ^release-v.* ]]; then

参考記事
https://www.karakaram.com/circleci-best-practice/

投稿2021/07/28 23:58

im05ttbbh

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問