jenkins 持续集成和交付——pipeline(五)
前言
整理一下pipeline。
正文
介绍
什么是pipeline呢?
根据前面的所得,我们知道,以前都是模板形式,但是如果有些复杂的项目,需要用更加自定义的写法,那么就有了pipeline,也就是官方给我们的接口,让我们实现更加复制的项目。
pipeline脚本是由groovy实现的,但是我们去写一个构件脚本,也没必要去知道这个groovy实现。
pipeline支持两种语法,Declarative(声明式的)和script pipline语法。
这两种有啥区别,区别就是Declarative更加简单,因为是声明的,我们写代码也知道这种声明的一般都是非常简洁,富有规律的,官方现在也是推荐这种申明的。
pipline 存储方式有两种,一种是写在我们的jenkins的数据库中,也就是说由我们的jenkins 去管理。
另一种是写在我们的项目中,然后jenkins去调用这个脚本,一般为了方便写在jenkinsFile中,有些项目成熟到一定时候,基本不会变动的情况,为了方便会放在jenkins 的衍生项目中,这又是后话了。
使用
在使用这个pipeline 中,我们要安装一下pipeline插件。
然后就出现了下面这个东西:

接下来就是我们就可以创建一下流水线项目了。
好吧,开始。目的就是把我们前面的构建项目用pipeline实现一遍。
我创建了一个名字叫java_pipelien 的pipeline项目,里面是这样的,我选中了这个hello word,这个是个声明式的pipeline。
如下:

pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
简单解释一下是什么意思。
上面有一个agent 是代理的意思,后面docker 中我会介绍,这里不详细介绍。
stages 就是阶段。里面就是一步一步的小阶段了,一个阶段里面又可以分为步骤,steps就是步骤了,就是这么划分的。
好吧,直接进入例子,把前面的例子用pipeline重写一遍。
那么第一步我们就是要去拉取代码,那么就去拉取一下吧。
1.拉取代码
那么代码怎么写呢?是否我们要去学一下pipeline呢?当然不完全,前期我们可以依靠一些工具。
项目里面有一个流水线语法:

点击这个,我们可以看自己进去生成一些code。
这样选择一下:

点击生成代码后。
下面是生成的code:
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '0c040834-78c4-4ba0-b6e3-b7cc9e9184c6', url: 'http://localhost:3000/aoximin/springbootTest.git']]])
这就是去拉取代码的步骤。
然后我们可以复制过去:

好吧,现在可以build 一下,试一下。

这样就可以看到去拉取了代码了,并且成功了。
2.开始构建项目
因为我们安装了maven,其实我们要做的就是如何实现maven脚本的调用。

然后复制过去。

然后可以自己试一下哈。
3.发布
也就是我们需要远程部署,那么这个怎么弄呢?前面我们是通过插件来搞定的,难道要我们自己用脚本来写,怎么写呢?
实际上jenkins 插件有规范的,既然是有规范的,那么其实我们可以调用插件,而不需要自己去实现。
安装完前面的发布插件,那么就会有这个东西。

和以前一样填写。
然后生成,然后贴过去。
4.结果
看下结果。

成功了。
根据前面所说,我们希望脚本放置在项目中,那么这个怎么弄呢?
5.jenkinsfile
在你的项目下创建一个jenkinsfile,然后把你的pipeline代码放进去。
如下:

然后上传。
接下来就是就开始实践了。
写法如下:

然后构建即可,然后就成功了。
结
下一节,介绍触发器。
jenkins 持续集成和交付——pipeline(五)的更多相关文章
- Jenkins 从小白入门到企业实践打怪放弃之路系列笔记 【持续集成与交付快速入门必备】
Jenkins 从小白入门到企业实践打怪放弃之路系列笔记 [持续集成与交付快速入门必备]
- CentOS 7 Gitlab+Jenkins持续集成+自动化部署
基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- 手把手教你利用Jenkins持续集成iOS项目
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...
- Jenkins持续集成(上)-Windows下安装Jenkins
环境:Windows 2008 R2.Jenkins2.235.1: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成SLB.配置管理.Jenkins)> ...
- 什么是 Jenkins? 运用Jenkins持续集成
[注]本文译自:https://www.edureka.co/blog/what-is-jenkins/ 持续集成是 DevOps 最重要的部分,用于集成各个 DevOps 阶段.Jenkins ...
- jenkins持续集成go应用
上文讲到使用supervisor管理我们的终端应用,这次讲一下使用jenkins持续集成 下面分别讲一下pipeline里每一个段落的含义 agent any 使用任意节点构建 parameters ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(下)
基于Kubernetes/K8S构建Jenkins持续集成平台(下) Jenkins-Master-Slave架构图回顾: 安装和配置NFS NFS简介 NFS(Network File System ...
- python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?
python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windo ...
- jenkins持续集成源码管理选项为None,构建失败找不到git.exe解决办法
我的jenkins版本为Jenkins ver. 2.19.1 1.源码管理选项只有None的解决办法: 在插件管理中心,搜索对应的源码管理插件这里以git为例,搜索git plugin点击右下角的安 ...
随机推荐
- spring注解版 图文教程
注解方式,需要配置contextp空间,@component若无参数,那就是只能类方式加载 注解开发不用set 构造器 注入函数 注解注入属性 管理第三方bean 示例: 数据库的类写在一个文件,文件 ...
- centos 磁盘满
1.使用命令:df -lk 找到已满磁盘 2.使用命令:du --max-depth=1 -h 查找大文件,删除
- 清除 gitee.io 页面强缓存 Chrome浏览器 F12 找到页面 右键 Clear browser cache
清除 gitee.io 页面强缓存 Chrome浏览器 F12 找到页面 右键 Clear browser cache
- 解决linux平台无法使用getch()的问题
参考https://www.cnblogs.com/jiangxinnju/p/5516906.html#:~:text=%E5%8F%A6%E5%A4%96%E5%A4%A7%E5%AE%B6%E5 ...
- P2670 [NOIP2015 普及组] 扫雷游戏
题目背景 NOIP2015 普及组 T2 题目描述 扫雷游戏是一款十分经典的单机小游戏.在 nn 行 mm 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一 ...
- Ubuntu 22.04 源码安装ST-Link V2过程详解
一 首先安装依赖工具: A 安装预编译库: sudo apt-get install git make cmake libusb-1.0-0-dev B 安装gcc库: sudo apt-get in ...
- 基于4G的智能工牌解决方案特色解析
前记 随着数字化的不断发展以及cat1模块的竞争加剧.cat1无论从成本或者功耗上,都进化的特别快.这样的前提下,让基于4G可穿戴产品逐渐成为现实可穿戴产品必备.能解决以前很多不能解决的问题. 作 ...
- Web安全前端基础
Web安全前端基础 1.Web前端介绍 2.前端代码语言简单学习 一.Web前端介绍 web前端就是前端网络编程,也被认为是用户端编程,是为了网页或者网页应用,而编写HTML,CSS以及JS代码,所以 ...
- tomcat报错Exception loading sessions from persistent storage解决方案
现象:项目在重启时报错:严重: Exception loading sessions from persistent storage的问题.该问题的原因是tomcat的session持久化机制引起的, ...
- C#调用百度翻译API自动将中文转化为英文
1.百度翻译开放平台在平台申请你自己的appid,和密钥 2.开通后就在我提供的gitee链接下载代码,直接修改秘钥和appid就能使用如下图所示 3.Gitee链接:链接 4.https://git ...