程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 Gitlab CI 中结合 include 和 only:changes 关键字大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 Gitlab CI 中结合 include 和 only:changes 关键字?

开发过程中遇到在 Gitlab CI 中结合 include 和 only:changes 关键字的问题如何解决?下面主要结合日常开发的经验,给出你关于在 Gitlab CI 中结合 include 和 only:changes 关键字的解决方法建议,希望对你解决在 Gitlab CI 中结合 include 和 only:changes 关键字有所启发或帮助;

我有一个 monorepo 设置,我想在特定文件夹更改时触发“子”管道。为了让事情井井有条,我想让这些子文件夹负责它们自己的 CI 管道并将它们的 CI 文件存储在其中,然后将它们 include 放在根 .gitlab-ci.yml 文件中。

@H_419_4@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,请注明来意。