Jak*_*cek 6 pipeline gitlab-ci
我需要像这样配置我的 GitLab CI 作业:
$CI_PIPELINE_SOURCE == "merge_request_event"添加到管道中,matrix对于矩阵定义的每个版本,作业都会运行多次PHP_VERSION: [ '7.4', '8.0', '8.1' ]。'8.1'必须与 一起运行allow_failure: true。我尝试编写直观的规则,因为我除了规则有效之外,但我得到了不同的结果。
我首先尝试了这个:
parallel:
matrix:
- PHP_VERSION: [ '7.4', '8.0', '8.1' ]
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: on_success
- if: '$PHP_VERSION == "8.1"'
allow_failure: true
Run Code Online (Sandbox Code Playgroud)
它仅导致 PHP 8.1 的 MR 事件添加到管道中。
我的下一次迭代仍然是错误的:
parallel:
matrix:
- PHP_VERSION: [ '7.4', '8.0', '8.1' ]
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: on_success
- if: '$PHP_VERSION == "8.1"'
when: on_success
allow_failure: true
- when: on_success
Run Code Online (Sandbox Code Playgroud)
这看起来更好,但它为所有其他事件(不仅是merge_request_event)运行作业。
我如何正确组合规则以获得我上面声明的结果?
你可以尝试
parallel:
matrix:
- PHP_VERSION: [ '7.4', '8.0', '8.1' ]
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: on_success
- if: '$PHP_VERSION == "8.1"'
when: on_success
allow_failure: true
- if: '$PHP_VERSION'
when: on_success
allow_failure: false
Run Code Online (Sandbox Code Playgroud)
基于https://docs.gitlab.com/ee/ci/jobs/job_control.html#run-a-matrix-of-parallel-trigger-jobs
执行示例
| 归档时间: |
|
| 查看次数: |
5362 次 |
| 最近记录: |