如何避免在Jenkins中创建分支机构?

lh80um4z  于 2022-09-20  发布在  Jenkins
关注(0)|答案(2)|浏览(242)

在我们的团队中,我们通过JIRA创建具有BitBucket集成的分支机构。因此,分支被推送到BitBucket,然后通常由开发人员 checkout 进行处理。

对BitBucket的推动引发了在Jenkins的分支机构的建设。此构建是不必要的,因为它构建了已构建的基本分支的最新提交。我们如何避免/跳过此构建?我们使用的是声明性管道。

ki0zmccv

ki0zmccv1#

对于多分支管道作业,如果您正在为分支源代码使用BitBucket插件https://plugins.jenkins.io/cloudbees-bitbucket-branch-source/,那么有一种方法可以帮助在创建新分支时不触发Jenkins作业。

安装基本分支构建策略插件https://plugins.jenkins.io/basic-branch-build-strategies/。安装它可以在BitBucket插件中提供跳过第一次执行的选项。

通过这样,可以跳过在分支创建期间完成的初始执行。

xwmevbvl

xwmevbvl2#

我用的是Jenkins CASC和BitBucket。OrganationFolders类似于多分支管道,您可以使用DSL进行此选择

organizationFolder --> properties --> suppressFolderAutomaticTriggering

完整示例

organizationFolder('Infrastructure/Company/infrastructure-vpn-account') {
  description('Repositories inside Infrastructure - VPN Account Project')
  displayName('Infrastructure - VPN Account')
  organizations {
    bitbucket {
      repoOwner('Bigfinite')
      credentialsId('bitbucket-oauth-credentials')
      autoRegisterHooks(false)
      // "Traits" ("Behaviors" in the GUI) that are "declarative-compatible"
      traits {
        submoduleOptionTrait {
          extension {
            disableSubmodules(false)
            recursiveSubmodules(true)
            trackingSubmodules(false)
            reference(null)
            timeout(null)
            parentCredentials(true)
          }
        }
        projectKeyRegexFilter {
            // A Java regular expression to restrict the repositories belonging to a Bitbucket project.
            regex('IVA')
        }
        bitbucketBranchDiscovery {
          // Determines which branches are discovered.
          strategyId(3)
        }
      }
    }
  }
  properties {
    suppressFolderAutomaticTriggering {
        // Defines a regular expression of branch names which will be triggered automatically, for example (?!
        branches("")
        // Determines events for which branches with matched names should not be triggered automatically.
        // Possible values for value:
        //     'INDEXING'
        //     'EVENTS'
        //     'NONE'
        strategy('INDEXING')
    }
  }
  // "Project Recognizers"
  projectFactories {
    workflowMultiBranchProjectFactory {
      scriptPath 'Jenkinsfile'
    }
  }
  // "Orphaned Item Strategy"
  orphanedItemStrategy {
    discardOldItems {
      daysToKeep(10)
      numToKeep(10)
    }
  }
}

enter image description here

相关问题