jenkins pipeline学习(未完待续...)

216 阅读2分钟

背景

在老板的建议下,公司开始每周两次技术分享;可以是技术点,也可以是业务逻辑,或者从一个代码块的思考。大家表现不是很积极,老板点名要小唐去分享,小唐同学不得已,披挂上阵。

技术背景

自动化部署这东西要是放在我大学,给我配置好了,我都不用;我们做的那个项目就一个服务,打成war包,上传到服务器,删除原来的目录,覆盖之前的war包,tomcat自动解压,项目部署完成。如果旁边有个小学妹啥的,cdllpwd命令,我能敲到天亮,莫的错,在下只为装B而生。但是进入公司后,一个项目下数十个模块,然后你打开模块,TM下面还有分支,经过好几层,你才看到了久违的服务,这要是一个个的手动上传jar,那就真要到天亮了。所以自动化部署来了,只需要点一下,打包,上传,启动服务,一气呵成;妈妈再也不担心我熬夜部署了~~

开始吧

声明:以下部分资料主要来源是,小唐同学;如有纰漏,请锤他,与本人无关~~

为什么要用pipeline

公司一直使用的jenkins提供的freestyle(和凡凡的重名了),freestyle可以理解为jenkins提供的可视化的模板,可视化和模板这两个词意味着不够自由。pipeline就自由了,因为他是脚本形式存在。 特征:

  1. 可持续,将每个服务的pipeline放在自己的模块下,就算是更换环境,也能够实现即插即用;不必像freestyle一样,需要复制配置。
  2. 停顿,在点击构建后,可以实现认证,确认等操作。比如部署时,需要再次确认,保证不会出现误操作情况。
  3. 可扩展,支持与其他插件进行集成

示例

//代表整条流水线
pipeline{
    //可选,执行位置
    agent any
    //stages流水线的多个阶段,至少包含一个stage
    stages{
        //流水线具体的一个阶段,需要定义一个名字
        stage("stage"){
            //一个或多个步骤
            steps{
                echo 'hello'
            }
        }
    }
}