此文需要有Jenkins pipeline job 的简单使用经验 场景 我们日常的测试函数, 一般是不能仅仅在本地跑的,还需要一个公共的跑测试的环境,作为合并新的PR的依据. 如果用Jenkins 作为自动跑新分支test任务的环境的话,就会面临一个问题:如何切换到PR请求对应的分支去跑test. Jenkins 不能直接获取触发事件的git分支 自己在网上查了一下,发现网上现有的 Jenkins自动切换分支的帖子 ,要么创建了多个Jenkins job,用过滤规则去实现不同的分支触发不同的J…
一个很简单的问题,却因为大意,经常忘了处理,导致程序运行出错. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <ul> <li> <ul> <li>listone</li> <li>listtwo…
//获取事件 var e = window.event; //获取元素 obj = e.target || e.srcElement; console.log(e); checkRepeat(e.target.innerText); //获取触发事件的元素的文本…
grovvy调试: 部署路径确定下来, 每个服务写死,传参 服务名 + 环境 给版本服务返回版本信息: groovy取分支: def gettags = ("git ls-remote -h git@gitlab.zi.com:crm/zi-crm-app.git").execute() gettags.text.readLines().collect { it.].replaceAll('refs/heads/', '') }.unique() def gettags = (&quo…
$(function(){// 事件冒泡 $('').bind("click",function(event){ //事件内容 //停止事件冒泡 event.stopPropagation(); })// 默认行为 $("#sub").bind("click",function(event){ //事件内容 //阻止默认行为 event.preventDefault(); }) $("a").click(function(ev…
Jenkins+pipeline+参数构建+人工干预 实现了以下功能 1. 可以选择环境,单选:可以选择需要发布的项目,多选 2.发布过程可视化 3. 可以人工干预是否继续发布. 初始化配置需要很久,比如拉镜像这些事情,我可以提前操作.配置做好之后,等到下班时间,再进行发布操作.有时候会遇到,我初始化配置做好之后,测试通知还有变动.我可以人工干预,不进行继续发布.再次进行配置初始化后再发布. 4.查看日志,鼠标停留在蓝色进度图时,会自动出现Log提示按钮 5.点击Log,可以看日志. 6.点击日…
iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数 iwpriv是处理下面的wlan_private_args的所有扩展命令,iwpriv的实现上,是这样的,=>main=>set_private=>iw_get_priv_info获取wireless网卡所能处理的所有wlan_private_args类型. dev_ioctl=>wext_handle_ioctl=>wireless_process_ioctl    if (cmd…
java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_FlightOrderSearchRequest request) { Object myAllMessage; OrderSearchListRes response = null; try { String endpoint = carGlobalSetting.getEndpoint(); JaxWsD…
首先是实现接口System.Web.Mvc.IActionFilter的过滤器 获取Controller.Action.参数 方法一. string actionName = filterContext.ActionDescriptor.ActionName; string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; //获取触发当前方法的Action方法的所有参数 //…
判断事件触发的元素:     var tag = window.event.target || window.event.srcElement;    if (tag.tagName.toLowerCase() == "input") {        return;    } window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性 srcElement是事件初始化目标html元素对象引用,因为事件通过元…
在项目当中我们可能会遇到例如改变的项目名称之后,相对应的地址就需要改变,为了减少工作量,将地址当中的项目名这一块写成动态获取的,那么最关键一点就是我要先获取它,再进行操作: 知识点整理,话不多说,直接贴代码: 获取项目名: function URLPath(msg){ var pathName = window.document.location.pathname; var projectName = pathName.substring(0,pathName.substr(1).indexOf…
php动态获取函数参数 一.总结 一句话总结:a.PHP 在用户自定义函数中支持可变数量的参数列表.其实很简单,只需使用 func_num_args() , func_get_arg() ,和 func_get_args()  函数即可. <?php function demo () { $numargs = func_num_args (); echo "参数个数为: $numargs \n" ; } demo ( 'a' , 'b' , 'c' ); b.感觉默认参数也可以实…
Pipeline 是什么 Jenkins Pipeline 实际上是基于 Groovy 实现的 CI/CD 领域特定语言(DSL),主要分为两类,一类叫做 Declarative Pipeline,一类叫做 Scripted Pipeline. Declarative Pipeline 体验上更接近于我们熟知的 travis CI 的 travis.yml,通过声明自己要做的事情来规范流程,形如: pipeline { agent any stages { stage('Build') { st…
//获取标准输出//第一种 result = sh returnStdout: true ,script: "<shell command>" result = result.trim() //第二种 result = sh(script: "<shell command>", returnStdout: true).trim() //第三种 sh "<shell command> > commandResult&…
此操作主要用于动态 ajax 请求 1.首先封装一个函数 GetRequest(),能动态获取到 url 问号"?"后的所有参数 , function GetRequest() { var url = location.search; //获取url中"?"符后的字串 ) { //判断url中是否存在问号 ); //抽取问号后面的那句话 从下标1开始,就是刚好除开? var strs = str.replace('_special',' ') } return st…
通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上得来终觉浅,绝知此事要躬行"),本文从实践角度介绍如何结合我们常用的Gitlab与Jenkins,通过K8s来实现项目的自动化部署,示例将包括基于SpringBoot的服务端项目与基于Vue.js的Web项目. 本文涉及到的工具与技术包括: Gitlab -- 常用的源代码管理系统 Jenkins,…
一.引言 Jenkins 2.0的到来,pipline进入了视野,jenkins2.0的核心特性. 也是最适合持续交付的feature. 简单的来说,就是把Jenkins1.0版本中,Project中的相关配置信息,如SVN/Git的配置,Parameter的配置等都变成Code,即Pipeline as Code. 随着pipeline交付流水线在团队中的推广,使用pipeline脚本的job也迅速增加. 优势: 通过写代码的形式配置Project,且Jenkins中内置了常用的steps.…
jenkins  pipeline 总体介绍 pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. pipeline 是jenkins2.X 最核心的特性, 帮助jenkins 实现从CI 到 CD与 DevOps的转变 pipeline 提供一组可扩展的工具, 通过 pipeline domain specific language syntax 可以到达pipeline as code 目的…
原文地址http://www.cnblogs.com/fengjian2016/p/8227532.html pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. pipeline 是jenkins2.X 最核心的特性, 帮助jenkins 实现从CI 到 CD与 DevOps的转变 pipeline 提供一组可扩展的工具, 通过 pipeline domain specific language…
一.引言 Jenkins 2.0的到来,pipline进入了视野,jenkins2.0的核心特性. 也是最适合持续交付的feature. 简单的来说,就是把Jenkins1.0版本中,Project中的相关配置信息,如SVN/Git的配置,Parameter的配置等都变成Code,即Pipeline as Code. 随着pipeline交付流水线在团队中的推广,使用pipeline脚本的job也迅速增加. 优势: 通过写代码的形式配置Project,且Jenkins中内置了常用的steps.…
jenkins pipeline构建后返回构建结果给gitlab 使用场景 gitlab 合并请求时要求管道任务必须成功,否则无法执行合并操作,又不想使用gitlab ci 工具. 实现方法 1.Generic Webhook Trigger 插件实现gitlab合并请求触发Jenkins任务2.pipeline中获取触发中post请求的参数3.调用gitlab Api 返回任务执行结果. 合并请求post参数 { "object_kind": "merge_request&…
要实现在 Jenkins 中的构建工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式.Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作. Jenkins Pipeline 有几个核心概念: Node:节点,一个 Node 就是一个 Jenkins 节点,Master 或者 Agent,是执行 Step 的具体运行环境,比如我们之前动态运行的 Jenki…
目录 . 相关阅读材料 . <加密与解密3> . [经典文章翻译]A_Crash_Course_on_the_Depths_of_Win32_Structured_Exception_Handling.pdf . < DAY安全: 软件漏洞分析技术> 2. 数据结构分析 二. KTHREAD KTHREAD(内核层线程对象).再次重复说明一点: windows内核中的执行体(ETHREAD, EPROCESS) 负责各种与管理和策略相关的功能,而内核层(或微内核)(KTHREAD,…
前言 这篇写好一段时间了,一直也没发布上来,今天稍微整理下了交下作业,部分内容偷懒引用了一些别人的内容.使用Jenkins做持续集成/持续交付,当业务达到一定规模的时候,Jenkins本身就很容易成为整条流水线的瓶颈,各个业务端都依靠Jenkins,部署Jenkins服务时如何保障服务的高可用变得尤为重要.以微医为例,目前Jenkins的业务承载量:>1,000 Build Jobs,>5,000 Buils/Day,光依靠单master已经无法承载高并发的性能压力,瓶颈来自多方面,不仅仅是J…
原文地址:http://www.youruncloud.com/blog/127.html 分享主题 一个软件产品的开发周期中,尤其是敏捷开发,持续集成和持续部署是必不可少的环节,而随着产品的丰富,模块的增多.随即带来了更加多的问题,各模块间编译环境的准备,编译复杂,耗时增加,还需要专人去负责这个流程.而Jenkins则可以很好的解决这个单一而容易出错的CI(持续集成)工作. Jenkins也存在着编译环境不隔离的问题,虽然可以通过集群的方式解决,可是需要为每种环境甚至是一种语言的不同版本准备多…
es6 Object.assign   目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 Object.assign 一.基本用法 Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target).它至少需要两个对象作为参数,第一个参数是目标对象,后面的参数都是源对象.只要有一个参数不是对象,就会抛出TypeError错误. var target…
最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置,也可以在每个项目中直接写Pipeline脚本,但像我那么优秀,那么追求极致的程序员来说,这些方案都打动不了我那颗骚动的心,下面我会跟你们讲讲我是如何通过Pipeline脚本实现自动化部署方案的,并且实现多分支构建,还实现了所有项目共享一个Pipeline脚本. 使用Jenkins前的一些设置 为了…
1.参数化构建界面 2.交付流水线界面 3.脚本详解 #!groovy pipeline { //在任何可用的代理上执行Pipeline agent any //参数化变量,目前只支持[booleanParam, choice, credentials, file, text, password, run, string]这几种参数类型,其他高级参数化类型还需等待社区支持. parameters { //git代码路径[参数值对外隐藏] string(name:'repoUrl', defaul…
Pipeline语法 先讲Declarative Pipeline,所有声明式管道都必须包含在pipeline块中: 123 pipeline { /* insert Declarative Pipeline here */} 块里面的语句和表达式都是Groovy语法,遵循以下规则: 最顶层规定就是pipeline { } 语句结束不需要分好,一行一条语句 块中只能包含Sections, Directives, Steps或者赋值语句 属性引用语句被当成是无参方法调用,比如input实际上就是方…
自从Jenkins 2.0 版本升级之后,支持了通过代码(Groovy DSL)来描述一个构建流水线,灵活方便地实现持续交付,大大提升 Jenkins Job 维护的效率,实现从 CI 到 CD 到转变.而在2016 Jenkins World 大会上,Jenkins 发布了1.0版本的声明式流水线 - Declarative Pipeline,目前已经到发布了1.2版本,它是一种新的结构化方式定义一个流水线.今天我们一起对比这两种定义流水线的方式以及特性. 1.Pipeline特性- Pipe…