gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

使用Jenkins Pipeline自動化構建發(fā)布Java項目

簡介

Pipeline,簡而言之,就是一套運行于Jenkins上的工作流框架,將原本獨立運行于單個或者多個節(jié)點的任務連接起來,實現(xiàn)單個任務難以完成的復雜流程編排與可視化。

Pipeline是Jenkins2.X的最核心的特性,幫助Jenkins實現(xiàn)從CI到CD與DevOps的轉變。

一,創(chuàng)建pipeline項目

使用Jenkins Pipeline自動化構建發(fā)布Java項目

二,清除部分歷史構建

使用Jenkins Pipeline自動化構建發(fā)布Java項目

三,參數(shù)化構建

這里使用三個參數(shù),分別對應是否拉取代碼,項目名稱,以及發(fā)版選項

使用Jenkins Pipeline自動化構建發(fā)布Java項目

使用Jenkins Pipeline自動化構建發(fā)布Java項目

使用Jenkins Pipeline自動化構建發(fā)布Java項目

四,編寫pipeline腳本

選擇pipeline script

使用Jenkins Pipeline自動化構建發(fā)布Java項目

編寫pipeline腳本

def userMap
def proMap = [‘api’: ‘test_api’, ‘report’:’test_report’, ‘job’: ‘test_job’]    //定義項目字典
def deployMap = [‘test-pipeline’: ‘test-pro.sh’]          //定義發(fā)版腳本
def predeployMap = [‘test-pipeline’: ‘test-pre.sh’]    //定義預發(fā)布腳本
def rollbackMap = [‘test-pipeline’: ‘test-pro-rollback.sh’]    //定義回滾腳本
pipeline {
    agent any
    //parameters { string(defaultValue: ”, name: ‘PULL_FLAG’, description: ‘請根據(jù)發(fā)布類型進行選擇發(fā)布:n1,輸入-TESTING-發(fā)布-最新代碼-到灰度n2,輸入-LATEST-發(fā)布-最新代碼-到生產n3,輸入-版本號-發(fā)布-制定版本-到生產 ‘ ) }
    stages {
        stage(‘Checkout’) {
            when {
                                //判斷是否要拉取代碼
                environment name: ‘PULL_FLAG’, value: ‘yes’
            }
            steps {
                echo “${PULL_FLAG}”
                                //拉取代碼
                checkout([$class: ‘GitSCM’, branches: [[name: ‘*/master’]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: ‘CleanBeforeCheckout’]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: ‘797fddfc-d9d6-42a7-9a2b-38421a6963b0’, url: ‘git@git.test.com:test/test.git’]]])
                echo ‘Checkout’
            }
        }
        stage(‘Build’) {
            when {
                environment name: ‘PULL_FLAG’, value: ‘yes’
            }
            steps {
                echo ‘Building’
                                // 使用maven進行構建
                sh ‘mvn clean install -Dmaven.test.skip=true -Pprod’
            }
        }
        stage(‘Push package’) {
            when {
                environment name: ‘PULL_FLAG’, value: ‘yes’
            }
            steps {
                echo ‘push package’
                                //上傳war包至跳板機
                sh ‘sh /srv/shell/PAY_scp_pipe.sh ‘
            }
        }
        stage(‘Deploy/Rollback’) {

            steps {
                                //定義發(fā)版密碼校驗,只有輸入口令正確,才會發(fā)版到線上機器,密碼保存在環(huán)境變量中
                timeout(60) {
                    script {
                        userMap = input message: ‘please input password’, ok: ‘ok’, submitter: ‘admin’, parameters: [password(name:’password’, defaultValue: ”, description: ‘發(fā)布代碼口令’ )], submitterParameter: ‘admin’

                        if (userMap[‘password’].toString() == PASSWORD) {
                            echo ‘密碼正確’
                            if (DEPLOY_FLAG == ‘deploy’) {
                                echo “發(fā)版”
                                sh “ssh test ‘cd /data/faban && sh ${deployMap[env.JOB_NAME]} ${proMap[PROJECT]}'”
                            }else if (DEPLOY_FLAG == ‘predeploy’) {
                                echo ‘預發(fā)布’
                                sh “ssh test ‘cd /data/faban/pre-release && sh ${predeployMap[env.JOB_NAME]} ${proMap[PROJECT]}'”
                            }else if (DEPLOY_FLAG == ‘rollback’) {
                                echo ‘回滾’
                                sh “ssh test ‘cd /data/faban && sh ${rollbackMap[env.JOB_NAME]} ${proMap[PROJECT]}'”
                            }
                        }else {
                            echo ‘密碼錯誤’
                            echo “${env.JOB_NAME}”
                        }
                    }
                }   
            } 
        }
    }
    post {
        always {
            echo ‘This will always run’
                        //發(fā)版結束后刪除jenkins workspace下的臨時目錄
            deleteDir()
        }
        success {
            echo ‘This task is successful!’
                        //記錄日志信息
            sh “””
                printf ‘%s %s %s %s %s  %s’ `date +’%F %H:%M:%S’` “${env.JOB_NAME}” “${proMap[PROJECT]}” “${DEPLOY_FLAG}” “success!n”  >> /srv/jk_logs/jk.log
            “””   
        }
    }
}

