Jenkins 使用 Pipeline 构建部署 Spring Boot 应用

前言

在本文开始前可以先看看这篇文章:
Jenkins + Gitlab + Maven + Tomcat 持续集成部署 SpringBoot 应用实践,除了 Jenkins 构建项目的方式不一样之外,其他配置都一样。

关于 pipeline 的简介和 pipeline 的两种语法模型的区别可以看这篇文章: Pipeline 声明式和脚本式的主要区别

Spring Boot 项目准备

这里创建了一个简单的 Spring Boot 项目,功能简单,运行后会提供一个可访问的 index 页面。结构图如下:

Jenkins 使用 Pipeline 构建部署 Spring Boot 应用_第1张图片

项目根路径有个 Jenkinsfile,关于该项目的构建与部署步骤等任务都被记录在该文件中,随着项目一起进行版本化迭代。

Jenkinsfile 里填写 pipeline 如下,这里采用的是声明式语法,这里分为 3 个 stage 分别对应代码 checkout,编译构建以及项目部署三个阶段,最后会有 email 推送每次构建的结果。

pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/${branch}']],
                doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],
                userRemoteConfigs: [[credentialsId: 'Jenkins_SSH_Key', url:
                '[email protected]:yekongle-test/ci-test.git']]])
            }
        }
        stage('编译构建') {
            steps {
                sh label: '', script: 'mvn clean package'
            }
        }
        stage('项目部署') {
            steps {
                deploy adapters: [tomcat8(credentialsId: 'Tomcat-Auth', path: '', url: 'http://192.168.43.206:8080')], contextPath: null,
                war: 'target/*.war'
            }
        }
    }
    post {
        always {
            emailext(
                subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} -${BUILD_STATUS}!',
                body: '${FILE,path="email.html"}',
                to: '[email protected]'
            )
        }
    }
}

同样将该项目推送到本地gitlab 上并配置好 webhook。

Jenkins 使用 Pipeline 构建部署 Spring Boot 应用_第2张图片

Jenkins 配置 pipeline

首先去插件中心安装 pipeline 插件

在这里插入图片描述

安装完插件后创建一个新 item 时可以看到可以选择一个 pipeline 类型的项目。
Jenkins 使用 Pipeline 构建部署 Spring Boot 应用_第3张图片

然后关于 pipeline 的配置可以参考下图,其中 pipeline 的 执行代码会引用到 Spring Boot 项目根路径的 Jenkinsfile。

Jenkins 使用 Pipeline 构建部署 Spring Boot 应用_第4张图片

构建并部署

保存 pipeline 配置后,可以通过提交代码到 master 分支触发构建任务,也可以直接在 Jenkins 手动启动一次 build up.

Jenkins 使用 Pipeline 构建部署 Spring Boot 应用_第5张图片

观察上图,pipeline 任务可以以可视化视图的形式展示出来,可以直观地看到每一个 stage 的执行时间和执行结果。
Jenkins 使用 Pipeline 构建部署 Spring Boot 应用_第6张图片

执行成功后会将项目 deploy 到 tomcat 容器,点击访问

Jenkins 使用 Pipeline 构建部署 Spring Boot 应用_第7张图片

你可能感兴趣的:(Devops,Spring,Boot,devops,jenkins,pipeline)