patorashのブログ

方向性はまだない

CircleCIでエラーコードを無視して処理する

昨日書いてたやつで、rake releaseが実行されないパターンにあうとどうもエラーで落ちることがわかった。 grepの条件に該当しなかったのでエラーコードが1になっているんだが、それがダメらしい。

しゃーないから最後の行でexit 0を返すようにしてみたんだけれど、それも意味なし。どうもエラーコードが0以外になった時点でもうダメっぽい。 回避策を探していたところ、CircleCIのDiscussがヒットした。

discuss.circleci.com

set +eしろとある。これってなんなのだろう?

journal.lampetty.net

調べたところ、set -eしてあると、エラーコードに0以外が入った時点でスクリプトが終了するという設定らしい。CircleCIはそうなっているのだろう。それを解除するのが、set +eのようだ。

ローカルで該当job(release)を実行して確認したところ、成功するようになった。

$ circleci config process .circleci/config.yml > .circleci/config.processed.yml
$ circleci local execute --config .circleci/config.processed.yml --job release

# 色々あって…
Success!