首页 > 解决方案 > 在已推送代码的 bitbucket 中的任何分支上触发 Jenkins 管道

问题描述

我有两个项目的回购(不是我的选择)。结构如下所示:

repo1
 |_folder
 |_tests
 |_src (repo2)
    |_index.html
    |_.git

 |_composer.json
 |_.git 

我设置了一个 Jenkins 管道,它将克隆repo1,然后在下克隆repo2src/最后将composer install在下运行repo1。回购的管道脚本src如下所示:

checkout([
        $class: 'GitSCM', 
        branches: [[name: '**']], 
        doGenerateSubmoduleConfigurations: false, 
        extensions: [[$class: 'RelativeTargetDirectory', 
        relativeTargetDir: 'src']], 
        submoduleCfg: [], 
        userRemoteConfigs: [[
            credentialsId: 'XXXX-XXXX-XXXX', 
            url: 'https://BITBUCKETURL'
        ]]
    ])

我还在“构建触发器”下有复选框“在将更改推送到 Bitbucket 时构建”(使用 bitbucket 插件)。最重要的是,我已经设置了我的 webhook 以向 jenkins 发送请求。应该注意的是,我的 webhook 适用于仅限于特定分支的自由式项目。

我现在想要做的只是测试被推送到的分支,而不是触发时的每个分支。此外,我们没有分支的命名约定,因此可以将它们命名为任何不是master. 我该如何处理?

标签: gitjenkinsbitbucketjenkins-pipeline

解决方案


在我的项目中,我正在使用它并且它正在按应有的方式工作(我已经不记得为什么我们决定采用这种方式了,但是 BB 插件或 Push hooks 都存在问题,所以我们使用的是简单的调度程序):

```

checkout([
                $class                           : 'GitSCM',
                branches                         : [[name: '**']],
                doGenerateSubmoduleConfigurations: false,
                extensions                       : [[$class: 'CheckoutOption', timeout: 2]],
                submoduleCfg                     : [],
                userRemoteConfigs                : [
                        [
                                credentialsId: 'CREDTS',
                                url          : 'URL'
                        ]
                ]
        ])

```

如果我将此与您的代码片段进行比较,除了扩展之外,它们大部分是相同的。再加上我们已经配置了 Poll Scm 构建触发器的作业本身* * * * *- 每分钟检查一次


推荐阅读