当前位置: 首页 > 面试题库 >

Jenkins管道,Bitbucket挂钩和Maven发布插件无限循环

庞乐池
2023-03-14
问题内容

我还没有找到任何有关此的信息,所以我希望你们能在这一方面帮助我

我在bitbucket中托管了一个maven项目,该项目的BitBucket WebHook指向someurl / bitbucket-hook
/,此钩子触发由具有以下结构的管道定义的我的项目的构建:

node {
   stage 'Checkout'
   git url: 'https:...'

   def mvnHome = tool 'M3'

   #Various stages here
   ...
   stage 'Release'
   sh "${mvnHome}/bin/mvn -B clean install release:prepare release:perform release:clean"
}

问题是maven版本插件将更改推送到BitBucket,这又触发了jenkins脚本,使构建无限循环,是否有办法防止这种情况发生?

我尝试在詹金斯(Jenkins)设置一个安静的时期,但没有成功


问题答案:

从我的角度来看,您应该具有用于​​构建和发布的特定作业,并且应该手动触发发布作业。无论如何,如果出于某种原因让他们参加工作,则可以检查上一次提交的消息:

node {
  git 'https...'
  sh 'git log -1 > GIT_LOG'
  git_log = readFile 'GIT_LOG'
  if (git_log.contains('[maven-release-plugin]')) {
    currentBuild.result = 'ABORTED'
    return
  }
  ... // continue with release or whatever

}


 类似资料:
  • 我正在使用Jenkins管道自动构建和部署我的Java应用程序。我还使用maven发布插件来执行maven部署到Artifactory。 问题是我的Jenkinsfile(或Jenkins管道配置): 我们在发布分支上提交版本0.1.00-SNAPSHOT Jenkins管道获取代码,并执行maven发布 Maven版本将版本更改为0.1.00 Maven发布标签GIT分支、提交和部署工件 Mav

  • 我以一个新的gradle用户的身份创建gradle版本,但我过去曾与maven合作过。 我试图重现maven发布插件的动作: 将分支版本更改为发行号(在svn提交) 如您所见,我正在使用: Nexus OSS作为版本控制库 SVN作为scm Gradle(2.8) 我正试图通过这两个插件实现我的目标: > 将分支版本更改为发行号(在svn提交) 创建标签(位于svn) 将分支版本更改为新快照编号(

  • 所有POM都有作为它们的版本,也在dependencies标签下。它通过上传到Nexus repo。 我们最近开始做。因此,所有20个父POM现在都是和版本,因为它们都位于nexus中。所有标记现在都指向 开发人员不想指向发布版本。他们需要来自同行的edge开发版本,不管它是否不稳定。 SCM只希望指向版本,因为他必须每周执行一次,但由于指向快照版本而失败。 现在我知道了版本插件,但问题是,我应该

  • 我有一个Maven SpringBoot项目。我想把它推到云工厂。为此,我为Jenkins编写了一个groovy管道脚本。我要补充什么?在脚本和/或pom中。xml将其发布到Artifactory中,这样Jenkins将从Git中提取代码并将其发布到Artifactory。在另一个环境中,我将拉出artifactory版本化的JAR,并将其推送到Cloud Foundry。 假设我的项目的grou

  • 我想将特定步骤限制为特定分支 在上面的示例中,我希望第一步在几乎所有的分支中运行,但是第二步应该只对< code>release分支模式执行。不幸的是,实际结果是第一步只在像< code>hotfix这样的分支中起作用,并且在分支时不会在< code > release/version-name 中触发。据说是怎么做的?基本上,这个想法是在发布分支上重用上面的前两个步骤,所以不需要重复这些步骤。

  • 问题内容: 我想在管道作业中使用EnvInject插件。因此,我可以设置复选框“为运行准备一个环境”,但是 没有动作“注入环境变量”,就像在自由式作业中一样。我在“属性内容”块中声明了变量:在此处输入图片说明 如何使用EnvInject在管道作业中注​​入环境变量? 问题答案: 如果在“属性内容”块中声明了以下变量: 然后,您可以将它们放入管道中,以便: