Jenkins流水线风格pipeline

Jenkins流水线风格pipeline

pipeline介绍

什么是pipeline

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

Pipeline 概念

Pipeline 是一个用户定义的 CD 流水线模式。Pipeline 代码定义了通常包含构建、测试和发布步骤的完整的构建过程。
Node
node 是一个机器,它是 Jenkins 环境的一部分,并且能够执行 Pipeline。同时,node 代码块也是脚本式 Pipeline 语法的关键特性。
Stage
Stage 块定义了在整个 Pipeline 中执行的概念上不同的任务子集(例如“构建”,“测试”和“部署”阶段),许多插件使用它来可视化或呈现 Jenkins 管道状态/进度。
Step
一项任务。从根本上讲,一个步骤告诉 Jenkins 在特定时间点(或过程中的“步骤”)要做什么。例如,使用 sh step:sh 'make' 可以执行 make 这个 shell 命令。

pipeline语法

声明式 脚本式
脚本式语法格式:
pipeline{
    agent any
    stages{
        stage("获取代码"){
           steps{
               checkout([$class: 'GitSCM', branches: [[name: '${git_tag_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '28cc4e79-c852-482b-8804-4302f9b3a537', url: 'git@gitlab.zls.com:root/hello-world.git']]])
           }
        }
        stage("代码质量检测"){
            steps{
                sh label: '', script: '''mvn sonar:sonar \\
  -Dsonar.projectKey=665532b2cf9f8fa1e534b192f913cdc1b6906451 \\
  -Dsonar.host.url=http://10.0.0.93:9000 \\
  -Dsonar.login=665532b2cf9f8fa1e534b192f913cdc1b6906451'''
            }
        }
        stage("编译代码"){
            input {
                message "你想要继续编译代码么?"
                ok "整~"
            }
            steps{
                sh label: '', script: 'mvn clean package'
            }
        }
        stage("部署代码"){
            steps{
                sh label: '', script: '/bin/sh -x /var/lib/jenkins/scripts/deploy_hello.sh'
            }
        }
    }
}


1.从gitlab中把代码拉到Jenkins机器上
2.进入Jenkins机器的工作目录
3.先编译代码
4.发送代码到web
5.解压代码
6.做软链接
---
- hosts: all
  vars:
    - name: zls
  tasks:
  - name: xxx
    file:
      path: xxx
      state: touch
      owner: xxx
      mode: 0755
posted @ 2022-09-01 22:14  Gabydawei  阅读(133)  评论(0编辑  收藏  举报