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