configuration - 以编程方式创建 gitlab-ci.yml 文件?

标签 configuration generator gitlab-ci dsl

有没有工具可以生成.gitlab-ci.yml像 Jenkins 这样的文件有 job-dsl-plugin 来创建工作吗?

Jenkins DSL plugin允许我使用 Groovy 生成工作,输出 xml这描述了 Jenkins 的工作。

我可以使用 DSL 和 json文件以在 Jenkins 中生成作业。我正在寻找的是一个工具来帮助我生成 .gitlab-ci.yml基于规范。

最佳答案

我要问的主要问题是你的目标是什么?
只需减少重复工作片段的维护工作:
有时 .gitlab-ci.yml文件在很多项目中都非常相似,您希望集中管理它们。然后我建议看看Having Gitlab Projects calling the same gitlab-ci.yml stored in a central location - 展示了多种集中构建的方式,
生成管道配置,因为构建高度灵活
实际上,这更像是一项模板任务,几乎可以用您喜欢的每种脚本语言来实现。
使用简单的 bash、groovy、python、go 等等。最后的问题是,你追求什么样的灵活性,你需要什么样的逻辑。我不会详细介绍如何生成 .gitlab-ci.yml文件,但如何在下一步中使用它。因为在我看来这是最关键的一步。有一种简单的生成和提交的方法,但您也可以使用 GitLab CI 为您生成一个文件,该文件将在您的管道的下一个工作中使用。

setup:
  script:
    - echo ".." # generate your yaml file here, maybe use a custom image
  artifacts:
    paths:
      - generated.gitlab-ci.yml

trigger:
  needs:
    - setup
  trigger:
    include:
      - artifact: generated.gitlab-ci.yml
        job: setup
    strategy: depend
这允许您生成子管道并执行它 - 我们将其用于 monorepos 中的高度通用构建。
请参阅进一步阅读
  • GitLab JSONNET Example - 管道中生成的 yml 文件的文档示例
  • Dynamic Childpipelines - 动态创建管道的文档
  • 关于configuration - 以编程方式创建 gitlab-ci.yml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47042526/

    相关文章:

    gitlab-ci - 动态设置gitlab-ci cache.key

    laravel - 无法登录到 Gitlab CI 中的 MSSQL docker 以开始测试迁移

    python - 如何在 JupyterHub 中设置 NotebookApp.iopub_data_rate_limit 和其他 NotebookApp 设置?

    windows - 作为开发人员,您对普通 Windows 安装做了哪些更改?

    java - 如何在 IntelliJ IDEA 中运行 GWT 应用程序的多个实例

    python - 在 Python 的 For 循环中迭代生成器

    Python 仅在 for 循环未开始迭代(使用生成器)时才执行代码?

    php - 为内容创建随机生成的 url

    Gitlab secret 检测,如何测试其工作原理

    macos - 如何使用 p4merge 作为 Mercurial 的 merge/差异工具?