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

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

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

ジョブステップの例

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

ワークフローの例

workflows:  conditional-workflow:    when:      and: # All must be true to trigger        - equal: [ master, << 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: [ master, << 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"

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

コメント

0件のコメント

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