Jenkins 2.0开始推行Pipeline as Code,实现从CI到CD的转变。 Pipeline实际上是一套Groovy DSL,用Groovy脚本描述CI/CD的流程,Jenkins可以从代码库中获取脚本,实现了Pipeline as Code。Pipeline将原来独立运行的多个任务连接起来,可以实现更加复杂的CI/CD流程。

为什么要使用Pipeline?对于实践微服务的团队,产品有很多服务组成,传统的在Jenkins中集中进行job配置的方式会成为瓶颈,微服务团队会将CI Job的配置和服务的发布交给具体负责某个服务的团队,这正需要Pipeline as Code; 除此之外,一次产品的发布会涉及到多个服务的协同发布,用单个CI Job实现起来会十分困难,使用Pipeline可以很好的完成这个需求。

一、Pipeline的基本概念和Jenkinsfile

  • Node:一个Node就是一个Jenkins节点,可以是Master,也可以是Slave,是Pipeline中具体Step的运行环境。
  • Stage:一个Pipeline有多个Stage组成,每个Stage包含一组Step。注意一个Stage可以跨多个Node执行,即Stage实际上是Step的逻辑分组。
  • Step:是最基本的运行单元,可以是创建一个目录、从代码库中checkout代码、执行一个shell命令、构建Docker镜像、将服务发布到Kubernetes集群中。Step由Jenkins和Jenkins各种插件提供。

二、使用Jenkins中pipeline风格构建项目,共gitee中拉取代码自动执行测试

1.gitee中需要创建仓库上传代码

Jenkins中pipeline风格构建项目,从gitee中拉取代码自动执行接口测试_Jenkins

2.配置Jenkins

Jenkins中pipeline风格构建项目,从gitee中拉取代码自动执行接口测试_Jenkins_02

b.选择项目名称、项目风格

Jenkins中pipeline风格构建项目,从gitee中拉取代码自动执行接口测试_Jenkins_03

c.新增凭据(只需要新增一次即可,第二次如果还是从相同仓库拉去不需要在新增凭据)

注意:

  新增凭据这里就是为了和gitee建立连接

Jenkins中pipeline风格构建项目,从gitee中拉取代码自动执行接口测试_Jenkins_04

 弹窗内容,注意这里需要使用ssh连接,需要一对密钥,公钥保存在gitee中,私钥在下面添加

Jenkins中pipeline风格构建项目,从gitee中拉取代码自动执行接口测试_Jenkins_05

 d.设置执行代码

Jenkins中pipeline风格构建项目,从gitee中拉取代码自动执行接口测试_Jenkins_06

代码如下:

node{
    stage 'checkout'
    git([url:'https://gitee.com/haugus/automated-testing-keyword-driven.git',brabch:"master"])
    
    stage 'run'
    sh 'python run.py'
}

注意:

由于上述配置的是ssh方式连接,所有项目在gitee中的地址,必须写出ssh地址,类似:git@gitee.com:haugus/automated-testing-keyword-driven.git

e.注意

在构建之前,由于我这里是拉去的代码是接口自动化测试的代码,所以Jenkins服务器要能执行必须要有python3的环境,以及相应的库

点击这里查看centos中升级python环境

pip install requests
pip install openpyxl
pip install ddt

f.点击 Build Now 构建执行项目

Jenkins中pipeline风格构建项目,从gitee中拉取代码自动执行接口测试_Jenkins_07

g.查看结果

Jenkins中pipeline风格构建项目,从gitee中拉取代码自动执行接口测试_Jenkins_08