Example 1: Using an Expression to Specify the Execution Condition
You can reference contexts with expressions to specify the execution condition of a job. An expression can be any combination of contexts, operators, functions, or literals. Contexts can be accessed programmatically with expressions, so information such as pipeline runs, sources, variables, and jobs can be transferred within a pipeline.
Example:
The following expression shows that a job runs only when the running branch of the specified code source is master.
${{ sources.my_repo.target_branch == 'master' }}
- Pipeline contexts
- Operator
The following table lists the operators that can be used in expressions.
Table 1 Operators Operator
Description
.
Attribute reference. For example, the ${{ pipeline.trigger_type }} expression can be used to obtain the trigger type.
!
False. For example, the ${{ !startsWith(sources.my_repo.target_branch, 'release') }} can be used to check whether the branch of the pipeline's code source does not start with "release".
==
Equal. For example, the ${{ pipeline.trigger_type == 'Manual' }} expression can be used to check whether a pipeline is triggered manually.
!=
Not equal. For example, the ${{ pipeline.trigger_type != 'Manual' }} expression can be used to check whether a pipeline is not triggered manually.
&&
And. For example, the ${{ pipeline.trigger_type == 'Manual' && sources.my_repo.target_branch == 'master' }} expression can be used to check whether a pipeline is triggered manually and the branch of the pipeline code source is master.
||
Or. For example, the ${{ pipeline.trigger_type == 'Manual' || sources.my_repo.target_branch == 'master' }} expression can be used to check whether a pipeline is triggered manually or the branch of the pipeline code source is master.
- Function
The following table lists the functions that can be used in expressions.
Table 2 Built-in functions Function
Description
contains
startsWith
endsWith
Object filter
You can use the * syntax to apply a filter and select matching items in a collection.
The following is the context of a job execution.
{ "check_job": { "status": "COMPLETED", "metrics": { "critical": "0", "major": "0" } }, "demo_job": { "status": "FAILED" } }
- jobs.*.status indicates the status of all jobs. Therefore, ['COMPLETED', 'FAILED'] is returned.
- Filters can be used together with the contains function. For example, contains(jobs.*.status, 'FAILED') will return true because jobs.*.status contains FAILED.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot