TransWikia.com

jenkins - gitparam jobdsl - branchFilter

DevOps Asked by joudaon on November 15, 2021

I want to fill branchFilter automatically on Jenkins using JobDSL plugin and language.

This is the url of Jenkins Job DSL plugin:

https://jenkinsci.github.io/job-dsl-plugin/#path/javaposse.jobdsl.dsl.jobs.FreeStyleJob.parameters-gitParam

I want to select all branches but master. To do that I have written the following lines:

  //This Build is parametrized
  parameters {
      gitParam('branch') { // https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.helpers.BuildParametersContext.gitParam
          description('Git Branch')
          type('BRANCH')
          branchFilter("^(?!.*master).*$")
      }
  }

But when compiling it I get error that such method is not available.

Processing provided DSL script ERROR: (script, line 28) No signature
of method: javaposse.jobdsl.dsl.helpers.GitParamContext.branchFilter()
is applicable for argument types: (java.lang.String) values: [*]
Possible solutions: tagFilter(java.lang.String)

enter image description here

Is there any workaround to do this automatically on the script or we have to fulfill that field after job has been created?

One Answer

This is how I did:

gitParameter {
            // The name of the parameter.
            name('SELECTED_BRANCH')
            // The type of the list of parameters: Tag - list of all commit tags in repository - returns Tag Name Branch - list of all branch in repository - returns Branch Name Revision - list of all revision sha1 in repository followed by its author and date - returns Tag SHA1
            type('PT_BRANCH')
            // In my case this is a variable pointing to the gitlab hook variable
            defaultValue('$gitlabAfter')
            // A description that will be shown to the user later.
            description('Select a git the configuration you want to deploy')
            // Name of branch to look in.
            branch('')
            // Regex used to filter displayed branches.
            // Whatever is captured in the group will be the name used as the value of the SELECTED_BRANCH
            branchFilter('origin/(config\/.*)')
            // This parameter is used to get tag from git.
            tagFilter('*')
            // Select how to sort the downloaded parameters.
            sortMode('NONE')
            // Which value is selected, after loaded parameters.
            selectedValue('NONE')
            // If in the task are defined multiple repositories, this option specifies which the repository is taken into account on getting data.
            useRepository("<my git url>.*")
            // When this option is enabled will show a text field.
            quickFilterEnabled(false)
            // Specify the number of items the list will display.
            // listSize(String value)
        }

As strange as it seems, some parameters shouldn't really be necessary, but the plugin requires them anyway, so that's why the config is verbose.

Also, pay attention that this one is gitParameter and not gitParam, yes, both exist, and they take different parameters.

For more information about the properties you can go here:

https://plugins.jenkins.io/git-parameter/

Answered by Renann on November 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP