SharedLibrary doesn´t allow git parameter to fetch all branches

245 views
Skip to first unread message

judaondo

unread,
Feb 10, 2020, 11:28:27 AM2/10/20
to Jenkins Users
Hello, 

I have the following pipeline that uses a method called "getServiceVersion" from a Shared Library.


#!/usr/bin/env groovy

@Library('mycom')

import com.mycom.*


// Declarative pipeline //

properties
([[$class: 'JiraProjectProperty'], buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')), disableConcurrentBuilds(), parameters([gitParameter(branch: '', branchFilter: '.*', defaultValue: 'origin/integration', description: 'Git Branch', listSize: '10', name: 'branch', quickFilterEnabled: true, selectedValue: 'DEFAULT', sortMode: 'ASCENDING_SMART', tagFilter: '*', type: 'PT_BRANCH')])])

def STAGE

pipeline
{
    agent
{ label 'WindowsSlaveWS2016' }

    options
{
        timestamps
()
        ansiColor
('xterm')
        disableConcurrentBuilds
()
   
}

    stages
{
        stage
('Code checkout') {
            steps
{
                echo
'<< Checking out source code >>'
                checkout
([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', depth: 10, noTags: false, reference: '', shallow: true]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gitcredentials', url: 'http://gitserver:8080/myproject']]])
                script
{
                    STAGE
=env.STAGE_NAME
               
}
           
}
       
}
        stage
('Get service version') {
            steps
{
                script
{
                    STAGE
=env.STAGE_NAME
                    getServiceVersion
('MY/Path', 'ChangeLog.txt', 'myservice')
               
}
           
}
       
}
       
   
}

}


Please notice at the 'git parameter (https://plugins.jenkins.io/git-parameter/)' that fetchs all available branches on the current repository and the selected default vale 'origin/integration'. 

Since I am using shared library it doesn´t load all the available branches and in fact it only displays origin/master instead of origin/integration.

There is a kind of incompatibility? How can I fix this behaviour?


shared_lib_error.jpg

Ganesan Srinivasan

unread,
Jun 25, 2020, 12:15:10 AM6/25/20
to Jenkins Users
Check this link https://plugins.jenkins.io/git-parameter/

Git parameter doesnt know from which repo(shared repo or project repo), it fetches the branch from shared repo. Follow the below steps to solve this issue

If in the task are defined multiple repositories, this option specifies which the repository is taken into account on getting data.
If the option is not defined, is taken a first defined repository.
This option is a regular expression, which is compared to the 'Repository URL'.

You can define the multiple SCM for few way, you can use Multiple SCMs Plugin, specified many 'Repository URL' in one SCM  or define them in pipeline.

Consider an example based on two repositories:


Pipeline: Complex example
pipeline {
    agent any
    parameters {
        gitParameter branchFilter: 'origin.*/(.*)', defaultValue: 'master', name: 'BRANCH_A', type: 'PT_BRANCH', useRepository: '.*exampleA.git'
        gitParameter branchFilter: 'origin.*/(.*)', defaultValue: 'master', name: 'BRANCH_B', type: 'PT_BRANCH', useRepository: '.*exampleB.git'
        
    }
    stages {
        stage('Example') {
            steps {
                git branch: "${params.BRANCH_A}", url: 'https://github.com/klimas7/exampleA.git'
                git branch: "${params.BRANCH_B}", url: 'https://github.com/klimas7/exampleB.git'
            }
        }
    }
}
Hope this solves the issue
Reply all
Reply to author
Forward
0 new messages