从位桶轮询后如何使Jenkins自动构建,而不是手动构建具有特定参数的作业

时间:2018-12-12 00:10:17

标签: jenkins automation bitbucket

我有我的Jenkinsfile,可以使用两个参数手动执行,这些参数必须根据我是为开发,登台还是生产而构建。

我现在想做的是,每次詹金斯(Jenkins)发现位桶存储库中是否有新内容时,它都会使用特定参数构建一个新作业(首先通过数据库更新来构建开发人员),然后如果成功,则进行另一个使用暂存参数on和数据库build的参数进行构建。

我希望将用于生产的部署(或更确切地说,创建新工作)的过程作为手动任务,直到我检查一切在分期中看起来是否良好。

作为一个旁注,我的jenkins管道按预期工作,而轮询也按预期工作,我只需要使此过程自动化即可。

注意

我什至没有尝试使用Bitbucket的webhook,因为我的jenkins服务器运行在不允许有外部连接的主机上,并且当bitbucket将信号发送到我的jenkins服务器时,出来。

谢谢您的建议。

我的Jenkins文件如下:

6

3 个答案:

答案 0 :(得分:2)

您可以创建可以视为阶段的函数,然后以所需的顺序使用某些参数调用这些函数。

例如:

def deployDBDev(param1, param2){
  //some steps
}

def deployDev(diffParam1, diffParam2){
  //some steps
}

//then call it in the sequence you want

deployDBDev(param1, param2)
deployDev(diffParam1, diffParam2)

答案 1 :(得分:1)

我建议在bitbucket中创建3个分支

  1. dev
  2. 阶段和
  3. 生产(或母版)。

在詹金斯方面,您可以为每个环境创建3个作业,并在特定分支上添加轮询以进行自动触发。

您的开发人员将提交dev,一旦发现一切都很好,您将触发dev的构建,您可以在stage分支中合并代码,这将触发stage工作。

最后,当您确认所有登台都很好时,只需将登台合并到生产分支中,这将再次触发生产作业。

答案 2 :(得分:0)

用于在推送代码或创建请求请求时触发构建,您可以按照以下文章进行操作。

https://support.cloudbees.com/hc/en-us/articles/115000051132-How-to-Trigger-Multibranch-Jobs-from-BitBucket-Cloud-