Jenkins从0-1搭建--基于pipeline构建发布简单项目

目录

一、新建流水线任务

二、参数化构建过程

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

posted @ 2024-07-05 16:16  技术颜良  阅读(3)  评论(0编辑  收藏  举报