在GitLab中为节点项目创建2个管道

在GitLab中为节点项目创建2个管道,gitlab,gitlab-ci,pipeline,Gitlab,Gitlab Ci,Pipeline,我试图在GitLab中为一个项目运行两个管道,但找不到任何方法。在GitLab CI中,您无法为一个项目显式创建多个管道。在某些情况下,多个管道将同时运行,例如,您的作业仅针对合并请求运行,而其他作业不针对合并请求运行 也就是说,有一些方法可以获得独立运行多个系列作业的效果 在gitlab ce 12.2之前的黑客方式 如果要为同一项目启动两个管道,可以使用。此方法仅限于2条管道,gitlab CI不是以这种方式使用的。通常,触发器用于启动另一个项目上的管道 您的.gitlab ci.yml中的

我试图在GitLab中为一个项目运行两个管道,但找不到任何方法。

在GitLab CI中,您无法为一个项目显式创建多个管道。在某些情况下,多个管道将同时运行,例如,您的作业仅针对合并请求运行,而其他作业不针对合并请求运行

也就是说,有一些方法可以获得独立运行多个系列作业的效果

在gitlab ce 12.2之前的黑客方式 如果要为同一项目启动两个管道,可以使用。此方法仅限于2条管道,gitlab CI不是以这种方式使用的。通常,触发器用于启动另一个项目上的管道

您的
.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