github - Jenkins 多分支管道的自定义项目识别器

标签 github jenkins bitbucket jenkins-pipeline multibranch-pipeline

当您创建 Github 组织或 Bitbucket 团队/项目时,配置项之一是:

Project Recognizers: Pipeline Jenkinsfile

除了“Pipeline Jenkinsfile”之外没有其他选项,但是事实上,该选项甚至存在,这表明开发人员设想人们为不支持的项目编写自己的自定义“识别器”存储库的顶层目录中有一个“Jenkinsfile”。

任何人都可以向我指出可以安装和使用的任何其他项目识别器的方向,甚至是有关从哪里开始实现我自己的识别器的一些详细信息吗?

我的特定用例是,在单个存储库中,我们定义了多个工作流程,这些工作流在一个存储库中协调代码/配置的操作,并且我希望能够使用 Bitbucket Team 选项来动态扫描存储库,查找所有分支/拉取请求中的所有 *.Jenkinsfile 文件并填充必要的管道。

例如,存储库中有以下文件:

/pipelines/workflow1.Jenkinsfile
          /workflow2.Jenkinsfile
          /workflow3.Jenkinsfile

我希望 Jenkins 创建文件夹结构:

 /team/repo/workflow1/master
                     /dev
                     /PR1
           /workflow2/master
                     /dev
                     /feature-xyz

对于我可以从哪里开始创建项目识别器来执行此操作(如果可能的话)有什么想法吗?

最佳答案

我认为您可以通过提供多个具有不同名称的项目识别器来做到这一点,例如:

项目识别器 =========================================== **管道 Jenkinsfile** 脚本路径: pipeline/workflow1.Jenkinsfile (或包含有效管道步骤的文件的路径。 =========================================== **管道 Jenkinsfile** 脚本路径: pipeline/workflow2.Jenkinsfile (或包含有效管道步骤的文件的路径。 =========================================== **管道 Jenkinsfile** 脚本路径: pipeline/workflow3.Jenkinsfile (或包含有效管道步骤的文件的路径。

这里的另一个选项可能是 Pipeline Shared Groovy Libraries Plugin ,有关此插件的更多详细信息可以在Extending with Shared Libraries找到。

这种方法使您能够使用自定义脚本(类、步骤等),这意味着您可以根据存储库名称、项目名称等定义自己的流程。

关于github - Jenkins 多分支管道的自定义项目识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43685452/

相关文章:

azure - 无法访问 Azure Jenkins 仪表板

jenkins - 当 Jenkins 工作已经在相同或不同的 Jenkins 工作中运行时,如何保持 Jenkins 工作

ssl - 无法通过 ssh git clone bitbucket

git - Visual Studio 2013 和 BitBucket

Github - TLS 证书验证已被禁用!在 Windows 上

git - 致力于非主分支和贡献日历

github - 安装 cf-console 返回错误

windows - 请求中未包含有效的面包屑 - Windows 上的 Jenkins

postgresql - 如何为 python Bitbucket Pipeline 设置 Postgres 数据库架构

apache - git/github 和 web 服务器部署配置