代码拉取完成,页面将自动刷新
pipeline {
agent any
environment {
WORK_ENV = "${WORKSPACE}"
ALIYUN_SECRET = credentials('aliyun-docker-repo')
}
stages {
stage('环境检查') {
steps {
echo '环境检查...'
sh 'java -version'
sh 'git --version'
sh 'docker version'
echo 'webhook ... '
sh 'pwd && ls -alh'
sh 'printenv'
}
}
stage('编译') {
agent {
docker {
image 'maven:3-alpine'
args '-v /var/lib/docker/volumes/jenkins-data/_data/appconfig/maven/.m2:/root/.m2'
}
}
steps {
echo '编译...'
sh 'pwd && ls -alh'
sh 'mvn -v'
sh "echo ${WORK_ENV}"
sh "cd ${WORK_ENV} && mvn clean package -s /var/jenkins_home/appconfig/maven/settings.xml -Dmaven.test.skip=true"
sh 'pwd && ls -alh'
}
}
stage('测试') {
steps {
echo '测试...'
sh 'pwd && ls -alh'
}
}
stage('生成镜像') {
steps {
echo '生成镜像...'
sh 'pwd && ls -alh'
sh 'docker build -t demo-cicd .'
}
}
stage('推送镜像') {
input {
message "需要推送远程仓库吗?"
ok "需要"
parameters {
string(name: 'IMAGE_VERSION', defaultValue: 'v1.0', description: '生产环境需要部署的版本')
choice choices: ['bj-01', 'sh-02', 'wuhan-01'], description: '部署的大区', name: 'DEPLOY_WHERE'
}
}
steps {
echo '推送镜像...'
sh 'pwd && ls -alh'
script {
def where = "${DEPLOY_WHERE}"
if (where == "bj-01") {
sh "echo 我帮你部署到 bj-01 区了"
} else if (where == "sh-02") {
sh "echo 我帮你部署到 sh-02 区了"
} else {
sh "echo 没人要的,我帮你部署到 wuhan-01 区了"
}
}
// sh "docker login -u ${ALIYUN_SECRET_USR} -p ${ALIYUN_SECRET_PSW} registry.cn-hangzhou.aliyuncs.com"
withCredentials([usernamePassword(credentialsId: 'aliyun-docker-repo', passwordVariable: 'aliyun_pwd', usernameVariable: 'aliyun_user')]) {
sh "docker login -u ${aliyun_user} -p ${aliyun_pwd} registry.cn-hangzhou.aliyuncs.com"
}
sh "docker tag demo-cicd registry.cn-hangzhou.aliyuncs.com/bsp/demo-cicd:${IMAGE_VERSION}"
sh "docker push registry.cn-hangzhou.aliyuncs.com/bsp/demo-cicd:${IMAGE_VERSION}"
}
}
stage('部署') {
steps {
echo '部署...'
sh 'pwd && ls -alh'
sh 'docker rm -f demo-cicd-dev'
sh 'docker run -d -p 8877:8080 --name demo-cicd-dev demo-cicd'
}
post {
success {
echo '部署成功'
echo '可以在这里发送邮件,粘贴复制好的 emailext 代码'
echo '也可以另开一个阶段发送报告'
}
}
}
stage('发送报告') {
steps {
echo '发送报告...'
echo '可以在这里发送邮件,粘贴复制好的 emailext 代码'
emailext body: '''<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<h3>本邮件由系统自动发出,请勿回复!</h3>
<tr>
<br/>
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
<td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
<h4><font color="#0B610B">最近提交</font></h4>
<ul>
<hr size="2" width="100%" />
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
</td>
</tr>
</table>
</body>
</html>''', subject: '${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志', to: '1062505123@qq.com'
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。