From: 刘洪青 Date: Mon, 19 Aug 2019 06:41:35 +0000 (+0800) Subject: chore: 增加jenkins自动化构建脚本 X-Git-Tag: v0.0.1^2~77 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=45bb76c801774fac26e7e724debbc9f912eda745;p=institute%2Fsw-backend.git chore: 增加jenkins自动化构建脚本 --- diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..57c5f87 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,102 @@ +pipeline { + agent any + + triggers { + // 每30分钟检查一下GIT仓库 + pollSCM '*/30 * * * *' + } + + options { + // 禁止因Multibranch pipeline index动作触发构建 + overrideIndexTriggers false + // 禁止并发构建 + disableConcurrentBuilds() + // 构建结果保留天数10天,最多保留10个 + buildDiscarder logRotator(daysToKeepStr: '30', numToKeepStr: '10') + // 控制台打出时间戳 + // 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' + } + + } + } +}