首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gitlab CI儿童管道

Gitlab CI儿童管道
EN

Stack Overflow用户
提问于 2022-02-24 10:55:25
回答 1查看 1.3K关注 0票数 1

我对gitlab ci儿童管道有个问题。需要触发ci管道后,每次提交在回购有多个应用程序。需要配置以检测哪些文件夹/文件已被修改,以便知道要触发哪个应用程序管道

结构实例

代码语言:javascript
复制
Main/
---- applicationsA/
-------- appA1/
-------- appA2/
-------- appA3/
---- applicationsB/
-------- appB1/
-------- appB2/
-------- appB3/

Main“..gitlab ci.yml”是:

代码语言:javascript
复制
workflow:
  rules:
    - if: ‘$CI_PIPELINE_SOURE == “web”’

variables:
  APPNAME: $APPNAME

stages:
  - child-pipelines

appA1:
  stage: child-pipelines
  trigger:
    include:
      - local: applicationA/appA1/gitlab-ci.yml
    strategy: depend
  rules:
    - if: $APPNAME == “appA1” && $CI_PIPELINE_SOURE == “web”

appA2:
  stage: child-pipelines
  trigger:
    include:
      - local: applicationA/appA2/gitlab-ci.yml
    strategy: depend
  rules:
    - if: $APPNAME == “appA1” && $CI_PIPELINE_SOURE == “web”
...

appA1“..gitlab ci.yml”是:

代码语言:javascript
复制
stages:
  - build
  - test

build-appA1:
  stage: build
  script:
    - echo "Execute appA1 build!"

publish-appA1:
  stage: build
  script:
    - echo "Execute appA1 publish!"

appA2 ".gitlab-ci.yml“是:

代码语言:javascript
复制
stages:
  - build
  - test

build-appA2:
  stage: build
  script:
    - echo "Execute appA1 build!"

publish-appA2:
  stage: build
  script:
    - echo "Execute appA1 publish!"

这种配置的目的是,例如,当我在app**中更改一个文件时,管道会检测到这些更改并构建该应用程序**。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-24 11:07:41

您可以在glob模式中使用规则:更改,并且只有在特定的应用程序文件夹中有任何变化时才运行特定的作业:

代码语言:javascript
复制
appA1:
  stage: child-pipelines
  trigger:
    include:
      - local: applicationA/appA1/gitlab-ci.yml
    strategy: depend
  rules:
    - if: '$APPNAME == "appA1" && $CI_PIPELINE_SOURE == "web"'
      changes:
        - Main/applicationsA/appA1/**/*
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71250843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档