| pipeline { |
| agent any |
| |
| triggers { |
| // 每30分钟检查一下GIT仓库 |
| pollSCM '*/30 * * * *' |
| } |
| |
| options { |
| // 禁止因Multibranch pipeline index动作触发构建 |
| overrideIndexTriggers false |
| // 禁止并发构建 |
| disableConcurrentBuilds() |
| // 构建结果保留天数10天,最多保留10个 |
| buildDiscarder logRotator(daysToKeepStr: '7', numToKeepStr: '10', artifactDaysToKeepStr: '1', artifactNumToKeepStr: '1') |
| // 控制台打出时间戳 |
| // timestamps() |
| // 构建超时设置:15分钟 |
| timeout(30) |
| } |
| |
| stages { |
| |
| stage('Build & Test') { |
| |
| steps { |
| withMaven( |
| // Jenkins全局工具设置的Maven的名字 |
| maven: 'Maven3', |
| // Jenkins全局工具设置的JDK的名字,有JDK6,JDK7,JDK8可选 |
| jdk: 'JDK8', |
| // 指定maven本地仓库路径为项目working dir下的.local-m2-reop,可以避免因并发构建导致本地仓库混乱的问题 |
| mavenLocalRepo: '.local-m2-repo' |
| ) { |
| sh 'mvn clean package -DskipTests -DskipITs' |
| } |
| } |
| |
| } |
| |
| stage('Push nexus') { |
| |
| when { |
| // 只有当前分支是develop时才执行本Stage |
| branch 'develop' |
| beforeAgent true |
| } |
| |
| steps { |
| withMaven( |
| maven: 'Maven3', |
| jdk: 'JDK8', |
| mavenLocalRepo: '.local-m2-repo', |
| // 只是Deploy,因此把所有options都关闭掉(默认是都开启的) |
| publisherStrategy: 'EXPLICIT' |
| ) { |
| sh 'mvn clean package deploy -DskipTests -DskipITs' |
| } |
| } |
| |
| } |
| |
| stage ('Push harbor') { |
| |
| when { |
| branch 'develop' |
| beforeAgent true |
| } |
| |
| steps { |
| withMaven( |
| maven: 'Maven3', |
| jdk: 'JDK8', |
| mavenLocalRepo: '.local-m2-repo', |
| publisherStrategy: 'EXPLICIT' |
| ) { |
| sh 'mvn clean package -DskipTests -DskipITs dockerfile:build dockerfile:push' |
| } |
| } |
| |
| } |
| |
| } |
| |
| post { |
| always { |
| // 发送邮件到本次change所包含的committer |
| emailext recipientProviders: [developers()], |
| subject: "Pipeline [${currentBuild.fullDisplayName}] built ${currentBuild.currentResult}", |
| body: "More details: ${currentBuild.absoluteUrl}" |
| |
| } |
| cleanup { |
| // 清空workspace,节省Jenkins服务器磁盘空间 |
| echo 'Cleanup workspace' |
| withMaven(maven: 'Maven3', jdk: 'JDK8', mavenLocalRepo: '.local-m2-repo') { |
| sh 'mvn clean' |
| } |
| |
| } |
| } |
| } |