run
オブジェクトにwhen: on_fail
セクションを置くと、前回のステップが失敗した時にだけ実行させることができます。
例
以下の例は1つ目のステップでfoo != bar
じゃない時は失敗(exit: 0
以外が返される)とするようなスクリプトになっています。もちろんこれは失敗するので、次のステップのecho "bar"
が実行されるはずです。
version: 2.1
jobs:
build:
docker:
- image: alpine
steps:
- run: |
if [ "foo" != "bar" ]; then
exit 1
fi
- run:
name: on fail
command:
echo "bar"
when: on_fail
- run: ': 1'
- run: ': 2'
- run: ': 3'
望んだ通りになりました。
処理を続ける
when: on_fail
なステップを複数置いている時、1度でもwhen: on_fail
なステップが実行されると、それ以降のwhen: on_fail
(とalways
)なステップはすべて実行されます。
以下のような場合最後のon_success
以外のすべてのステップが実行されます。
version: 2.1
jobs:
build:
docker:
- image: alpine
steps:
- run: |
if [ "foo" != "bar" ]; then
exit 1
fi
- run:
name: on fail 1
command:
echo on fail 1
when: on_fail
- run:
name: on fail 2
command:
echo on fail 2
when: on_fail
- run:
name: on fail 3
command:
echo on fail 3
when: always
- run:
name: on fail 4
command:
echo on fail 4
when: on_success