Jenkins

Java+Maven+TestNG+GoCD - 部署篇

2020-06-11  本文已影响0人  爱sa笑的菇凉

       GoCD 是一个开源的持续交付/持续部署的系统,可以构建,自动化测试,自动部署等等,和Jenkins类似。但是GoCD的设计理念是持续部署,注重 workflows 的组合,流水线化构建-测试-发布。

       在GoCD系统中,主要由两部分组成,Go-Server和Go-Agent。 服务器(server)来控制一切,它给用户提供系统的界面,为代理提供工作, 它不执行任何用户指定的“工作”。代理(Agent)执行系统用户或管理员配置的所有工作,例如:运行命令、执行部署等。所以首先需要需要安装Server和至少安装一个Agent。

       划重点:本文主要的受众人群是测试人员,上边文章我们讲了如何创建一个Maven+TestNG+Java的测试项目,本文讲解如何将这样一个测试代码在GoCD上持续集成,且展示报告。

安装服务器(Server)和代理(Agent)

注意: Java 需要安装 version11

  1. 选择你的系统 (以 Mac OS X 为例)
  2. 下载最新的稳定的服务(Server)和代理(Agent),放在自定义的一个路径下。本文使用的GoCD版本为19.9.0,下载地址: https://www.gocd.org/download/#osx
  3. 解压服务(Server)安装包,打开终端,进入go-server-${version}文件夹,执行脚本 ./bin/go-server console,将在前台启动GoCD的服务(Server)
    StartServer.png
  4. 解压代理(Agent)安装包,打开另一个终端,进入go-agent-${version}文件夹,执行脚本 ./bin/go-agent console,将在前台启动GoCD的代理(Agent)。我们可以在一个机器上启动多个代理,也可以在不同的系统上启动代理,可以实现不同的环境需求。
    StartAgent.png ServerAndAgent.png
  5. 服务器(Server)安装成功后,默认的端口号是 8153/8154 (HTTPS)。 你就可以访问 https://localhost:8154, 如下图所示: NewPipeline.png
  6. 代理(Agent)安装完成后,进入导航栏Agents页面,将会有一个代理显示在此页面,如下图所示: NewAgent.png
  7. 安装完成后,我们就可以开始创建pipeline了。

此外,除了在前台启动服务和代理的脚本以外,GoCD还有其他的一些脚本,如下:

脚本 描述
./bin/go-server console GoCD 服务在前台启动
./bin/go-server start GoCD服务在后台启动
./bin/go-server stop 停止GoCD服务器
./bin/go-server restart 重启GoCD服务器
./bin/go-agent console GoCD 代理在前台启动
./bin/go-agent start GoCD代理在后台启动
./bin/go-agent stop 停止GoCD代理
./bin/go-agent restart 重启GoCD代理

创建Pipeline

GoCD名词解释:

      在开始创建pipeline之前,我们先了解一些GoCD的名词的概念:

1. Material

      可以选择git作为material, 填写Git仓库或者GitHub地址, 例如: https://github.com/gocd-contrib/getting-started-repo.git,之后点击Test Connection按钮,如果链接OK, 说明设置成功,如下图所示。
       Material 是Pipeline开始执行的条件,一旦git仓库有新的代码提交,服务会持续check,获取到有更新,就会触发pipline运行。而且每一个pipeline可以有多个Material去控制。

SettingMaterial.png
2. Pipeline
      下图就是GoCD官网的解释图,形象的展现了pipeline,stage,job,task之间的关系。 pipeline.png
创建pipeline:

      接下来我们开始创建一个pipeline。创建pipeline的名字,一个pipeline至少要有一个stage,stage至少需要一个job,一个job至少需要一个task。所以初始化pipeline的时候我们需要设置pipeline的触发条件,配置项目的的仓库地址,然后给pipeline,stage,job启名字,在写一个task的命令,保存以后一个简单的pipeline的架子就搭建起来了,如下图所示:


1. Pipeline的配置:

      点击上图pipeline的设置按钮,就可以进入pipeline的配置页面,点击pipeline,这个页面有多个Tab,都是对pipeline的配置。在Stages tab页面可以添加新的stage。
      打开material,这里需要配置Destination Directory 为仓库的名字。之后Agent会clone对应的代码在这个路径下。这个路径是一个相对路径 {存放下载的Agent包的地址}/pipelines/{pipeline名字}/{仓库的名字}。 当一个pipeline有多个material时,每个material都有自己对应的仓库名字,填写在Destination Directory。

2. Stage的配置:

      点击对应的stage,也有多个tab对stage进行配置。可以在Jobs页面添加新的Jobs。如果你的这个Stage需要对代码进行操作,就需要勾选Fetch Material,这样就会在执行Stage的时候先Clone代码到Agent上。


3. Job的配置:

      点击对应的Job,也有很多tab对job进行配置。

4. Task的配置:

       task就是Command,GoCD支持很多种command,可以先LookUp然后选择对应的命令,就可以展示在左边。这里我们是使用maven打包,所以直接可以用 mvn clean test。很多命令都是基于项目的路径执行,所以这里需要配置Working Directory 为仓库的名称。


       到这里我们测试的配置已经结束,可以Trigger pipeline,运行结束后,你就可以在TestResults Tab看到测试报告。TestNG的报告有点丑,接下来会使用其他的插件来美化报告。

想要学习Jenkins的可以看这里:
Java+Maven+TestNG+Jenkins - 部署篇

上一篇下一篇

猜你喜欢

热点阅读