Jenkins管道最佳实践Top 10

  • 时间:
  • 浏览:2
  • 来源:uu快3手机版_uu快3走势图_网游

或者有福利哦:Pipeline Stage View插件可不还要将管道中的一个多多多 个段进行可视化:

本文作者:高洪涛

提示:使用并行测试执行插件可不还要使Jenkins自动决定怎么还可以在可选的并行桶中运行你的单元测试!获取全版信息请阅读Parallel Test Execution on the CloudBees Blog

6. 要做:在节点中执行并行步骤

为哪些呢?管道并行化最大的好处是:做更多的重量级任务(参见最佳实践4)!通常清况 下你还要在管道并行分支内内外部使用一个多多多 节点。

Jenkins的管道化插件对于其用户来说是个变局者。依赖于域领域语言(DSL)Groovy,管道化插件实现了脚本化。这对于开发简化且步骤繁多的DevOps管道非常有帮助。本文提供了你最应该知道的关于Jekins管道化插件中“要做”和“从不做”的最佳实践-或者暗含代码示例。

为哪些呢?为了管道的健康清理,这可是我是因为。当输入的内容在指定时间窗口内如此 送达时,将你的输入包塞进一个多多多 超时内内外部可不还要使它们被清理掉(例如于:被暂停)。

例子:

timeout(time:5, unit:'DAYS') {
input message:'Approve deployment?', submitter: 'it-ops'
} 

为哪些呢?可能输入会暂停管道的执行,去等待英文自动的或手动的输入。自然例如于于等待英文还要占用时间。而当事人面,node得话在工作区上获取并持有锁和重型的Jenkins执行器,去获取如此 昂贵的资源而仅仅为了停下来等待英文输入是不共要的。可是我,请在Node的内外部创建input输入。

例子:

stage 'deployment'
input 'Do you approve deployment?'
node{
//deploy the things
} 

原文发布时间为:2016-07-13

本文来自云栖社区商务协作伙伴Dockerone.io,了解相关信息可不还要关注Dockerone.io。

为哪些呢?可能Stage是管道的逻辑段。将任务分拆到不同Stage中等同于你将管道拆分成一个多多多 个独立的任务段。

例子:

stage 'build'
//build
stage 'test'
//test

为哪些呢?可能暂存是被设计为共享文件的,例如于:在stage和node之间共享你的应用源代码。而另外一方面,归档是被设计为长期存储文件的(例如于:你的构建的里边二进制文件)。

例子:

stash excludes: 'target/', name: 'source'
unstash 'source'

原文链接:Top 10 Best Practices for Jenkins Pipeline (翻译:高洪涛)===========================================译者介绍

高洪涛,当当网架构师,开源数据库分库分表里边件Sharding-JDBC作者。目前从事Docker相关研究工作。

为哪些要如此 做呢?把你的管道作为代码会强化并不是约束,或者得到GitHub和BitBucket提供的多种新功能,诸如:多分支,pull request检查和组织扫描。

你还要让人的管道脚本一个多多多 默认名字:Jenkinsfile,或者以如下的内容作为脚本头,可是我得话你的IDE、GitHub和这种 工具会识别出来脚本是Groovy,并提供语法高亮功能:

#!groovy

为哪些呢?可能env变量是全局的,直接改变它是不被鼓励的,可能它改变了全局的环境。可是我withEnv语法是被推荐使用的。

例子:

withEnv(["PATH+MAVEN=${tool 'm3'}/bin"]) {
sh "mvn clean verify"
} 

为哪些呢?可能管道化插件是在底层任务上的并不是改善。与哪些自由式的插件不同,管道化插件对于Jenkins主节点重启是有感知能力的,或者暗含了这种 內建的功能。哪些功能在构建多步骤、简化的发布管道时,效果大大超越了以前的老式插件。更多关于管道化的内容:https://jenkins.io/solutions/pipeline/

为哪些呢?可能将任务转为并行可不还要加快你的管道运行,将你的管道步骤上放“left”中,开发者和团队这种 的成员会更快的得到反馈。

例子

parallel 'shifting':{
//everything
}, 'left':{
//I can
} 

为哪些呢?可能默认清况 下,Jenkinsfile脚本运行在Jenkins的主节点中,或者为了减少资源的消耗而使用了轻型的执行器。任何重量级的工作,例如于从Git上下载代码或编译Java应用,还要使用Jenkins的分布式构建能力或者运行在代理节点中。

例子:

stage 'build'
node{
checkout scm
sh 'mvn clean install'
} 

原文标题:Jenkins管道最佳实践Top 10