千家信息网

《Jenkins 2.x实践指南》读书笔记-Jenkins 2.x简介和pipeline示例

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,[TOC]1. Jenkins 2.x简介1.1 pipeline是什么从某种抽象层次上讲,部署流水线(Deployment pipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式。
千家信息网最后更新 2025年01月24日《Jenkins 2.x实践指南》读书笔记-Jenkins 2.x简介和pipeline示例

[TOC]

1. Jenkins 2.x简介

1.1 pipeline是什么

从某种抽象层次上讲,部署流水线(Deployment pipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式。--《持续交付--发布可靠软件的系统方法》(下称《持续交付》)
按《持续交付》中的定义,Jenkins本来就支持pipeline(通常会把部署流水线简称为pipeline,本书会交替使用这两个术语),只是一开始不叫pipeline,而叫任务。
Jenkins 1.x只能通过界面手动操作来"描述"部署流水线。Jenkins 2.x终于支持pipeline as code了,可以通过"代码"来描述部署流水线。
使用"代码"而不是UI的意义在于:

  • 更好地版本化:将pipeline提交到软件版本库中进行版本控制。
  • 更好地协作:pipeline的每次修改对所有人都是可见的。除此之外,还可以对pipeline进行代码审查。
  • 更好的重用性:手动操作没法重用,但是代码可以重用。
    本书全面拥抱pipeline as code,放弃依赖手动操作的自由风格的项目(FreeStyle project)。

1.2 Jenkinsfile又是什么

Jenkinsfile就是一个文本文件,也就是部署流水线概念在Jenkins中的表现形式。像Dockerfile之于Docker。所有部署流水线的逻辑都写在Jenkinsfile中。

1.3 pipeline语法的选择

Jenkins pipeline有2种语法:脚本式(Scripted)语法和声明式(Declar-ative)语法。
脚本式语法使用Groovy语言,其语法灵活、可扩展,但是也意味着更复杂。再者,Groovy语言的学习成本对于(不使用Groovy的)开发团队来说通常是不必要的。所以才有了声明式语法,一种提供更简单、更结构化(more opinionated)的语法。

  1. pipeline插件从2.5版本开始,才同时支持两种格式的语法;
  2. 推荐主要使用声明式语法,脚本式语法作为辅助;

1.4 pipeline版本控制化

为了便于维护和协作,使用版本仓库对pipeline进行版本控制是生产使用过程中的最优选择。
本人实践过程中也是推荐书中提到的使用Git作为版本控制仓库,使用Jenkins ssh私钥作为凭证。

2. 利用github仓库pipeline进行构建

以下为本实验地址:
https://github.com/ygqygq2/jenkins2_learning_install_tools

目的
使用jenkins拉取git仓库内pipeline构建maven项目,达到了解pipeline基本用法。

环境

  • github仓库
  • jenkins(已整合kubernetes)

实践

  1. 进入Manage Jenkins→Global Tool Configuration->Maven页添加mvn-3.5.4

  1. 进入Manage Jenkins→Global Tool Configuration→JDK页添加jdk-8u172

注意这里需要oracle帐户验证。

  1. 添加pipeline项目

  1. 构建

因为jenkins-slave是整合kubernetes的,因此每次构建都会安装tools,如上图可以看出,maven安装包需要从官方下载,这对效率影响非常大。
若想优化可以考虑jenkins-slave镜像中直接整合maven,而不是使用jenkins tools;还可以使用docker-in-docker配合maven镜像。

语法 版本 流水 流水线 仓库 控制 代码 手动 脚本 软件 过程 项目 支持 整合 实践 形式 语言 镜像 协作 推荐 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 通信行业网络安全工程师工资 重庆财务软件开发机构 炉石传说服务器恢复 猫王(广东)互联网科技 最新免费代理服务器 互联网金融金融科技科技金融 360安全卫士服务器版本 中小学生网络安全相关常识 数据库是怎么连接到系统的 监控备份管理服务器 睢宁网络营销软件开发 查询服务器php版本 通信网络安全防护管理系统登录 app软件开发用什么程序编写 电子商务中的网络安全问题论文 重庆软件开发前端大专招聘 腾讯轻量应用服务器数据库 绿园区通用网络技术咨询经验丰富 jsp链接 数据库 服务器重启后无法连接服务器 盗版软件开发出的软件上线 湖南省专科软件开发 数据库模型应当满足 如何在小程序里导入数据库 武汉工业信息化采集软件开发 数据库数据转储示意图 dean数据库 两个不同服务器的数据库怎么连接 请经信委授课网络安全 网络安全组织协调领导小组
0