Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-51530

Mulibranch pipeline job and mercurialSCMSource traits request

      Without passing trait (behaviour) installation for multibranch pipeline using mercurial there's no chance to run jobs (probably due to hg-cache requirement or something like this).

      I discovered

      mercurialInstallationSCMSourceTrait

      in jenkins job reference manual but this node I can not apply to the following configuration:

      multibranchPipelineJob('ci-per-branch'){
          displayName('CI')
          description('Continuous Integration Tests')
          triggers {
              periodic(10)
          }
      
          branchSources {
      
              branchSource {
                  source {
                      mercurialSCMSource {
                          id "ci-per-branch-id"
                          credentialsId "access-bot-id"
                          source "https://repolocation/"
                          // here should be installation option to make it work
                      }
                  }
              }
          }
      
          orphanedItemStrategy {
              discardOldItems {
                  numToKeep(0)
                  daysToKeep(0)
              }
          }
      }
      

      Unfortunately I have not found how to configure it by another ways.

          [JENKINS-51530] Mulibranch pipeline job and mercurialSCMSource traits request

          Nickolas Fox created issue -
          Nickolas Fox made changes -
          Description Original: Without passing trait (behaviour) installation for multibranch pipeline using mercurial there's no chance to run jobs (probably due to hg-cache requirement or something like this).

          I discovered {code}mercurialInstallationSCMSourceTrait{code} in jenkins job reference manual but this node I can not apply to the following configuration:
          {code}
          multibranchPipelineJob('ci-per-branch'){
              displayName('CI')
              description('Continuous Integration Tests')
              triggers {
                  periodic(10)
              }

              branchSources {

                  branchSource {
                      source {
                          mercurialSCMSource {
                              id "ci-per-branch-id"
                              credentialsId "bsw-bm-bot"
                              source "https://hg.iponweb.net/bidswitch/ui-ci/"
                              // here should be installation option to make it work
                          }
                      }
                  }
              }

              orphanedItemStrategy {
                  discardOldItems {
                      numToKeep(0)
                      daysToKeep(0)
                  }
              }
          }
          {code}

          Unfortunately I have not find how to configure it by another ways.
          New: Without passing trait (behaviour) installation for multibranch pipeline using mercurial there's no chance to run jobs (probably due to hg-cache requirement or something like this).

          I discovered {code}mercurialInstallationSCMSourceTrait{code} in jenkins job reference manual but this node I can not apply to the following configuration:
          {code}
          multibranchPipelineJob('ci-per-branch'){
              displayName('CI')
              description('Continuous Integration Tests')
              triggers {
                  periodic(10)
              }

              branchSources {

                  branchSource {
                      source {
                          mercurialSCMSource {
                              id "ci-per-branch-id"
                              credentialsId "access-bot-id"
                              source "https://repolocation/"
                              // here should be installation option to make it work
                          }
                      }
                  }
              }

              orphanedItemStrategy {
                  discardOldItems {
                      numToKeep(0)
                      daysToKeep(0)
                  }
              }
          }
          {code}

          Unfortunately I have not find how to configure it by another ways.
          Daniel Spilker made changes -
          Component/s New: mercurial-plugin [ 15502 ]

          There was a similar issue with the GitHub branch source, see https://github.com/jenkinsci/github-branch-source-plugin/commit/745dfbfe4f8002b085386e8da8a9416a964472d2. That fix has to be applied to the Mercurial plugin as well. I will prepare a PR.

          Daniel Spilker added a comment - There was a similar issue with the GitHub branch source, see https://github.com/jenkinsci/github-branch-source-plugin/commit/745dfbfe4f8002b085386e8da8a9416a964472d2 . That fix has to be applied to the Mercurial plugin as well. I will prepare a PR.
          Daniel Spilker made changes -
          Link New: This issue relates to JENKINS-26535 [ JENKINS-26535 ]
          Nickolas Fox made changes -
          Description Original: Without passing trait (behaviour) installation for multibranch pipeline using mercurial there's no chance to run jobs (probably due to hg-cache requirement or something like this).

          I discovered {code}mercurialInstallationSCMSourceTrait{code} in jenkins job reference manual but this node I can not apply to the following configuration:
          {code}
          multibranchPipelineJob('ci-per-branch'){
              displayName('CI')
              description('Continuous Integration Tests')
              triggers {
                  periodic(10)
              }

              branchSources {

                  branchSource {
                      source {
                          mercurialSCMSource {
                              id "ci-per-branch-id"
                              credentialsId "access-bot-id"
                              source "https://repolocation/"
                              // here should be installation option to make it work
                          }
                      }
                  }
              }

              orphanedItemStrategy {
                  discardOldItems {
                      numToKeep(0)
                      daysToKeep(0)
                  }
              }
          }
          {code}

          Unfortunately I have not find how to configure it by another ways.
          New: Without passing trait (behaviour) installation for multibranch pipeline using mercurial there's no chance to run jobs (probably due to hg-cache requirement or something like this).

          I discovered {code}mercurialInstallationSCMSourceTrait{code} in jenkins job reference manual but this node I can not apply to the following configuration:
          {code}
          multibranchPipelineJob('ci-per-branch'){
              displayName('CI')
              description('Continuous Integration Tests')
              triggers {
                  periodic(10)
              }

              branchSources {

                  branchSource {
                      source {
                          mercurialSCMSource {
                              id "ci-per-branch-id"
                              credentialsId "access-bot-id"
                              source "https://repolocation/"
                              // here should be installation option to make it work
                          }
                      }
                  }
              }

              orphanedItemStrategy {
                  discardOldItems {
                      numToKeep(0)
                      daysToKeep(0)
                  }
              }
          }
          {code}

          Unfortunately I have not found how to configure it by another ways.

          Daniel Spilker added a comment - PR with a workaround for JENKINS-26535 : https://github.com/jenkinsci/mercurial-plugin/pull/118
          Daniel Spilker made changes -
          Assignee Original: Daniel Spilker [ daspilker ] New: Jesse Glick [ jglick ]

          Daniel Spilker added a comment - - edited

          nickolasfox you can also use a Configure Block to add the missing config:

          multibranchPipelineJob('example-mbp') {
            branchSources {
              branchSource {
                source {
                  mercurialSCMSource {
                    id('ci-per-branch-id')
                    credentialsId('access-bot-id')
                    source('https://repolocation/')
                  }
                }
              }
            }
            configure { project ->
              project / sources / data / 'jenkins.branch.BranchSource' / source / traits << 'hudson.plugins.mercurial.traits.MercurialInstallationSCMSourceTrait' {
                installation('mercurial-4.6')
              }
            }
          }
          

          Daniel Spilker added a comment - - edited nickolasfox you can also use a Configure Block to add the missing config: multibranchPipelineJob( 'example-mbp' ) { branchSources { branchSource { source { mercurialSCMSource { id( 'ci-per-branch-id' ) credentialsId( 'access-bot-id' ) source( 'https: //repolocation/' ) } } } } configure { project -> project / sources / data / 'jenkins.branch.BranchSource' / source / traits << 'hudson.plugins.mercurial.traits.MercurialInstallationSCMSourceTrait' { installation( 'mercurial-4.6' ) } } }

          Nickolas Fox added a comment -

          daspilker thank you, yes I know about configure way to setup project in my case I've replaced whole branchSources block with configure use.

          Nickolas Fox added a comment - daspilker thank you, yes I know about configure way to setup project in my case I've replaced whole branchSources block with configure use.

            jglick Jesse Glick
            nickolasfox Nickolas Fox
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: