八、pipeline流水线构建项目

2021-11-16 16:22:48 浏览数 (1)

一、pipeline概念

1.什么是PIPELINE

JENKINS 2.0的精髓是PIPELINE AS CODE,是帮助JENKINS实现CI到CD转变的重要角色。什么是PIPELINE,简单来说,就是一套运行于JENKINS上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。 PIPELINE的实现方式是一套GROOVY DSL,任何发布流程都可以表述为一段GROOVY脚本,并且 JENKINS支持从代码库直接读取脚本,从而实现了PIPELINE AS CODE的理念。

2.几个基本概念

1.STAGE-阶段: 一个PIPELINE可以划分为若干个STAGE,每个STAGE代表一组操作。注意,STAGE是一个逻辑分组的概念,可以跨多个NODE。 2.NODE-节点: 一个NODE就是一个JENKINS节点,或者是MASTER,或者是AGENT,是执行STEP的具体运行期环境。 3. STEP-步骤: STEP是最基本的操作单元,小到创建一个目录,大到构建一个DOCKER镜像,由各类JENKINS PLUGIN提供

3.安装插件

在Jenkins插件中心搜索并安装名为pipeline的Jenkins插件

二、构建演示

1.创建项目

2.输入脚本

在项目的流水线里面,输入以下内容,这也是pipeline的基本语法格式

代码语言:javascript复制
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"
            }
        }
    }
}

截图如下

3.执行构建

构建成功后,历史记录如图,会显示每个步骤的执行结果,执行时间如下图

点击任意一个步骤,会弹出步骤日志,再点击日志,可以查看这个步骤的执行情况

三、用语法生成器辅助构建html

pipeline语法有一定的格式和写法,我们只需要记住上面的统一格式,然后具体的语法可以用语法生成器生成,然后复制进去即可,

1.语法生成器使用

  1. 实例 每个不同的功能语法是不一样的,在语法生成器的示例步骤中,选择你要做的操作类别,然后正常操作每个选项后,按下边的语法生成器生成即可
  1. 拉去代码示例[git] 界面选择

语法生成 点击生成流水线脚本后,就会将上面的操作给你变成pipeline脚本,如下 然后将这个脚本复制到对应的步骤中即可

  1. shell代码示例

2.最终代码

1)代码

代码语言:javascript复制
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. 截图

3.构建和结果

1)构建

2)结果

0 人点赞