首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在gitlab管道中引用另一个项目而不是克隆它吗?

我可以在gitlab管道中引用另一个项目而不是克隆它吗?
EN

Stack Overflow用户
提问于 2021-07-19 22:02:35
回答 1查看 516关注 0票数 0

我对gitlab管道完全陌生,所以我不确定做这件事的最佳方式是什么。我读过关于子模块和依赖关系的文章,这会触发其他管道,但我很难理解什么对我在这里试图实现的目标有帮助。

我有一个project_b,它是project_a的一个子模块。在project_b的.gitlab-ci.yml中,project_a当前正在被克隆,然后project_b被移到project_a中该子模块通常所在的位置:

代码语言:javascript
运行
复制
...
default:
...
    before_script:
        - git clone (project_a)
        - mv project_a /src
        - rm -rf /src/submodules/project_b/*
        - mount --bind /src/submodules/project_b
...

这是因为project_b依赖于project_a。

不过,据我所知,这意味着project_b位于project_a的下游。

我不想每次运行project_b管道时都克隆整个project_a代码库。

我已经看到了很多关于触发依赖项目的下游管道的信息,但我能找到的唯一一件事似乎与我的情况有关,就是不久前有人问过这个问题,关于gitlab缺乏触发上游管道的功能:Upstream triggering in Gitlab-CI aka pipeline dependencies

是否添加了此功能?因为我肯定在网上找不到任何信息。否则,对于如何克隆整个project_a代码库有什么建议吗?我可能完全说错了,但我想知道的是,是否有某种方法可以让project_b为project_a触发一个特定的管道,只做我需要它做的事情来测试project_b?

如有任何建议,我们将不胜感激,谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2021-07-20 00:49:51

Gitlab CI/CD multi-project pipelines没有上行和下行的固有概念,因此您可以通过在trigger关键字中引用项目名称来创建触发另一个管道的管道:

代码语言:javascript
运行
复制
# inside project B .gitlab-ci.yml

# this stage will trigger project A pipeline to run
merge_requests:
  stage: test
  trigger: my/project_a

还可以使用rules关键字在下游管道中运行特定阶段。

代码语言:javascript
运行
复制
# in project A .gitlab-ci.yml

# this will never run when triggered by project B
merge_requests:
  stage: test
  script: echo "test some things"
  rules:
    - if: '$CI_PIPELINE_SOURCE == "trigger"'
      when: never

# this stage will always run when triggered by project B
merge_request_downstream:
  stage: test
  rules:
    - if: '$CI_PIPELINE_SOURCE == "trigger"'
  script: echo "test some specific project B things"

因此,您可以将特定于项目B的测试放入merge_request_downstream的脚本中。希望这能回答你的问题。我不太确定这是否比仅仅在你的项目B脚本中克隆项目A更好,但这就是你如何使用多项目管道来完成它。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68441840

复制
相关文章

相似问题

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