Jenkinsfile is another great feature from Jenkins2.
Below is an example of a Jenkinsfile:
properties(
[
//Parameters of a Jenkins build
parameters(
[
text(defaultValue: ”, description: ‘URL’, name: ‘ARTIFACT’),
choice(choices: ‘qa’, description: ‘Deploy_Env’, name: ‘DEPLOY_ENV’),
string(defaultValue: ‘master’ , description: ‘ Branch’,name:’BRANCH’)
]
)
]
)//Which node the job should run on
node(‘master’){
//Delete directory before job starts
deleteDir()
//Git checkout certain branch using defined Git credentials
checkout([$class: ‘GitSCM’, branches: [[name: “${branch}”]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: ‘abc’, url: GIT_URL]]])
//Name of which stage of task that is running
stage(‘deploy’){//Credentials with secret file configured in Jenkins
withCredentials([file(credentialsId: ‘PASS’, variable: ‘FILE’)]) {
//Execute shell script
sh ‘ansible-galaxy install -r requirements.yml –force’
//Ansible command
ansiblePlaybook(
playbook: ‘deploy.yml’,
inventory: ‘inventory/qa.inventory’,
extraVars:[
artifact_url: “${ARTIFACT}”,
],
extras: ‘–diff –vault-password-file ${FILE} –tags ${ACTION}’,
colorized: true)
}
}}
Enter Jenkinsfile into Jenkins2 as below:
References on Jenkinsfile
- Jenkinsfile documentation
- Generate the Jenkinsfile syntax via Jenkins2->Job->Pipeline Syntax
Leave a Reply