Jenkins的pipeline

说明

再官网文档上有说明pipeline的工作流程,具体可以参考pipeline文档语法文档。 这里将pipeline的生命周期图贴出来 

我们暂时不会用到完整的流程,只摘取有用的部分,完成最小的流程即可,下面是我举的几个实际例子

一般流程

node {
    dir(‘/home/share/node/falcon‘) {
        stage("git") {
            sh "git fetch origin"
            sh "git checkout -f origin/master"
        }
        stage("cpm install") {
            sh "cnpm install"
        }
        stage("build") {
            sh "npm run build"
        }
        stage("restart server") {
            sh ‘‘‘
            pm_result=`pm2 ls`
            if [[ $pm_result =~ `pwd` ]]
            then
              echo "`pwd` exists, restart"
              pm2 delete app.js
              pm2 start app.js --name `pwd`
              exit 0
            else
              pm2 start app.js --name `pwd`
            fi
            ‘‘‘
        }
    }
}

例子中用到了几个方法

  • dir() 更换执行目录,jenkins默认的执行目录在环境设置中设置,默认是/,如果我们使用的是multibranch pipeline的话,它会在jenkins的安装目录下找到workspace进行pipeline操作,目前来说,太麻烦了,所以就直接在脚本中设置好执行目录
  • stage() 方法是阶段的名称,这个是完全自定义的,相当于给构建流程中的某些步骤称为一个阶段,比如git操作阶段、安装依赖阶段、编译阶段、发布阶段,具体效果可以到 构建 章节看
  • sh 后接的就是命令行操作了,如果只有一行,那么用‘‘或者用""包裹起来,如果有多行的话,用‘‘‘包裹

条件判断

在构建项目时,我们可以写一些条件,例如在一个新的服务器上进行完整的安装时,我们可以不通过命令行进行git clone把项目拉下来,可以通过判断目标目录是否有项目,然后决定我们是git clone 还是 git fetch origin

node {
    dir(‘/home/share/www‘) {
        stage(‘Git‘) {
            if(fileExists(‘openapi‘)) {
                dir(‘/home/share/www/openapi‘) {
                    sh ‘git fetch origin‘
                    sh ‘git checkout master‘
                    sh ‘git pull‘
                }
            } else {
                sh ‘git clone [email protected]:flashtd1/DPOpenAPI.git openapi‘
            }
        }
    }
}

交互流程

在进行版本切换的时候,需要手动输入一些内容,比如分支名称,commit名称等,所以需要用户输入变量,下面举个例子

node {
    stage(‘Git‘) {
        def branch = input message: ‘input branch name for this job‘, ok: ‘ok‘, parameters: [string(defaultValue: ‘master‘, description: ‘branch name‘, name: ‘branch‘)]

        echo branch
    }
}

执行上述例子,会出现如下情况  当输入后,会得到如下结果 

如果一次性想输入多个参数,可以在parameters数组中添加更多的变量,如下面的例子

node {
    stage(‘Git‘) {
        def input_result = input message: ‘input branch name for this job‘, ok: ‘ok‘, parameters: [string(defaultValue: ‘master‘, description: ‘branch name‘, name: ‘branch‘), string(defaultValue: ‘‘, description: ‘commit to switch‘, name: ‘commit‘)]

        echo input_result.branch
        echo input_result.commit
    }
}

除了用.的形式,也可以用[‘branch‘]这样的形式,如果要在sh中使用变量,可以写作

node {
    stage(‘Git‘) {
        def input_result = input message: ‘input branch name for this job‘, ok: ‘ok‘, parameters: [string(defaultValue: ‘master‘, description: ‘branch name‘, name: ‘branch‘), string(defaultValue: ‘‘, description: ‘commit to switch‘, name: ‘commit‘)]

        sh "echo ${input_result.branch}"
        sh "echo ${input_result.commit}"
    }
}

注意sh后的是"",不然会出现错误

这里只举了简单的字符串输入的情况,其实还有很多可以输入的类型,不过文档里并没有写的很详细。这里介绍一下Jenkins的语法生成器,一些插件生成脚本的语句都可以在这里调出来

在Pipeline编辑的输入框下,有一个Pipeline Syntax超链接 红色标记的下拉框中可以找到已经安装了插件的支持编写脚本的选项列表,这里用input来举例  按照提示填完后,可以点击下面的Generate Pipeline Script按钮生成脚本 生成的脚本就可以复制到自己的脚本里啦

