目录
一、新建流水线任务
二、参数化构建过程
1. 服务器选项
2. 项目分支
3.发布环境
三、编写流水线脚本
3.1 sshPublisher机器IP设置:
3.2 水流线代码
四、流水线语法
一、新建流水线任务
二、参数化构建过程
1. 服务器选项
value里面填写服务器ip
2. 项目分支
默认dev
3.发布环境
默认dev
三、编写流水线脚本
水流线脚本主要是groovy语法和shell语法。
3.1 sshPublisher机器IP设置:
系统管理-->系统配置--> ssh servers, 添加对应机器ip即可
3.2 水流线代码
最终完成流水线代码:
final def branch = env.branch
final def environment = env.environment
pipeline {
agent any
stages {
stage('设置构建信息') {
steps {
// 自定义设置构建历史显示的名称和描述信息
// 不同的部署方式设置构建历史显示的名称和描述信息方式不一样,根据自己的部署方式自行百度找到设置方法
script {
//设置buildName
wrap([$class: 'BuildUser']) {
buildName "#${BUILD_NUMBER} -- ${BUILD_USER}"
buildDescription " <span style='padding-left: 0px; font-size: 10px;background:yellow ;color:black;font-weight:bold'> 分支: ${branch} <br/> 环境: ${environment} <br/> 发布机器: ${servers} <br/> 发布人: ${BUILD_USER_ID} </span> "
}
}
}
}
stage('下载代码') {
steps {
echo "开始拉取代码,分支:${branch}"
checkout([$class: 'GitSCM', branches: [
[name: '*/${branch}']
], extensions: [], userRemoteConfigs: [
[credentialsId: '', url: 'https://git.xxxxxxxx.git']
]])
}
}
stage('编译打包') {
steps {
sh '${MAVEN_HOME}/bin/mvn clean package -U -D maven.test.skip=true -s ${MAVEN_HOME}/conf/my-setting.xml '
}
}
stage('部署项目') {
steps {
script {
def serverArr = servers.tokenize('---')
for (int i = 0; i < serverArr.size(); ++i) {
echo "拷贝jar包至服务器: ${serverArr[i]} "
sshPublisher(publishers: [sshPublisherDesc(configName: "${serverArr[i].trim()}", transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''#!/bin/bash
source /etc/profile
echo "开始启动项目"
/home/springboot-helloworld/startup.sh restart
echo "启动项目完成"''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/home/springboot-helloworld', remoteDirectorySDF: false, removePrefix: 'springboot-helloworld/target/', sourceFiles: 'springboot-helloworld/target/*.jar', usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
}
}
}
}
}
}
说明:
1.设置构建信息:默认脚本即可,即左侧发布历史
2.下载代码: credentialsId和url替换为自己的即可
3. 编译打包: 默认即可,${MAVEN_HOME}需要jenkins全局配置,参考上一节内容
4. 部署项目: servers为构建参数里面的ip,以---分割,例如: 192.168.1.1 --- 192.168.1.2
remoteDirectory: 为项目所在机器的目录
sourceFiles: 为当前项目所在jenkins服务器中的jar包目录,全路径为: /var/lib/jenkins/流水线任务名称/springboot-helloworld
四、流水线语法
上面pipeline流程里面的 gitscm、sshPublisher都可以用jenkins提供的流水线语法来自动生成,在修改对应参数即可
五、保存完成发布
1. 发布时勾选对应ip即可
发布成功,最终效果图:
文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u012638544/article/details/129993981