Jenkins 基础篇

Posted 编程札记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins 基础篇相关的知识,希望对你有一定的参考价值。

前面了解了 Jenkins 上各种任务的区别后,我们就来实践应用下,先创建一个【文件夹】类型的任务,将我们目前的一些基础的演示任务【移动】到文件夹里面去,这样可以先做个简单的分类。
新建一个【文件夹】类型的任务,名称为 Jenkins-Basic
image.png
可以看到【文件夹】类型的任务可配置的内容很少,不做特殊设置,默认即可:
image.png
然后我们将前面的演示项目移动到这个文件夹下面:
image.png
image.png
接下来我们将做个实战任务,演示任务的构建、打包、上传、部署等操作,以及详细解析任务的各个配置阶段。
新建一个【构建一个自由风格的软件项目】类型的任务,名称为 demo-todo-list
image.png
配置如下:
image.png
我构建了多次才成功,主要是下载构建工具 Gradle 超时,在第九次构建后才成功,构建后看看日志如下:
image.png
image.png
我们现在调整下配置,在【构建后操作】下面添加一项【Send build artifacts over SSH】,这样做的目的是将我们构建出来的可执行 jar 包发送到我们的服务器,然后在用命令行启动我们的 Spring boot 应用:
image.png
简单说下这里的配置:在 SSH Server Name 这里展开选择我们之前配置好的一台服务器;Source files 定位到我们 jar 包的位置;Remove prefix  和 Remote directory 是可选的,我这里为了目录简洁,在 Remove prefix 这里填入 build/libs/,这表示会将 Source files 中 build/libs/demo-todo-list*.jar 的前面 build/libs/ 移除掉;Remote directory 我这里填入的是 service-deploy,这表示将文件发送到远程服务器用户目录下的 service-deploy 文件夹下面,需要注意的是要确保目录 service-deploy 存在。然后在 Exec command 处填入下面的指令:

# 进入到指定的目录
cd service-deploy

# 检查服务是否在运行,如果在运行就将其停掉
ps -ef | grep demo-todo-list | grep -v grep | awk \'{print $2}\' | xargs kill -15 | echo "todo list 服务不存在"

# 将旧的 jar 删除
rm -rf demo-todo-list.jar

# 将新的 jar 重命名下
mv demo-todo-list*.jar demo-todo-list.jar

# 启动我们的服务
nohup java -jar demo-todo-list.jar > /dev/null 2>nohup.log &

然后去到我们的服务器上看看相关情况,看看目录结构以及服务的启动日志:image.png
到这里,一个实战的 Jenkins 任务就完成了。接下来就详细说说任务配置中的各个设置项的意义。
在 Jenkins 任务的配置里面主要分如下几个大类可以设置:【General】、【源码管理】、【构建触发器】、【构建环境】、【构建】以及【构建后操作】。
【General】主要是对任务进行一些前期的设置,里面一个重要的设置是【参数化构建过程】,例如我们可以通过参数来控制要构建哪一个分支,或者构建时会用到的参数也是通过这里配置,参数配置可以支持多种类型的参数,常见的有字符参数、密码参数、布尔参数、选项参数、凭据参数和文件参数等。【源码管理】很容易理解,我们的项目代码都会通过代码仓库进行管理,目前 Jenkins 支持 Git、Mercurial 和 Subversion 等主流的源码管理平台。【构建触发器】可以设置为定时构建、轮询 SCM(定时检查源码仓库有新的代码才构建)、触发远程构建(例如通过URL请求触发)、其他工程构建后触发等。【构建环境】主要是对构建进行一些环境准备,例如有时候构建项目时需要确保没有其他无关文件的影响,就可以设置构建前删除工作空间,如果需要证书密码文件,可以配置添加需要的文件。【构建】就是真正的项目打包操作的,一般来讲主要是将项目构建打包成 jar 包、war 包、可执行文件、安装包、或者压缩文件,举个例子如果是 Maven 项目就执行 maven 的打包命令,Gradle 项目就执行 gradle 的打包命令。【构建后操作】主要是将打包出来的文件发送到某个地方以及一些通知相关的操作,例如我们打包的 Java 项目最终要部署到某台服务器,就通过 SSH 传送文件完成,也可以将构建出来的文件进行存档,还可以将文件上传到OSS 等云服务对象存储里面。如果是构建失败了我们需要立即知道,还可以配置邮件或者钉钉来立即通知我们。
image.png

以上是关于Jenkins 基础篇的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins 基础篇

Jenkins 基础篇

Jenkins 基础篇

Jenkins专辑之 - 基础部署篇

Jenkins 基础篇

持续集成之jenkins实践教程 基础篇 4 集成redmine