时间: 2024-12-05 21:55:02

Jenkins的pipeline的相关文章

jenkins插件pipeline使用介绍

pipeline字面意思就是流水线,将很多步骤按顺序排列好,做完一个执行下一个.下面简单介绍下如何使用该插件帮我们完成一些流水线型的任务一,安装pipeline.进入jenkins的[系统管理]--[插件管理]页面,选择[可选插件]然后搜索pipeline. 然后选择直接安装,它会将依赖的一些插件也一并安装.安装完成后重启jenkins就可以使用了.二,使用pipeline.1.在jenkins主页点击新建视图 2.然后选择[Build Pipeline View]  3.创建完成后可以对它进行

jenkins+svn+pipeline+kubernetes部署java应用(三)

将jar包.Dockerfile.kubernetes部署yaml文件上传至svn自定义目录 一.生成流水线脚本 二.配置jenkins pipeline构建语句 三.点击构建java工程 原文地址:https://www.cnblogs.com/xulingjie/p/9916904.html

jenkins+saltstack+pipeline 部署springcloud 多模块jar包

在jenkins上安装salt-master, pipeline{ agent{       node{               label 'master'               customWorkspace '/srv/salt/xxx/result'         }} parameters {       choice(name: 'app_name', choices: ['xxx-client', 'xx-server', 'xx'], description: 'ap

【09】Jenkins:Pipeline 补充

写在前面的话 我们在使用普通的构建任务的时候使用了 Sonar 做代码质量管理,也使用了 Publish Over SSH 插件中更新上线,但是我们在 Pipeline 怎么使用他们呢. 如果你没有查看之前的 Sonar 章节,建议倒回去专门看一遍: https://www.cnblogs.com/Dy1an/p/11198822.html 否则有些概念无法理解! Pipeline 中使用 Sonar 我们操作的前提都是以及安装了 Sonar,具体怎么安装可以参考前面的章节. 1. Sonar

jenkins的pipeline实现指定节点项目构建并部署代码至后端服务器

1.pipeline功能特点 1)是帮助jenkins实现持续集成CI(Continue Integration)转变为持续部署CD(Continue Deploy)的重要功能插件: 2)将多个节点的单个任务连接起来,实现单个任务难以实现的复杂发布流程: 3)Pipeline 的实现方式是一套 Groovy DSL,所有的发布流程都可以表述为一段 Groovy 脚本: 4)是jenkins上的一套工作流框架. 2.pipeline语法 1)stage:pipeline可以划分为多个stage阶段

Jenkins之Pipeline代码流水线配置

前言 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目,如果使用jenkins构建完成后,开发构建项目需要一项一项点击,比较麻烦,因此,pipeline就应用而生了 . 部署Pipeline--代码流水线管理 1)环境准备: IP地址 Jenkins 192.168.1.8 测试端 192.168.1.7 部署Jenkins可以参考Jenkins+Gitlab实现持续集成 2)Jenkins服务器配置免密登录及对Jenkins的用户配置授权 [[email protecte

Jenkins之Pipeline代码流水线

Pipeline翻译过来就是流水线的意思,在公司中可能会有很多项目,如果使用Jenkins构建完成后,开发构建项目需要一项一项点击,比较麻烦,因此,pipeline就应用而生了 . 一.部署Pipeline--代码流水线管理 Jenkins部署及其他服务部署可参考博文:持续集成之代码质量管理---Sonar另外我们再开一台测试端1.Jenkins服务器操作如下(配置免密登录及对Jenkins的用户配置授权): 执行命令主要涉及的是权限问题,我们要搞明白,jenkins 是以什 么权限来执行命令的

Jenkins之pipeline流水线配置

使用gitlab监听事件一旦git push自动部署 使用构建后操作 配置完用户构建前一步会自动构建下一个项目 pipeline插件 新建视图 点击run运行 原文地址:https://www.cnblogs.com/minseo/p/9032862.html

jenkins的Pipeline代码流水线管理

1.新建一个pipline任务 2.自写一个简单的pipline脚本 a.Pipeline的脚本语法在Pipeline Syntax中,片段生成器,示例步骤中选择builf:Build a job b.将生成的语句中的value赋值 c.在这条线上部署了两个job--test-zrlog.java-serverDB node { build job: 'test-zrlog', parameters: [gitParameter(name: 'version_tag', value: 'v1.4