zoukankan      html  css  js  c++  java
  • Jenkins Pipeline脚本

    node { 
        echo 'Hello World' 
    }
    node 在Jenkins环境中分配一个执行器和工作空间。
    echo 在控制台输出中写入简单的字符串
    
    try {
        timeout(time: 120, unit: 'MINUTES') {
    	def app_name_prefix="trmserverdev"
    	// define maven commands
    	def mvn_cmd = 'mvn -s mvn-settings.xml' //maven配置(nexus/sonar配置)
    	// define gitlab_project url
    	def giturl = "http://10.72.76.54/TRM/TRMServer.git"
    	// define gitlab_project branch
    	def git_branch = "master"
    	// define sonar url
    	def sonarurl = 'http://10.72.76.55:9002'
    	// define jenkins token
    	def credentialsId = "dai"
    	def appName = "${app_name_prefix}"
    
    	node {
    		stage("Initialize") {
    		project = env.PROJECT_NAME
    		echo "project: ${project}"
    		}
    	}
    
    	node("maven") {
    		stage("Checkout") {
    			checkout([$class:"GitSCM", branches: [[name: "*/${git_branch}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "${credentialsId}", url: "${giturl}"]]])
    		}	
    		stage("Unit Test") {
    			sh "${mvn_cmd} test"
    		}
    		stage("Sonar") {
    			// sh "${mvn_cmd} sonar:sonar -Dsonar.sourceEncoding=UTF-8 -Dsonar.host.url=${sonarurl} -Dsonar.projectName=${appName}-${git_branch} -Dsonar.projectKey=${appName}-${git_branch}"
    		}
    		stage("Build WAR") {
    			sh "${mvn_cmd} clean package"
    			stash name:"war", includes:"target/TRMServerdev.war" //包名 与项目、镜像名保持一致,附加版本号
    		}
    		stage ('Clear Environment') {
    			sh "rm -rf oc-build && mkdir -p oc-build/deployments"
    			sh "oc delete bc,dc,svc,route,is -l app=${appName} -n ${project}"
    		}
    		stage("Build Image") { //包名 与项目、镜像名保持一致,附加版本号
    			sh "oc project ${project}"
    			sh "cp target/TRMServerdev.war oc-build/deployments/"
    			sh "oc new-build --binary=true --name=${appName} -l app=${appName} -n ${project} --image-stream=openshift/jboss-webserver31-tomcat8-openshift:1.2"
    			sh "oc start-build ${appName} --from-dir=oc-build --follow=true --wait=true -n ${project}"
    		}
    		stage("Deploy") { //URL附加版本号
    			sh "oc new-app --name=${appName} --image-stream=${appName} --env TZ=Asia/Shanghai"
    			sh "oc expose svc/${appName} --hostname=${appName}-${project}sit.devapp.cnooc -n ${project}"
    		}
    		stage('Integration test') { //自动化测试 jmeter
    			println 'Starting test'
    			// TBD: Proper test
    			println 'Test completed!'
    		}
    		//增加发邮件
    	}
         }
    } catch (err) {
    		//完善反馈信息
    		def comment = "编译失败,错误原因如下:${err} "
    		//jiraAddComment idOrKey: "${params.issueKey}", comment: comment, site: 'cnooc jira'
    		//失败状态流转
    		def transitionInput = [ transition: [id: '81'] ]
    		//jiraTransitionIssue idOrKey: "${params.issueKey}", input: transitionInput,site: 'cnooc jira'
    		echo "in catch block"
    		echo "Caught: ${err}"
    		currentBuild.result = 'FAILURE'
    		throw err
    }
    

      

  • 相关阅读:
    2.pt-table-checksum工具
    Mysql8.0新特性01
    12.redis 之阅读大佬文章随笔
    4.Mysql之Mysqldump命令
    5. 关于高负载服务器Kernel的TCP参数优化
    Mysql Oracle 备份表数据、批量删除表数据
    Mysql limit用法
    Java 字符串数组转字符串
    Layui 自定义年份下拉框并且可输入
    Mysql 生成UUID
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/10280460.html
Copyright © 2011-2022 走看看