JENKINS 2.0的精髓是PIPELINE AS CODE,是帮助JENKINS实现CI到CD转变的重要角色。什么是PIPELINE,简单来说,就是一套运行于JENKINS上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。 PIPELINE的实现方式是一套GROOVY DSL,任何发布流程都可以表述为一段GROOVY脚本,并且 JENKINS支持从代码库直接读取脚本,从而实现了PIPELINE AS CODE的理念。
1.STAGE-阶段: 一个PIPELINE可以划分为若干个STAGE,每个STAGE代表一组操作。注意,STAGE是一个逻辑分组的概念,可以跨多个NODE。 2.NODE-节点: 一个NODE就是一个JENKINS节点,或者是MASTER,或者是AGENT,是执行STEP的具体运行期环境。 3. STEP-步骤: STEP是最基本的操作单元,小到创建一个目录,大到构建一个DOCKER镜像,由各类JENKINS PLUGIN提供
在Jenkins插件中心搜索并安装名为pipeline的Jenkins插件
在项目的流水线里面,输入以下内容,这也是pipeline的基本语法格式
pipeline{
agent any
stages{
stage('get code'){
steps{
echo "get code from scm"
}
}
stage('package'){
steps{
echo "packge code"
}
}
stage('deploy'){
steps{
echo "deploy packge to node1"
}
}
}
}
截图如下
构建成功后,历史记录如图,会显示每个步骤的执行结果,执行时间如下图
点击任意一个步骤,会弹出步骤日志,再点击日志,可以查看这个步骤的执行情况
pipeline语法有一定的格式和写法,我们只需要记住上面的统一格式,然后具体的语法可以用语法生成器生成,然后复制进去即可,
语法生成 点击生成流水线脚本后,就会将上面的操作给你变成pipeline脚本,如下 然后将这个脚本复制到对应的步骤中即可
1)代码
pipeline{
agent any
stages{
stage('get code'){
steps{
checkout([$class: 'GitSCM', branches: [[name: '*/dev']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'git@10.0.0.12:root/monitor.git']]])
}
}
stage('package'){
steps{
sh 'tar zcf /opt/web.tar.gz ./* --exclude=.git'
}
}
stage('deploy'){
steps{
sh 'scp /opt/web.tar.gz 10.0.0.11:/tmp && ssh 10.0.0.11 "tar xf /tmp/web.tar.gz -C /data/html/www/"'
}
}
}
}
1)构建
2)结果
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。