在GitLab中为节点项目创建2个管道
我试图在GitLab中为一个项目运行两个管道,但找不到任何方法。在GitLab CI中,您无法为一个项目显式创建多个管道。在某些情况下,多个管道将同时运行,例如,您的作业仅针对合并请求运行,而其他作业不针对合并请求运行 也就是说,有一些方法可以获得独立运行多个系列作业的效果 在gitlab ce 12.2之前的黑客方式 如果要为同一项目启动两个管道,可以使用。此方法仅限于2条管道,gitlab CI不是以这种方式使用的。通常,触发器用于启动另一个项目上的管道 您的在GitLab中为节点项目创建2个管道,gitlab,gitlab-ci,pipeline,Gitlab,Gitlab Ci,Pipeline,我试图在GitLab中为一个项目运行两个管道,但找不到任何方法。在GitLab CI中,您无法为一个项目显式创建多个管道。在某些情况下,多个管道将同时运行,例如,您的作业仅针对合并请求运行,而其他作业不针对合并请求运行 也就是说,有一些方法可以获得独立运行多个系列作业的效果 在gitlab ce 12.2之前的黑客方式 如果要为同一项目启动两个管道,可以使用。此方法仅限于2条管道,gitlab CI不是以这种方式使用的。通常,触发器用于启动另一个项目上的管道 您的.gitlab ci.yml中的
.gitlab ci.yml
中的所有内容:
stages:
- start
- build
###################################################
# First pipeline #
###################################################
start_other_pipeline:
stage: start
script:
# Trigger a pipeline for current project on current branch
- curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=$CI_COMMIT_REF_NAME $CI_API_V4_URL/projects/$CI_PROJECT_ID/trigger/pipeline
except:
- pipelines
build_first_pipeline:
stage: build
script:
- echo "Building first pipeline"
except:
- pipelines
###################################################
# Second pipeline #
###################################################
# Will run independently of the first pipeline.
build_second_pipeline:
stage: build
script:
- echo "Building second pipeline"
only:
- pipelines
要清理这堆乱七八糟的.gitlab ci.yml
,可以使用include
关键字:
# .gitlab-ci.yml
include: '/first-pipeline.yml'
include: '/second-pipeline.yml'
stages:
- start
- build
# This starts the second pipeline. The first pipeline is already running.
start_other_pipeline:
stage: start
script:
# Trigger a pipeline for current project on current branch
- curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=$CI_COMMIT_REF_NAME $CI_API_V4_URL/projects/$CI_PROJECT_ID/trigger/pipeline
except:
- pipelines
这种方法之所以有效,是因为在作业中仅使用和而不使用。标有
except:
- pipelines
由于触发器来自另一个管道,因此管道启动时不要运行,这样它们就不会在第二个管道中运行。另一方面,
only:
- pipelines
正相反,因此,这些作业仅在管道由另一个管道触发时运行,因此它们仅在第二个管道中运行
根据您的需要,可能是正确的方法;)
在gitlab CE 12.2中,可以定义作业运行的顺序。这样,作业所依赖(使用)的作业一完成就可以启动。Hi Flavio。你必须用英语提问,只有这样。你能翻译一下吗?
except:
- pipelines
only:
- pipelines