前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企业DevOps之路:Jenkins 流水线

企业DevOps之路:Jenkins 流水线

作者头像
BUG弄潮儿
发布2022-04-15 15:40:03
6220
发布2022-04-15 15:40:03
举报
文章被收录于专栏:JAVA乐园

1. Pipeline 概述

Pipeline 即流水线,是 jenkins2.X 的新特性,是 jenkins 官方推荐使用的持续集成方案。与传统的自由风格项目不同,它是通过 jenkins DSL 编写代码来实现。相比于之前用户只能通过 Web 界面进行配置的方式来定义 Jenkins 任务,现在通过使用 jenkins DSLGroovy 语言编写程序,用户可以定义流水线并执行各种任务。

Jenkins pipeline包含两类元素,分别是stagessteps。如图:

  • step 代表单一的操作;告诉 Jenkins 做什么。比如,代码从仓库检出代码,执行脚本
  • stage 等于一系列 step 的组合,通常来表示 Jenkins pipeline 进程的可示化。例如,Build、Test、Deploy等

更详细的资料请查看官网

代码语言:javascript
复制
https://www.jenkins.io/doc/book/pipeline/

Pipeline 有两种语法,分别是声明式和脚本式

声明式语法

代码语言:javascript
复制
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                // TODO
            }
        }
        stage('Test') {
            steps {
                // TODO
            }
        }
        stage('Deploy') {
            steps {
                // TODO
            }
        }
    }
}
  1. agent any:表示任意一个可用代理节点上执行该Pipeline
  2. stage('Build'):定义阶段
  3. steps {}:阶段执行的步骤

脚本式语法

代码语言:javascript
复制
node {
    stage('Build') {
        // TODO
    }
    stage('Test') {
        // TODO
    }
    stage('Deploy') {
        // TODO
    }
}
  1. node:表示任意一个可用代理节点上执行该Pipeline
  2. stage('Build') {}:定义阶段。在脚本式语法中 stage 代码块是可选的;不过明确写上的话可以让每个阶段的任务更清晰

3. 安装 Jenkins Pipeline 插件

  • 安装 Pipeline 和 Pipeline Maven Integration 插件

Manage Jenkins -> Manage Plugins

安装后,重启 Tomcat。

3. 流水线编译与部署

  • 创建流水线任务

新建Item

  • 配置流水线任务

初学者对于 Pipeline 的脚本肯定无从入手的;但是 Pipeline 提供了一个非常有用的帮助文档。

代码语言:javascript
复制
http://127.0.0.1:8080/jenkins/job/Pipeline_maven/pipeline-syntax/

Pipeline 脚本有两种编写模式

  • Pipeline 脚本
  • Jenkinsfile 文件

这里选择 Pipeline script

3.1 克隆代码

代码语言:javascript
复制
git credentialsId: 'c8eea0cc-24e7-4eb1-a2dd-42fc1066f35a', url: 'https://gitee.com/hjj520/ruoyi-patrol.git'

3.2 编译

代码语言:javascript
复制
bat 'mvn clean install'

在 Windows 操作系统 Jenkins Pipeline 中要使用bat来运行 Windows 命令;而 Linux 操作系统则需要使用sh来运行 Shell 命令。

3.3 上传 jar包

代码语言:javascript
复制
bat 'C:/jenkins/pscp.exe -r -l root -pw root %WORKSPACE%/ruoyi-admin/target/ruoyi-admin.jar 192.168.10.8:/home/huangjinjin/software/springdocker'

完整 Pipeline 脚本

代码语言:javascript
复制
pipeline {
    agent any

    stages {
        stage('git clone') {
            steps {
                git credentialsId: 'c8eea0cc-24e7-4eb1-a2dd-42fc1066f35a', url: 'https://gitee.com/hjj520/ruoyi-patrol.git'
            }
        }
        
        stage('complie') {
            steps {
                 bat 'mvn clean install'
            }
        }
        
        stage('upload') {
            steps {
                 bat 'C:/jenkins/pscp.exe -r -l root -pw root %WORKSPACE%/ruoyi-admin/target/ruoyi-admin.jar 192.168.10.8:/home/huangjinjin/software/springdocker'
            }
        }
        
    }
    
}

其他步骤可以自行添加,例如,测试、部署等。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Pipeline 概述
  • 3. 安装 Jenkins Pipeline 插件
  • 3. 流水线编译与部署
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档