大佬教程收集整理的这篇文章主要介绍了在 Gitlab CI 中结合 include 和 only:changes 关键字,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 monorepo 设置,我想在特定文件夹更改时触发“子”管道。为了让事情井井有条,我想让这些子文件夹负责它们自己的 CI 管道并将它们的 CI 文件存储在其中,然后将它们 include
放在根 .gitlab-ci.yml 文件中。
root/
.gitlab-ci.yml
foo/foo-ci.yml
bar/bar-ci.yml
是否可以将 include
关键字与 only:changes:- foo/**/*
结合使用?我会在子 CI 文件中还是在根 CI 文件中设置 only:
标志?
我已经孤立地找到了这些功能的示例,我只是不确定如何在不在根目录中创建大量 CI 文件的情况下将它们组合起来。
对于特定的工作,您只能有关键字。因此,它将在编写实际过程的子 CI 文件中,而不是在调用程序文件中
所以下面将是我的子管道脚本,只有在 src 文件夹上发生更新时它才会运行
test_pylint:
stage: test
image: python:3.7
allow_failure: true
before_script:
- pip install pylint pylint-junit
- pip install -e .
- python -V
script:
- pylint --output-format=pylint_junit.JUnitReporter src/ | tee rspec.xml
artifacts:
paths:
- rspec.xml
reports:
junit: rspec.xml
when: always
expire_in: 1 week
rules:
- if: '($CI_PIPELINE_sourcE == "merge_request_event") && ($CI_MERGE_requEST_TARGET_BRANCH_NAME == "develop")'
when: always
changes:
- src/*
下面是根 .gitlab-ci.yml 文件
stages:
- test
include:
- project: test
file: /job/py-lint.gitlab-ci.yml
所以所有唯一的条件都将单独成为子 CI 文件的一部分
以上是大佬教程为你收集整理的在 Gitlab CI 中结合 include 和 only:changes 关键字全部内容,希望文章能够帮你解决在 Gitlab CI 中结合 include 和 only:changes 关键字所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。