Jenkins Pipeline的总体介绍
Jenkins Pipeline 的核心概念:
Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。
Pipeline是Jenkins2.X的最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变
Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。
持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完整过程的自动化表现。软件的每一次更改(提交到源代码管理系统)都要经过一个复杂的过程才能被发布。
Pipeline提供了一组可扩展的工具,通过Pipeline Domain Specific Language(DSL)syntax可以达到Pipeline as Code(Jenkinsfile存储在项目的源代码库)的目的。
1 | Stage:阶段,一个Pipeline可以划分成若干个Stage,每个Stage代表一组操作,例如:“Build”,“Test”,“Deploy”。 |
Pipeline五大特性
1 | 代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑、审查和迭代其CD流程。 |
简单的pipeline
新建 Job:在 Web UI 中点击 New Item -> 输入名称:pipeline-demo -> 选择下面的 Pipeline -> 点击 OK
配置:在最下方的 Pipeline 区域输入如下 Script 脚本,然后点击保存。
1 | node('jnlp') { |
构建:点击左侧区域的 Build Now,可以看到 Job 开始构建了
命令行可以看到:
1 | [root@node1 jenkins2]# kubectl get pods |
简单golang服务pipeline
- 第一步,clone 代码
- 第二步,进行测试,如果测试通过了才继续下面的任务
- 第三步,由于 Dockerfile 基本上都是放入源码中进行管理的,所以我们这里就是直接构建 Docker 镜像了
- 第四步,镜像打包完成,推送到镜像仓库
- 第五步,镜像推送完成,更改 YAML 文件中的镜像 TAG 为这次镜像的 TAG
- 第六步,使用 kubectl 命令行工具进行部署了
script脚本:
1 | node('jnlp') { |
build now:
Stage View 界面:
1 | [root@node1 jenkins]# kubectl get pods |