gitlab ci/cd的并行作业



我想在gitlab CI/CD中并行运行多个作业。我读了很多例子,但我不知道我的例子有什么问题:

.apk_caching: &apk_caching
tags:
- runner_name
image:
name: $IMAGE_DOCKER:latest
<<: *docker_dind_service

.program_ready_template: &program_ready_template
<<: *apk_caching
stage: build
script:
- python2.7 method.py

build_ubuntu:
variables:
program_version : $version
program_exe : $EXEFILE
program_installer_path : $EXEPATH
extends: .program_ready_template
rules:
- *rules_schedule
- *rules_branch
- if: '$CI_PIPELINE_SOURCE != "web"'
changes:
- images/dockerfiles/*
when: always
- when: never   
parallel:
matrix:
- version: ["A", "B", "C"]

对于版本A,exefile是";A_EXE";exe路径为";A_路径";;如下所示:

EXEFILE: ["A_EXE", "B_EXE", "C_EXE"]
EXEPATH: ["A_PATH", "B_PATH", "C_PATH"] 

我如何传递exefile和exepath,这样我就有三个并行的作业。一个用于版本";A";其中EXEFILE为";A_EXE";以及"EXEPATH";A_ PATH";等等。

更新

这也返回了一个无效的yaml文件:

parallel:
matrix:
- version: "A"
EXEFILE: "A_EXE"
EXEPATH: "A_PATH"
- version: "B"
EXEFILE: "B_EXE"
EXEPATH: "B_PATH"
- version: "C"
EXEFILE: "C_EXE"
EXEPATH: "C_PATH"

您可以传递一个映射数组。

parallel:
matrix:
- EXEFILE: "A_EXE"
EXEPATH: "A_PATH"
- EXEFILE: "B_EXE"
EXEPATH: "B_PATH"
- EXEFILE: "C_EXE"
EXEPATH: "C_PATH"

问题与规则条件中的错误索引有关。

rules:
- *rules_schedule
- *rules_branch
- if: '$CI_PIPELINE_SOURCE != "web"'
changes:
- images/dockerfiles/*
when: always
- when: never 

最新更新