zoukankan      html  css  js  c++  java
  • 看到了一个pipeline例子,

    pipeline {
        agent any
        options {
            timestamps()
        }
        parameters {
            string(name: 'GIT_BRANCH', defaultValue: 'master', description: 'default build branch')
            booleanParam(name: 'RUN_SONAR_SCANNER', defaultValue: true, description: 'run the sonar scanner check.')
        }
        environment {
            MAVEN_IMAGE = 'maven:3-alpine'
            SONAR_SCANNER_IMAGE = 'cnlinux/sonar-scanner:3.0.3'
            SONAR_SERVER = 'http://10.0.7.1:9000'
            DOCKER_REGISTRY = "10.0.7.1:5000"
            APP_NAME = 'jenkins-jipeline-demo'
            DEPLOY_HOST = '10.0.7.1:2376'
        }
        stages {
            stage('Checkout') {
                steps {
                    git branch: "${params.GIT_BRANCH}", url: 'https://github.com/opspy/Jenkins-Pipeline-demo.git'
                }
            }
            stage('Test') {
                parallel {
                    stage ('Unit Test') {
                        agent {
                            docker {
                                reuseNode true
                                image '${MAVEN_IMAGE}'
                                args '-v $HOME/.m2:/root/.m2'
                            }
                        }
                        steps {
                            sh 'mvn test'
                            junit '**/target/**/*.xml'
                        }
                    }
                    stage ('Sonar Scanner') {
                        when {
                            environment name: 'RUN_SONAR_SCANNER', value: 'true'
                        }
                        agent {
                            docker {
                                reuseNode true
                                image '${SONAR_SCANNER_IMAGE}'
                            }
                        }
                        steps {
                            sh 'sonar-scanner -Dsonar.host.url=${SONAR_SERVER}'
                        }
                    }
                }
            }
           stage('Build War') {
                agent {
                    docker {
                        reuseNode true
                        image '${MAVEN_IMAGE}'
                        args '-v $HOME/.m2:/root/.m2'
                    }
                }
                steps {
                    sh 'mvn -Dmaven.test.skip=true clean install'
                }
           }
           stage('Docker image') {
                steps {
                    sh """
                            mv -f target/*.war deployment/
                            docker build -t ${DOCKER_REGISTRY}/${APP_NAME}:${BUILD_NUMBER} deployment
                            docker push ${DOCKER_REGISTRY}/${APP_NAME}:${BUILD_NUMBER}
                            docker rmi ${DOCKER_REGISTRY}/${APP_NAME}:${BUILD_NUMBER}
                            rm -f deployment/*.war
                    """
                }
            }
            stage('Deploy') {
                steps {
                    input message: 'Are you sure Deployment?', ok: 'Yes'
                    sh"""
                        docker -H ${DEPLOY_HOST} rm -f ${APP_NAME} | true
                        docker -H ${DEPLOY_HOST} run -d --name ${APP_NAME} -p 9090:8080 ${DOCKER_REGISTRY}/${APP_NAME}:${BUILD_NUMBER}
                    """
                    }
            }
        }
        post {
            always {
                emailext body: """<p>STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
                    <p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>""",
                subject: "STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'", 
                to: 'admin@example.com'
            }
        }
    }
  • 相关阅读:
    575. Distribute Candies
    242. Valid Anagram
    349. Intersection of Two Arrays
    290. Word Pattern
    389. Find the Difference
    httpModules 与 httpHandlers
    JS获取浏览器信息及屏幕分辨率
    asp.net 页面编码 设置的几种方法
    IIS是如何处理ASP.NET请求的
    VS2010常用插件介绍之Javascript插件(一)
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/8182233.html
Copyright © 2011-2022 走看看