can we run Jenkins file in pipeline?

Viewed 46

I've Pipeline Generic Webhook from Bitbucket, this is a job to trigger another job.

currentBuild.displayName = "Generic-Job-#" + env.BUILD_NUMBER
pipeline {
  agent any
  triggers {
    GenericTrigger(
      genericVariables: [
        [key: 'actorName', value: '$.actor.display_name'],
        [key: 'TAG', value: '$.push.changes[0].new.name'],
        [key: 'REPONAME', value: '$.repository.name'],
        [key: 'GIT_URL', value: '$.repository.links.html.href'],
      ],

      token: '11296ae8d97b2134550f',
      causeString: ' Triggered on $actorName version $TAG',
      printContributedVariables: true,
      printPostContent: true
    )
  }
  stages {

    stage('Build Job DEVELOPMENT') {
      when {
        expression { return params.TARGET_ENV == 'DEVELOPMENT' } 
      }
      steps {
        build job: 'DEVELOPMENT',
          parameters: [
            [$class: 'StringParameterValue', name: 'FROM_BUILD', value: "${BUILD_NUMBER}"],
            [$class: 'StringParameterValue', name: 'TAG', value: "${TAG}"],
            [$class: 'StringParameterValue', name: 'GITURL', value: "${GIT_URL}"],
            [$class: 'StringParameterValue', name: 'REPONAME', value: "${REPONAME}"],
            [$class: 'StringParameterValue', name: 'REGISTRY_URL', value: "${REGISTRY_URL}"],
          ]
      }
    }
  }
}

Another Pipeline

pipeline {
  agent any

  stages {
    stage('Cleaning') {
      steps {
        cleanWs()
      }
    }

    def jenkinsFile
    stage('Loading Jenkins file') {
      jenkinsFile = fileLoader.fromGit('Jenkinsfile', "${GIT_URL}", "${TAG}", null, '')
    }

    jenkinsFile.start()
  }
}

can i run Jenkinsfile in Pipeline ? Because every project I make has a different Jenkinsfile, it can't be the same, but when I run this it doesn't execute the Jenkinsfile

1 Answers

it works for me :D

Sample Pipeline

stage 'Load a file from GitHub'
def jenkinsFile = fileLoader.fromGit('<path-jenkinsfile>', "<path-git>", "<branch>", '<credentials>', '')

stage 'Run method from the loaded file'
    
jenkinsFile
pipeline {
  agent any
  stages {
    stage('Print Hello World Ke #1') {
      steps {
        echo "Hello Juan"
      }
    }
  }
}

before run the pipeline, you must install plugin "Pipeline Remote Loader Plugin Version"

Related