Jenkins Pipeline 介绍和实战

本文介绍了Jenkins Pipeline的原理和应用,包括Pipeline的定义、使用原因及其功能优点。详细阐述了如何通过Pipeline实现自动化构建和扫描,并强调了Pipeline的持久性、可扩展性和代码化管理等核心特性。
摘要由CSDN通过智能技术生成

一、概述

基于 Docker 集成 CI 环境。涉及技术:Linux(Ubuntu 14.04), Docker, Jenkins, Git/Gitlab, Web/Httpbin, Python/Pytest, UI/Selenium, Robotframework, Grid Server, Appium 等。

架构图如下:

在这里插入图片描述

二、什么是Pipeline?

Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins。Pipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline。

通常,此“Pipeline代码”将被写入 Jenkinsfile项目的源代码控制存储库,例如:

    pipeline {
        agent any (1)
    
        stages { 
            stage('build') { (2)
                steps { (3)
                    sh 'make' (4)
                }
            }
            stage('sita'){
                steps {
                    sh 'python script.py'
                    junit 'reports/**/*.xml' (5)
                }
            }
        }
    }
  1. agent 表示Jenkins应该为Pipeline的这一部分分配一个执行者和工作区。
  2. stage 描述了这条Pipeline的一个阶段。
  3. steps 描述了要在其中运行的步骤 stage
  4. sh 执行给定的shell命令
  5. junit是由JUnit插件提供的 用于聚合测试报告的Pipeline步骤。

三、为什么使用Pipeline?

Jenkins从根本上讲是一种支持多种自动化模式的自动化引擎。Pipeline在Jenkins上添加了一套强大的自动化工具,支持从简单的连续集成到全面的连续输送Pipeline的用例。通过建模一系列相关任务,用户可以利用Pipeline 的许多功能。

Pipeline的功能和优点:

  1. 持久性:在jenkins的master按计划和非计划的重启后,pipeline的job仍然能够工作,不受影响。其实理解起来也很简单,jenkins的master和agent通过ssh连接,如果你知道nohup或disown的话,就可以理解为啥master的重启不会影响agent上的job继续运行。
  2. 可暂停性:pipeline基于groovy可以实现job的暂停和等待用户的输入或批准然后继续执行。
  3. 更灵活的并行执行,更强的依赖控制,通过groovy脚本可以实现step,stage间的并行执行,和更复杂的相互依赖关系。
  4. 可扩展性:通过groovy的编程更容易的扩展插件。
  5. 设计Pipeline = 设计代码,很优雅
  6. As Code:集中管理CI脚本、用代码库来管理脚本、从代码库直接读取脚本,从而可以将项目CI迅速拉起来!

四、Pipeline 实现 build & scan

一、conf 配置Pipeline各个需要执行的参数: qa.xxx.com-b-master.yaml

    credentials_id: github-xxx-jenkins 
    git_base: git@github.xxx.com
    
    # If the container is running on a host who needs to resolve qa.xindong.com
    # differently, you may need to pass a host:ip mapping for the container to 
    # resolve qa.xindong.com correctly. This could be done by setting a global
    # environment variable 'ADD_HOST'. e.g. qa.xindong.com:10.10.10.100
    add_host
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值