jenkins(二)Pipeline语法速成

jenkins(二)

Pipeline语法速成

标签: 运维 jenkins 持续集成

目录

  • jenkins(二)

    • Pipeline语法速成
  • 1.语法模板
    • 1.1概述
    • 1.2pullcode
    • 1.3Build
    • 1.4Test
    • 1.5Devlop

背景描述:

为了交付文档,先写个速成的版本,目的是供其他同事基于此模板快速配置使用,后续要继续深入研究。

查资料的时候看到了这个文章:

Jenkins pipeline脚本编写实践分享(三)

深知自己在这方面还是个弟弟,还是要继续深入学习。

1.语法模板

配置:

pipeline {
    agent any
    stages {
         stage(‘pullcode‘){
            steps{
                checkout([$class: ‘SubversionSCM‘, additionalCredentials: [], excludedCommitMessages: ‘‘, excludedRegions: ‘‘
                , excludedRevprop: ‘‘, excludedUsers: ‘‘, filterChangelog: false, ignoreDirPropChanges: false, includedRegions: ‘‘
                , locations: [[cancelProcessOnExternalsFail: true, credentialsId: ‘d4dc650e-a10e-487a-bad9-d6dbf7ee4f45‘, depthOption: ‘infinity‘
                , ignoreExternalsOption: true, local: ‘.‘, remote: ‘http://39.98.82.231:86/svn/gkg/ws/ws/trunk‘]], quietOperation: true
                , workspaceUpdater: [$class: ‘UpdateUpdater‘]])
            }
        }

        stage(‘Build‘) {
            steps {
                sh ‘‘‘
                    echo "开始编译打包过程"
                    mvn clean && mvn package -DskipTests=true
					echo "编译打包过程结束"
                ‘‘‘
            }
        }
        stage(‘Test‘){
            steps {
                sh ‘echo "Test stage"‘
            }
        }
        stage(‘Deploy‘) {
        	steps {
                withEnv([‘JENKINS_NODE_COOKIE=dontkillme‘]) {
                    sh ‘‘‘
						echo "关闭服务"
						ssh [email protected] "cmd /c net stop jenkins_test"
						echo "删除原始文件"
						ssh [email protected] "cmd /c rd/s/q D:/root/apache-tomcat-8.5.24/webapps"
						echo "开始使用scp传输文件"
						scp "${WORKSPACE}/target/ws.war"  [email protected]:/
						echo "开始调用远程tomcat进行重启"
						ssh [email protected] "cmd /c  net start jenkins_test"
					‘‘‘
                }
        	}
        }
    }
}

1.1概述

这段脚本定义了四个步骤:pullcodeBuildTestDeploy即获取代码、编译、测试、发布。

1.2pullcode

获取代码

参考

《jenkins使用文档》2.5生成获取代码语句

将生成的代码直接复制到:

stage(‘pullcode‘){
    steps{
        //复制到此处
    }
}

1.3Build

编译代码

sh 声明使用shell命令 使用shell执行后面的命令
Pipeline使用groovy的语法,三个```包裹的内容是一个字符串,并可以在其中引用变量
echo shell输出命令
mvn clean && mvn package -DskipTests=true  mvn命令,打包并跳过测试,可根据自己的需求指定参数

1.4Test

目前没有测试环节,暂时跳过

1.5Devlop

withEnv([‘JENKINS_NODE_COOKIE=dontkillme‘]) {}
用于声明该模块下的语句进程终止后,不关闭子进程

之前已经配置好了jenkins与部署服务器之间的通信,可以直接使用ssh操作远程服务器:

ssh [email protected] "cmd /c net stop jenkins_test"
在192.168.124.9服务器上执行“net stop jenkins_test”命令,关闭jenkins_test服务(注册的tomcat服务)
ssh [email protected] "cmd /c rd/s/q D:/root/apache-tomcat-8.5.24/webapps"
在192.168.124.9服务器上执行“rd/s/q D:/root/apache-tomcat-8.5.24/webapps”命令,删除rd/s/q D:/root/apache-tomcat-8.5.24/webapps路径下所有文件及文件夹
scp "${WORKSPACE}/target/ws.war"  [email protected]:/
使用scp传输文件
WORKSPACE为环境变量,是该项目的路径
scp后面跟的是需要传输的文件,需要根据各位编译打包生成的文件名修改该参数,也可以使用合适的环境变量使用动态的语句。
scp后面第二个参数跟传输目标:root是登录远程服务的身份;@号跟ip地址;:后跟路径。该路径根据目标服务器而定,如果根据《jenkins使用文档》1.1windows 配置ssh服务,则/对应的是freeSSHd配置的SFTP home path。其他路径依此路径改写。
ssh [email protected] "cmd /c  net start jenkins_test"
在192.168.124.9服务器上执行“net start jenkins_test”命令,开启jenkins_test服务(注册的tomcat服务)

原文地址:https://www.cnblogs.com/cxy2016/p/12705422.html

时间: 2024-10-24 20:32:15

jenkins(二)Pipeline语法速成的相关文章

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阶段

jQuery 入门教程(二): 基本语法

学习jQuery之前需要你有下面几个方面的基本知识 HTML CSS JavaScript jQuery 的基本语法 $(selector).action() $ 符合定义这是一个jQuery语句 (selector) 用来选择某个HTML元素,其语法和CSS的selector语法一样. action() 定义操作该HTML元素的方法. 比如: $(this).hide() – 隐藏当前元素. $("p").hide() – 隐藏所以 <p> 元素. $(".te

Jenkins pipeline 语法详解

原文地址http://www.cnblogs.com/fengjian2016/p/8227532.html pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. pipeline 是jenkins2.X 最核心的特性, 帮助jenkins 实现从CI 到 CD与 DevOps的转变 pipeline 提供一组可扩展的工具, 通过 pipeline domain specific language

Jenkins Pipeline: pipeline语法详解

一. 简介 Pipeline支持两种语法: Declarative Pipeline(声明式pipeline,在pipeline2.5中引入,结构化方式)和Scripted Pipeline(脚本式pipeline),两者都支持建立连续输送的Pipeline. 相关资料: https://stackoverflow.com/questions/43484979/jenkins-scripted-pipeline-or-declarative-pipeline http://jenkins-ci.

git+jenkins持续集成二-jenkins定时构建语法:定时构建语法

构建位置:选择或创建工程_设置_构建触发器 1. 定时构建语法:* * * * * (五颗星,多个时间点,中间用逗号隔开)第一个*表示分钟,取值0~59第二个*表示小时,取值0~23第三个*表示一个月的第几天,取值1~31第四个*表示第几月,取值1~12第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日 2. 常用定时构建举例:由于项目的代码一般存在放SVN中,而一个SVN往往是有多个项目组在提交代码,而每个项目组又有多人组成,其中每个人也都在对自己的那块代码不停地在进行维护,所以

Jenkins的pipeline

说明 再官网文档上有说明pipeline的工作流程,具体可以参考pipeline文档和语法文档. 这里将pipeline的生命周期图贴出来  我们暂时不会用到完整的流程,只摘取有用的部分,完成最小的流程即可,下面是我举的几个实际例子 一般流程 node { dir('/home/share/node/falcon') { stage("git") { sh "git fetch origin" sh "git checkout -f origin/mast

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

【09】Jenkins:Pipeline 补充

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