Jenkinfile入门:Pipeline as code

Jenkinfile入门:Pipeline as code

小编 DevOps视角

什么是pipeline


在《持续交付》中是这样介绍Pipeline的,Pipeline是指从软件版本控制库到用户手中这一过程的自动化表现形式。

在Jenkins的官方文档中,流水线是用户定义的一个CD流水线模型 。流水线的代码定义了整个的构建过程, 他通常包括构建, 测试和交付应用程序的阶段 。

Jenkinsfile


Jenkinsfile就是一个文本文件,就像Dockerfile对于Docker一样。
Jenkins默认是不支持Jenkinfiles的,需要安装Pipeline插件才能够支持。正是由于Jenkinsfile,Jenkins才能实现"Pipeline as code"。

pipeline语法

语言


Goovy语言被选择作为基础来实现pipeline,所以在写脚本式pipeline时,就是在写Groovy代码。语法有脚本式语法和声明式语法两种。pipeline插件从2.5版本开始才支持两种语法。

语法


脚本式语法

脚本式语法灵活、可扩展,但也意味着更复杂。


node {
    stage('Build') {
      //执行构建
    }

    stage('Test') {
      //执行测试
    }

    stage('Deploy') {
        try{
            //执行部署
        }catch(err){
            currentBuild.result = "FAILURE"
            main body "project build error is here:${env.BUILD_URL}"
            from: 'xxx@yy.com'
            replyto: 'yyy@yy.com'
            subject: 'project build failed'
            to: 'zzz@yy.com'
            throw err
        }
    }
}

声明式语法

由于脚本式语法比较复杂,才有了声明式语法,提供更简单、更结构化的语法。


pipeline {
    agent any
    stages {
        stage('Build'){
            steps {
                echo "building"
            }
        }
        stage('Test'){
            steps {
                echo "testing"
            }
        }
        stage('Deploy'){
            steps {
                echo "deploying"
            }
        }
        post {
            failure {
                mailto: "xxx@yy.com", subject: 'The pipeline  failed'
            }
        }
    }
}

创建第一个pipeline

安装pipeline插件

【系统管理】->【插件管理】->【可选插件】 搜索Pipeline

Jenkinfile入门:Pipeline as code

创建pipeline任务

Jenkinfile入门:Pipeline as code

Jenkinfile入门:Pipeline as code

进行构建

Jenkinfile入门:Pipeline as code
Jenkinfile入门:Pipeline as code
Jenkinfile入门:Pipeline as code

从版本控制拉去pipeline


这里是使用github,从 github上获取项目的Jenkinsfile进行构建。
需要安装Git plugin插件。

配置凭证(credentials)


Jenkinfile入门:Pipeline as code

Jenkinfile入门:Pipeline as code
Jenkinfile入门:Pipeline as code

配置pipeline


Jenkinfile入门:Pipeline as code

进行构建

Jenkinfile入门:Pipeline as code
Jenkinfile入门:Pipeline as code

Jenkinfile入门:Pipeline as code

结语


这里先不介绍Pipeline使用Maven进行构建了。使用Maven进行构建时,有两种方法。一种是使用Jenkins安装Maven并进行构建,一种是使用手动安装Maven进行构建

上一篇:pipeline学习


下一篇:不要慌,这个EXCEL模板帮你完成数据报表