//utils 源码在jenkins-pipeline-library里
|
@Library('utils')_
|
pipeline {
|
agent { label '103' }
|
|
environment {
|
project_name = 'git_study'
|
url = 'http://47.92.145.232:8998/r/git_study.git'
|
GIT_CREDENTIALS_ID = '6abafc9e-1f0e-4d27-8389-7c81d69bcdb2'
|
}
|
options {
|
//给日志加上时间错, 需安装 Timestamper 插件
|
//mvn test surefire-report:report
|
timestamps()
|
ansiColor('xterm')
|
//丢弃旧的构建前两个为发布包保留天数(比此早的发布包将被删除,但构建的日志、操作历史、报告等将被保留)和构建个数
|
buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '7', numToKeepStr: '10')
|
|
}
|
stages {
|
stage('source') {
|
steps {
|
checkout([$class: 'GitSCM'
|
, branches: [[name: "${GIT_BRANCH}"]]
|
, doGenerateSubmoduleConfigurations: false
|
, extensions: []
|
, submoduleCfg: []
|
, userRemoteConfigs: [[credentialsId: "${GIT_CREDENTIALS_ID}", url: "${url}"]]
|
])
|
|
}
|
}
|
stage('testMaven') {
|
steps {
|
|
sh 'mvn clean test -U'
|
junit allowEmptyResults: true, keepLongStdio: true, skipPublishingChecks: true, testResults: 'target/surefire-reports/*.xml'
|
|
}
|
}
|
stage('testFunction') {
|
steps {
|
sh 'echo test'
|
}
|
}
|
|
//将项目打成war并归档,将配置文件目录存入stash
|
stage('package') {
|
steps {
|
sh '''#!/bin/sh
|
####maven编译部署#####
|
##mvn clean package -U
|
##处理结果包
|
old_version=\$(find . -iname "\${project_name}.java"| xargs sed -nr 's/^[^0-9]*(([0-9]+\\.)*[0-9]+).*;/\\1/p\')
|
if [ "\$old_version_all" =~ "-" ];then
|
echo "包含"
|
else
|
echo "不包含"
|
fi
|
echo "old_version_all \$old_version_all"
|
echo "project_name \$project_name"
|
dir_name=\${project_name}"-"\$old_version_all
|
echo "dir_name \$dir_name"
|
##cd target
|
##mkdir \$dir_name
|
##cp *.war \$dir_name
|
##zip -r "\$dir_name.zip" \$dir_name
|
'''
|
}
|
}
|
stage('version add') {
|
when {
|
//版本号自动添加逻辑需同时符合下列触发条件:
|
//1. 不能在master分支触发
|
//2. 有任意浏览器页面资源文件修改
|
//3. 不包含[项目名.java]文件的修改
|
allOf {
|
anyOf {
|
changeset "**/*.js"
|
changeset "**/*.css"
|
changeset "**/*.html"
|
changeset "**/*.xhtml"
|
changeset "**/*.jpg"
|
changeset "**/*.png"
|
}
|
not {
|
changeset "**/${project_name}.java"
|
}
|
branch 'master'
|
}
|
}
|
steps {
|
versionAddTest("${project_name}","${GIT_CREDENTIALS_ID}","${url}","${GIT_BRANCH}")
|
}
|
}
|
stage('deploy') {
|
when { branch 'master' }
|
steps {
|
sh 'echo test'
|
}
|
}
|
}
|
}
|