ジョブの条件付きステップと条件付きワークフロー

コンフィグファイルに高度なロジックが最近追加され、ジョブでステップを条件付きでトリガーするオプションやワークフローを条件付きでトリガーするオプションを利用できるようになりました。

特定のロジックステートメントを使用してネストされた複数の条件を作成できます。その条件の結果は常にトップレベルで true または false に評価され、ワークフローまたはステップをトリガーするかどうかが決定されます。

ジョブステップの例

- when: 
condition:
or:
- and:
- equal: [ main, << pipeline.git.branch >> ]
- or: [ << pipeline.parameters.param1 >>, << pipeline.parameters.param2 >> ]
- or:
- equal: [ false, << pipeline.parameters.param1 >> ]
steps:
- run: echo "I am on main AND param1 is true OR param2 is true -- OR param1 is false"

ワークフローの例

workflows: 
conditional-workflow:
when:
and: # All must be true to trigger
- equal: [ main, << pipeline.git.branch >> ]
- not: << pipeline.parameters.param1 >>
- or: [ << pipeline.parameters.param1 >>, << pipeline.parameters.param2 >> ]
jobs: - job-on-condition

最大 100 レベルの深さまで引数の仕様に応じて、条件を任意の方法でネストできます。 これにより、以下のようなネストされた複雑なロジックを作成できます。

- when: 
condition:
or:
- and:
- or:
- and:
- equal: [ main, << pipeline.git.branch >> ]
- equal: [ false, << pipeline.parameters.param1 >> ]
- or:
- not: << pipeline.parameters.param3 >>
- or:
- equal: [ false, << pipeline.parameters.param3 >> ]
- or: [ << pipeline.parameters.param1 >>, << pipeline.parameters.param2 >> ]
- or:
- equal: [ true, << pipeline.parameters.param4 >> ]
steps: - run: echo "param 4 is true OR the other nested conditions are true"

 

この記事は役に立ちましたか?
280人中72人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。