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'
            }
        }
    }
  • 相关阅读:
    VS Code 快捷键(中英文对照版)
    一些网络资源
    VS Code插件
    Angular for TypeScript 语法快速指南 (基于2.0.0版本)
    Angular2 中的依赖包详解
    《ECMAScript 6 入门》阮一峰
    《JavaScript 标准参考教程》阮一峰
    Angular内提供了一个可以快速建立测试用web服务的方法:内存 (in-memory) 服务器
    由angular命令行工具(angular-cli)生成的目录和文件
    Angular 4.x 修仙之路
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/8182233.html
Copyright © 2011-2022 走看看