Jenkins 基础篇 - 任务创建_jenkins创建任务_心如光的博客-程序员秘密

技术标签: Jenkins 持续集成实战  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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014559804/article/details/117458791

智能推荐

Hibernate HQL根据中文字段排序(order by)错乱的问题(MySQL数据库)_order by 中文排序 乱_十尾晴天的博客-程序员秘密

问题:HQL查询数据库根据中文字段排序时,发生错乱。原因:网上查了一下原因,说是因为数据库的字符集是utf-8,UTF8 默认校对集是 utf8_general_ci , 它不是按照中文来的。你需要强制让MySQL按中文来排序。MySQL中使用 CONVERT(chineseColumnName USING gbk) 来解决 现在是HQL,不支持convert()怎么办???解决办法:给...

Deeplabv3+安装并运行自己的数据集_如何安装deeplapv3+_niuniu924的博客-程序员秘密

论文:https://arxiv.org/pdf/1802.02611.pdf源码:https://github.com/tensorflow/models/tree/master/research/deeplab环境:ubuntu16.04 + cuda9.0 + cudnn7.6 + tensorflow-gpu1.11cuda9.0 + cudnn7.6安装配置可参照:https...

《Unity Magica Cloth从入门到详解》之(5)MeshSpring_Cxihu树北的博客-程序员秘密

Unity-Chan模型中,将胸部变换[BL]的Z轴设置为前方,因此将[Direction Axis]设置为[Z]。在 Unity-Chan 模型中,胸部中央没有 Transform,所以我手动添加并设置了 [BL] 变换。实际上,在[弹簧方向衰减]和[弹簧距离衰减]的曲线中,在初始状态中包含了在正面方向强烈抖动的设置。例如,如果弹簧的前部是Z轴,则设置为XY移动模式,并将“旋转功率”设置为大约5,则移动将如下所示。在MeshSpring中,需要设置变形器以使网格变形,例如MeshCloth。

Android-深入理解Binder(一)_/dev/binder_天津 唐秙的博客-程序员秘密

文章目录深入理解Binder概述解析MediaServerMediaServer的入口函数ProcessStatedefaultServiceManager注册MediaPlayerService深入理解Binder概述Binder是Android系统提供的一种IPC机制(进程间通信),由于Android是基于Linux内核的,因此除了Binder以外,还存在其他的IPC机制,如管道和Socket等。Android系统基本上可以看作是一个基于Binder通信的C/S架构,Binder就像是网络一样,把

cmd命令关闭被占用端口_用cmd命令关闭端口号_污力阿祖的博客-程序员秘密

1.查询端口进程netstat -nao | findstr “8080”2.关闭进程taskkill /pid 11972 /F

BZOJ2286:[SDOI2011]消耗战(树形DP,虚树)_weixin_33681778的博客-程序员秘密

Description在一场战争中,战场由n个岛屿和n-1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达。现在,我军已经侦查到敌军的总部在编号为1的岛屿,而且他们已经没有足够多的能源维系战斗,我军胜利在望。已知在其他k个岛屿上有丰富能源,为了防止敌军获取能源,我军的任务是炸毁一些桥梁,使得敌军不能到达任何能源丰富的岛屿。由于不同桥梁的材质和结构不同,所以炸毁不同的桥梁有不同的代价,我军希...

随便推点

node.js_nodejs 代码后缀_哲子君的博客-程序员秘密

node.js知识积累node.jsnode.js基础1. Node.js 简介大量的库2. Node.js安装3. 配置全局变量Node.js 入门1. Node.js 组成2. 基础语法和运行1. 运行 node 程序总结:3. npmnodemon工具安装运行终止运行卸载启动nodemon时出错global模块化开发node.js的核心模块JavaScript和CommonJS的对比核心模块path模块URL模块query string模块File System 模块(fs)HTTP模块Global模

java类型和JAVATYPE 对应关系_type对应关系_缘来是你阿的博客-程序员秘密

下表说明用来当作从产生资源的模型的java.sql.Type值之间的关系,其对应的Java物件类型,以及在受支援的JDBC平台上每一个这些类型的实作(若有的话)。   表格也会指出标准Portal Content Publishing范本所支援的类型。其他类型可透过使用自订的范本加以支援。   下列类型会受双位元组语言的限制影响: CHAR和GRAPHIC自动对映到编写模式的CHAR。 LONG ...

如何在Windows Server 2012中手动启用无线网络?_server2012如何开启无线功能_allway2的博客-程序员秘密

如何在Windows Server 2012中手动启用无线网络?发表于2012年9月1日,作者:ncbrady如果您刚刚在笔记本电脑上安装了Server 2012(可在LAB上使用),则可能要进行无线连接,但是,开箱即用,无线功能已禁用,您可能没有携带RJ45电缆,因此轻松进行连接是必须的。以下步骤是手动操作,但我只想发布它们以供您参考,因为毫无疑问,很多人都将尝试做同样的事情。在以...

sjf最短优先调度算法_SJF:最短作业优先调度算法_「已注销」的博客-程序员秘密

sjf最短优先调度算法The Shortest Job Scheduling Algorithm keeps track of the Burst time of all the available processes and then assigns the processor to that process which has the shortest burst time. This is ...

sku实现_lelehouse的博客-程序员秘密

使用vue实现前端sku选择: https://juejin.im/post/5ec243a1f265da7bf24108f2?utm_source=gold_browser_extension图形算法(邻接矩阵):https://juejin.im/post/5de7c053518825125d1497e2

看朋友日志发现的一个ios下block相关的内存管理问题,很奇怪,请大家帮忙一起来回答!_openglnewbee的博客-程序员秘密

http://blog.csdn.net/fengsh998/article/details/38090205这篇文章下面是我的回复,同样的代码只是把变量的定义从局部变量改为类的成员变量就发现了很大的差异,目前还没有找到明确的答案,请大家帮忙看一下!

推荐文章

热门文章

相关标签