Giter Club home page Giter Club logo

jenkins-shared-library's Introduction

jenkins-shared-library

Usage

Configure Global Shared Library

  • Go to Manage Jenkins -> Configure System
  • In Global Pipeline Libraries Section

Scripted Pipeline

Jenkinsfile

#!groovy
@Library('jenkins-shared-library')
import com.sivalabs.JenkinsMavenLib
import com.sivalabs.JenkinsGradleLib

def dockerUsername = 'DOCKER_USERNAME'
def dockerImageName = 'IMAGE_NAME'

def project = new JenkinsMavenLib(this, scm, env, params, currentBuild)
//def project = new JenkinsGradleLib(this, scm, env, params, currentBuild)

node {

    try {
        stage("Checkout") {
            project.checkout()
        }
        stage("Build") {
            project.runTests()
        }
        stage("Publish Docker Image") {
            project.buildSpringBootDockerImage(dockerUsername, dockerImageName)
            def tags = []
            if(env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'main') {
                tags << "latest"
            }
            project.publishDockerImage(dockerUsername, dockerImageName, tags)
        }
    }
    catch(err) {
        echo "ERROR: ${err}"
        currentBuild.result = currentBuild.result ?: "FAILURE"
    }
}

Declarative Pipeline

Jenkinsfile

#!groovy
@Library('jenkins-shared-library')
import com.sivalabs.JenkinsMavenLib
//import com.sivalabs.JenkinsGradleLib

def project = new JenkinsMavenLib(this, scm, env, params, currentBuild)
//def project = new JenkinsGradleLib(this, scm, env, params, currentBuild)

pipeline {
    agent any

    stages {
        stage("Checkout") {
            steps {
                script {
                    project.checkout()
                }
            }
        }
        stage("Test") {
            steps {
                script {
                    project.runTests()
                }
            }
        }
    }
}

Dynamically loading library

Jenkinsfile

#!groovy

jsl = library(
    identifier: 'jenkins-shared-library@master',
    retriever: modernSCM(
        [
            $class: 'GitSCMSource',
            remote: 'https://github.com/sivaprasadreddy/jenkins-shared-library.git'
        ]
    )
)

def project = jsl.com.sivalabs JenkinsMavenLib.new(this, scm, env, params, currentBuild)

node {

    try {
        stage("Checkout") {
            project.checkout()
        }
        stage("Build") {
            project.runTests()
        }
    }
    catch(err) {
        echo "ERROR: ${err}"
        currentBuild.result = currentBuild.result ?: "FAILURE"
    }
}

jenkins-shared-library's People

Contributors

sivaprasadreddy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.