触发bitbucket中任何已推送代码的分支上的Jenkins管道

时间:2018-05-09 01:45:06

标签: git jenkins bitbucket jenkins-pipeline

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

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

 |_composer.json
 |_.git 

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

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的任何内容。我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

在我的项目中我正在使用它并且它正在工作(我不记得为什么我们这样决定了,但是使用推送钩子的BB插件有问题,所以我们使用简单的调度程序):

```

@echo off

setlocal ENABLEDELAYEDEXPANSION
set string=%1
set string=!string:\=%%5C!

@echo %string% > D:\Playground\test.txt

```

如果我将其与您的代码段进行比较,除了扩展外,它们大多数相同。此外,我们已经使用checkout([ $class : 'GitSCM', branches : [[name: '**']], doGenerateSubmoduleConfigurations: false, extensions : [[$class: 'CheckoutOption', timeout: 2]], submoduleCfg : [], userRemoteConfigs : [ [ credentialsId: 'CREDTS', url : 'URL' ] ] ]) 配置了Poll Scm构建触发器的作业本身 - 每分钟检查