2023年9月26日小于 1 分钟
- 技术栈59
- 数据库51
- Devops19
- mysql17
- 面试15
- developer12
- redis12
- devops11
- linux10
- Python10
- ES10
- 分布式版本控制系统9
- mongodb7
- Devops基础6
- Golang5
- Flask5
- 基础5
- 资源4
- python3
- nginx3
- Django2
- 其他2
- jenkins2
- 剪辑1
- 博文1
- Golang基础1
- 网络1
- Celery1
- editing1
- pr1
- 远程工具1
- 博客搭建指南1
- 组件1
- docker1
- es1
- harbor1
- k8s基础1
- 工程落地方案1
共享库使用
- 优势:
- 如果要更改步骤,不需要再更改 jenkins 的步骤,直接更改文件即可。
- 多项目可以共同引用
在gitlab新建仓库JenkinsLibrary
- 在仓库里新建文件夹
src/org/devops
- 在仓库里新建文件夹
vars
- 新建
jenkinsfile
文件 - [jenkinsfile内容](jenkinsfile · zhangtq/JenkinsLibrary - 码云 - 开源中国 (gitee.com))
2023年9月26日小于 1 分钟
1. 认识Pipleine
1.1 Pipeline是什么?
- Pipeline是Jenkins的核心功能,提供一组可扩展的工具。
- 通过Pipeline 的DSL语法可以完成从简单到复杂的交付流水线实现。
- jenkins的Pipeline是通过Jenkinsfile(文本文件)来实现的。
- 这个文件可以定义Jenkins的执行步骤,例如检出代码。
1.2 Jenkinsfile
- Jenkinsfile使用两种语法进行编写,分别是声明式和脚本式。
- 声明式和脚本式的流水线从根本上是不同的。
- 声明式是jenkins流水线更友好的特性。
- 脚本式的流水线语法,提供更丰富的语法特性。
- 声明式流水线使编写和读取流水线代码更容易设计。
2023年9月26日大约 3 分钟
简介
Jenkins是一个自动化服务器,目前发展超过15年,比较成熟的CI工具(也可以CD)
能够实现自动化集成发布。建立好流水线后,期间无需专业运维人员介入,开发
人员随时发布部署,任性!。
. 部分应用场景:
. 集成svn/git客户端实现源代码下载检出
. 集成maven/ant/gradle/npm等构建工具实现源码编译打包单元测试
. 集成sonarqube对源代码进行质量检查(坏味道、复杂度、新增bug等)
. 集成saltstack/Ansible实现自动化部署发布
. 集成Jmeter/soar/kubernetes/.....
. 可以自定义插件或者脚本通过jenkins传参运行
. 可以说Jenkins比较灵活插件资源丰富,日常运维工作都可以自动化。
2023年9月26日小于 1 分钟
集成工具
-
通过流水线的方式,在jenkisn里配置全局变量(npm, ant, maven, gradle),通过项目里配置参数buildShell来控制实际的构建工具,实现用户可以选择构建工具来打包的功能
-
项目准备:
- 安装 npm ant maven gradle
- 配置项目参数
- 配置系统管理----> 全局变量配置
简单解析
-
一条流水线通过Jenkinsfile描述
-
安装声明式插件pipeline: Declarative
-
Jenkinsfile组成:
-
指定node节点/workspace
-
指定指定运行选项
image-20230926103602452 -
指定stages阶段
-
在这里我添加了三个阶段
- Getcode
- Build
- codescan
image-20230926103745324
-
-
指定构建后操作
-
always{} :总是执行脚本片段
-
success{}: 成功后执行
-
failure{}: 失败后执行
-
aborted{}: 取消后执行
-
currendBuild 是一个全局变量
- description: 构建描述
image-20230926103945025 -
-
2023年9月26日大约 10 分钟