Jenkins Pipelines+Docker执行RobotFramework自动化测试
疯狂的机器人 人气:0一、Jenkins Pipelines介绍
Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。
Pipeline是Jenkins2.X的最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变
Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。
持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完整过程的自动化表现。软件的每一次更改(提交到源代码管理系统)都要经过一个复杂的过程才能被发布。
Pipeline提供了一组可扩展的工具,通过Pipeline Domain Specific Language(DSL)syntax可以达到Pipeline as Code(Jenkinsfile存储在项目的源代码库)的目的。
二、Jenkins Pipelines语法
1.常用关键字
关键字 | 描述 |
pipeline | 声明式的pipeline脚本 |
agent | 执行任务的代理,执行节点,如:any,none, label, node,docker,dockerfile |
stages | 阶段集合,包裹所有的阶段(例如:打包,部署等各个阶段) |
stage | 阶段,被stages包裹,一个stages可以有多个stage,例如:“Build”,“Test”,“Deploy”。 |
steps | 步骤,为每个阶段的最小执行单元,被stage包裹 |
post | 执行构建后的操作,根据构建结果来执行对应的操作,如:always、changed、failure、success、unstable、aborted |
environment | 声明一个全局变量或者步骤内部的局部变量,如:environment { P1="parameters 1" } |
options |
提供给脚本更多的选项。 buildDiscarder:指定build history与console的保存数量 |
parameters | 提供pipeline运行的参数,如:parameters { string(name: 'P1', defaultValue: 'it is p1', description: 'it is p1') booleanParam(name: 'P2', defaultValue: true, description: 'it is p2') } |
triggers | 触发器是自动化运行pipeline的方法,例如cron,pollSCM,或者upstream |
tools | 用于引用配置好的工具,
tools { |
input | 暂停pipeline,提示输入内容 |
三、创建一个Jenkins Pipelines
1.新建pipelines
Jenkins首页->新建任务->输入一个任务名->选择流水线->点击确认
2.配置General、构建触发器
这两部分的配置请参照之前的一篇文章,本章主要是讲解pipelines,所以不在重复描述,链接如下:
https://www.cnblogs.com/airb/p/13229354.html
3.配置pipelines
pipelines脚本:
pipeline { agent any environment{ MAVEN_HOME = "/var/lib/jenkins/workspace/ADCS_API_QAT_BVT" //主目录 dockerfile_path = '/var/lib/jenkins/workspace/ADCS_API_QAT_BVT/环境搭建/Dockerfile' //Dockerfile文件目录 } stages { stage('Checkout') { steps { echo 'Git拉取代码' git credentialsId: 'Git密码', url: 'Git地址' } } stage('Docker') { steps { echo 'Docker环境构建' sh 'docker build -t python:3.7.9 -f ${dockerfile_path} .' //构建Docker环境 } } stage('Test') { steps { echo '执行测试用例' sh 'docker run -i -v ${MAVEN_HOME}:/mnt python:3.7.9 robot --include BVT -d ${MAVEN_HOME}/report AGGS_API' } } } post { always { echo '清空文件' deleteDir() //清空所有文件 } } }
4.阶段视图
任务配置完成后点击立即构建,可查看pipelines阶段视图
5.查看Pipelines运行日志
构建完成后->点击左下角Console Output
加载全部内容