• ..

NextJS

    失敗した時だけ実行されるステップ

    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