昨日書いてたやつで、rake releaseが実行されないパターンにあうとどうもエラーで落ちることがわかった。 grepの条件に該当しなかったのでエラーコードが1になっているんだが、それがダメらしい。
しゃーないから最後の行でexit 0
を返すようにしてみたんだけれど、それも意味なし。どうもエラーコードが0以外になった時点でもうダメっぽい。
回避策を探していたところ、CircleCIのDiscussがヒットした。
set +e
しろとある。これってなんなのだろう?
調べたところ、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!