五,用到的shell腳本

1, 上傳war包的腳本 /srv/shell/TEST_scp_pipe.sh

#!/bin/bash

scp -r /srv/jenkins/workspace/test/test/api/target/api.war test:/data/faban/server_war/risk_api.war
scp -r /srv/jenkins/workspace/test/test/report/target/report.war test:/data/faban/server_war/risk_report.war
scp -r /srv/jenkins/workspace/test/test/job/target/job.war test:/data/faban/server_war/risk_job.war

2, 發(fā)版腳本(跳板機)

#!/bin/bash
project=”$1″
Java_config=/data/faban/java_config
war_rebuild=/data/faban/war_rebuild

if [ $# -lt 1 ]; then
  echo “usage: $0 <project>”
  exit 1
fi

case “$project” in
        test_api)
        tomcat=/opt/tomcat_api
        server=”test”
    ;;
        test_report)
        tomcat=/opt/tomcat_report
        server=”test”
    ;;
        test_job)
        tomcat=/opt/tomcat_job
        server=”test”
    ;;

esac

rm -rf $war_rebuild/*
rsync -av /data/faban/server_war/$project.war /data/faban/war_rebuild
cd $war_rebuild

ssh $server “pkill -9 -f $tomcat”
ssh $server “rm -rf $tomcat/webapps/ROOT; mv $tomcat/webapps/ROOT.war $tomcat/webapps/ROOT.war.bak”
scp $project.war $server:$tomcat/webapps/ROOT.war
ssh $server “chown www.www $tomcat/webapps/ROOT.war”
ssh $server “su – www -c $tomcat/bin/startup.sh”

sleep 5

3, 回滾腳本(跳板機)

#!/bin/bash
project=”$1″

if [ $# -lt 1 ]; then
  echo “usage: $0 <project>”
  exit 1
fi

case “$project” in
        test_api)
        tomcat=/opt/tomcat_api
        server=”test”
    ;;
        test_report)
        tomcat=/opt/tomcat_report
        server=”test”
    ;;
        test_job)
        tomcat=/opt/tomcat_job
        server=”test”
    ;;

esac

ssh $server “pkill -9 -f $tomcat”
ssh $server “rm -rf $tomcat/webapps/ROOT; mv $tomcat/webapps/ROOT.war.bak $tomcat/webapps/ROOT.war”
ssh $server “su – www -c $tomcat/bin/startup.sh”
sleep 5

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
日韩av在线中文| 欧美在线观看www| 日韩一级理论片| 免费观看成人网| 男人操女人免费软件| 国产原创中文在线观看| 韩日视频在线观看| 日本中文字幕亚洲| 国产成人无码精品久久久性色| 日本欧美黄色片| 一本久道中文无码字幕av| 密臀av一区二区三区| 婷婷六月天在线| www.欧美激情.com| 欧美一级黄色录像片| 国产精品三级一区二区| 日本网站免费在线观看| 麻豆传传媒久久久爱| 亚洲精品永久视频| 51xx午夜影福利| 精品一区二区中文字幕| 国产无套粉嫩白浆内谢的出处| 手机免费看av网站| 五月丁香综合缴情六月小说| 亚洲成人福利在线观看| 国产精品夜夜夜爽张柏芝| 久久国产精品视频在线观看| 色天使在线观看| www..com日韩| 91在线第一页| jizzjizzxxxx| 激情成人开心网| 天天干天天操天天玩| 天天夜碰日日摸日日澡性色av| 久草福利视频在线| 男人的天堂狠狠干| 中文字幕在线乱| 精品999在线| 免费黄色日本网站| 99久久99久久精品| 亚洲视频第二页| 日韩亚洲在线视频| 1024av视频| 一二三在线视频| 色婷婷一区二区三区在线观看| 成人一区二区三| 国产极品粉嫩福利姬萌白酱| 国产精品久久久影院| 日韩av加勒比| www.日本久久| 九九热免费在线观看| 999精品视频在线| 黑人糟蹋人妻hd中文字幕| 日本黄色片一级片| 久久天天东北熟女毛茸茸| 一级片免费在线观看视频| 色片在线免费观看| 国产一区二区在线免费播放| av网站在线观看不卡| 97在线播放视频| 亚洲五月天综合| 国产视频一区二区视频| 欧美色图另类小说| 国产无套粉嫩白浆内谢的出处| 116极品美女午夜一级| 久久人妻精品白浆国产| 国产天堂在线播放| 冲田杏梨av在线| 五月天av在线播放| 手机av在线网站| 黄网站色视频免费观看| 欧美 日韩 亚洲 一区| 无码人妻精品一区二区三区在线| 大j8黑人w巨大888a片| 欧美国产日韩激情| 国产三区在线视频| www.99r| 亚洲黄色片免费看| 亚洲人成无码网站久久99热国产| 给我免费播放片在线观看| 日韩精品一区在线视频| 免费观看成人在线视频| 国产精品久久久久久9999| 日韩在线视频在线| 欧美日韩一区二区在线免费观看| 欧美婷婷精品激情| www.成年人视频| 99福利在线观看| 捷克做爰xxxⅹ性视频| 久久久久久免费看| 亚洲欧美日韩一级| 久草视频国产在线| 污版视频在线观看| 中文字幕无码精品亚洲资源网久久| 蜜臀av午夜一区二区三区| 青娱乐国产精品视频| 国产 日韩 亚洲 欧美| www.com久久久| 不卡影院一区二区| 国产手机视频在线观看| 91激情视频在线| 国产视频在线观看网站| 国产精品v日韩精品v在线观看| 日韩美女爱爱视频| 中文av字幕在线观看| 国产精品天天av精麻传媒| 大陆av在线播放| 国产精品一区在线免费观看| 久久精品午夜福利| 搞av.com| 欧美国产视频一区| 黄色污污在线观看| 少妇熟女一区二区| 午夜激情影院在线观看| 日韩中文字幕组| 黄色片视频在线播放| 欧美一区二区三区爽大粗免费| 久久香蕉视频网站| 波多野结衣网页| 波多野结衣网页| 黄色高清视频网站| www.黄色网址.com| 日韩中文在线字幕| 黄瓜视频免费观看在线观看www| 亚洲精品午夜在线观看| 黑人粗进入欧美aaaaa| 国产极品美女高潮无套久久久| 缅甸午夜性猛交xxxx| 久久久久免费看黄a片app| aa视频在线播放| 97在线免费公开视频| 久草精品在线播放| 我要看一级黄色大片| 三级视频中文字幕| 婷婷激情5月天| 99久久99久久精品| 波多野结衣之无限发射| 国产成人综合一区| 三区视频在线观看| 亚洲激情免费视频| 精品久久一二三| 欧美三级理论片| 偷拍盗摄高潮叫床对白清晰| 国产91在线亚洲| 日本wwww视频| 五月天开心婷婷| 日韩亚洲欧美视频| 久久久久久久少妇| 天天做天天爱天天高潮| 青青在线视频免费观看| aaaaaa亚洲| 国产又爽又黄ai换脸| 免费成人午夜视频| 男人午夜视频在线观看| 精品久久久久久无码中文野结衣| 国产精品亚洲αv天堂无码| 黄色一级片免费播放| 青草网在线观看| 日韩一级免费片| 亚洲国产一二三精品无码| www.xxx亚洲| www精品久久| 三区视频在线观看| 国产特级淫片高清视频| 亚洲国产欧美91| 午夜激情福利在线| 国产精品999视频| 三级网在线观看| 92看片淫黄大片一级| 97久久国产亚洲精品超碰热| 色国产在线视频| 爱福利视频一区二区| www.夜夜爱| 麻豆视频传媒入口| 手机av在线免费| 精品一卡二卡三卡| 日本免费不卡一区二区| 日本成人在线不卡| 黄色一级片网址| 免费精品99久久国产综合精品应用| 国产在线精品91| 欧美国产综合在线| 日韩中文字幕亚洲精品欧美| 国产xxxxhd| 欧美 另类 交| 青青草原国产免费| 极品粉嫩美女露脸啪啪| 日韩不卡一二三| 五月天婷婷激情视频| 无人在线观看的免费高清视频| 国产xxxxx在线观看| 黄色片一级视频| 日本xxxxxxx免费视频| 青青在线视频免费| 亚洲人成无码www久久久| 99精品视频播放| 欧美日韩怡红院| 三年中国国语在线播放免费| 我看黄色一级片| 中文字幕一区二区三区四|