vs_lala
vs_lala

Reputation: 745

Jenkins: Parameters disappear from pipeline job after running the job

I've been trying to construct multiple jobs from a list and everything seems to be working as expected. But as soon as I execute the first build (which works correctly) the parameters in the job disappears. This is how I've constructed the pipelineJob for the project.

import javaposse.jobdsl.dsl.DslFactory

def repositories = [
        [
                id         : 'jenkins-test',
                name       : 'jenkins-test',
                displayName: 'Jenkins Test',
                repo       : 'ssh://<JENKINS_BASE_URL>/<PROJECT_SLUG>/jenkins-test.git'
        ]
]

DslFactory dslFactory = this as DslFactory

repositories.each { repository ->
    pipelineJob(repository.name) {
        parameters {
            stringParam("BRANCH", "master", "")
        }
        logRotator{
            numToKeep(30)
        }
        authenticationToken('<TOKEN_MATCHES_WITH_THE_BITBUCKET_POST_RECEIVE_HOOK>')
        displayName(repository.displayName)
        description("Builds deploy pipelines for ${repository.displayName}")
        definition {
            cpsScm {
                scm {
                    git {
                        branch('${BRANCH}')
                        remote {
                            url(repository.repo)
                            credentials('<CREDENTIAL_NAME>')
                        }
                        extensions {
                            localBranch('${BRANCH}')
                            wipeOutWorkspace()
                            cloneOptions {
                                noTags(false)
                            }
                        }
                    }
                    scriptPath('Jenkinsfile)
                }
            }
        }

    }
}

After running the above script, all the required jobs are created successfully. But then once I build any job, the parameters disappear.

parameters disappear

After that when I run the seed job again, the job starts showing the parameter. I'm having a hard time figuring out where the problem is.

I've tried many things but nothing works. Would appreciate any help. Thanks.

Upvotes: 1

Views: 1993

Answers (1)

Nata Miata
Nata Miata

Reputation: 1

This comment helped me to figure out similar issue with my .groovy file: I called parameters property twice (one at the node start and then tried to set other parameters in if block), so the latter has overwritten the initial parameters.

BTW, as per the comments in the linked ticket, it is an issue with both scripted and declarative pipelines.

Fixed by providing all job parameters in each parameters call - for the case with ifs.

Though I don't see repeated calls in the code you've provided, please check the full groovy files for your jobs and add all parameters to all parameters {} blocks.

Upvotes: 0

Related Questions