DevOps Classroomnotes 25/Sep/2022

Jenkins 2.0

  • Jenkins 2.0 Was a release to include pipeline as a code.
  • Earlier Jenkins released Scripted Pipelines and then Declarative Pipelines.
  • Scripted Pipeline:
    • This is groovy language which we use in the scripted pipeline
    • This is extreemly customizable
  • Declarative Pipeline:
    • This has jenkins DSL (Domain Specific Language) which is developed in groovy
    • This is optimized around most of the ci/cd pipelines.

Groovy

  • Groovy is a Java Based Language Refer Here
  • Groovy is popular for simplicity and used for creating Domain Specific Languages and scripting purposes.

Scripted Pipelines

  • The Structure of the Pipeline is as follows
    Preview
  • The Sample Jenkinsfile created has the following content
node {
    stage('test') {
        sh 'echo hello'
    }
}

Declarative Pipelines

  • These were created for the users who are familiar with jenkins to create pipelines without too much of learning curve.
  • Refer Here
  • The syntax overview
    Preview
  • In the Scripted Pipeline we have used the following
node {
    stage('test') {
        sh 'echo hello'
    }
    stage('learning') {
        git url: 'https://github.com/GitPracticeRepo/game-of-life.git',
            branch: 'master'
    }
}
  • Now lets try doing this in Declarative Refer Here for the changeset containing the declarative pipeline
pipeline {
    agent any
    stages {
        stage('test') {
            steps {
                sh 'echo hello'
            }
        }
        stage('learning') {
            steps {
                git url: 'https://github.com/GitPracticeRepo/game-of-life.git', 
                    branch: 'master'
            }
        }
    }
}


  • Lets run stage test on any node and stage learning on a node with some label OPENJDK-11-MAVEN. Refer Here for the changes done
    Preview

Environmental Variables in Jenkins

  • On the node we will have some Environmental variables set by Operating system. In addition to that, Jenkins adds some environment variables which will contain information about the Jenkins project, job, git, build, etc..
    Preview

Exercise

  • Create a Jenkins JOb to build spring petclinic using maven
    • free style project
    • scripted pipeline
    • declarative pipeline

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About continuous learner

devops & cloud enthusiastic learner