Jenkins Pipeline 流水线 - 声明式 Demo

jenkins,pipeline,流水线,声明,demo · 浏览次数 : 219

小编点评

**Jenkins Pipeline 流水线流水线** **介绍** Jenkins Pipeline 是一个用于构建和部署 Java、Python 和 PHP 项目的自动化工具。它可以用于将任务从 UI 手动操作转换为代码化,就像 Dockerfile 一样。 **使用流水线** 1. **定义 Pipeline:** - `pipeline { }`块定义整个 Pipeline。 - `agent any`指定执行器。 - `tools {}`定义流水线的工具。 - `triggers {}`指定触发 Pipeline 的条件。 - `environment {}`定义全局环境变量。 - `stages {}`定义任务步骤。 - `post { always {} }`处理 Pipeline 的最终状态。 2. **任务步骤** - `stage()`块定义一个任务步骤。 - `steps {}`包含任务的操作。 - `environment`指定步骤所需的环境变量。 3. **触发条件** - `triggers` 用于指定 Pipeline 在哪些条件下触发执行。 - `pipeline` block 的 `triggers` 属性指定触发 Pipeline 的条件。 4. **环境** - `environment` 用于声明全局环境变量,可用于所有步骤。 5. **步骤** - `steps` 定义一系列任务步骤。 - `environment` 用于声明步骤所需的环境变量。 6. **阶段** - `stages` 用于定义任务执行的阶段。 - `stage()`块定义一个阶段,包含步骤。 7. ** post.always** - `post.always` 用于执行最终的步骤,无论 Pipeline 是否成功或失败。 **示例** ```groovy pipeline { agent any tools { docker } triggers { pipeline } environment { CREDENTIALS_FILE = 'my-credentials.json' } stages { stage('拉取代码') { steps { echo '拉取代码' } } stage('执行构建') { steps { echo '构建项目' } } } post { always { echo '构建完成' } } } ``` **注意** * Pipeline 是一个流式工具,因此任务可能会被执行多次。 * `pipeline { }`块内的 `steps` 和 `environment` 必须在 `pipeline` block 的顶层定义。 * `post { always {} }` 用于处理 Pipeline 的最终状态。

正文

Jenkins Pipeline 流水线
流水线既能作为任务的本身,也能作为 Jenkinsfile
使用流水线可以让我们的任务从UI手动操作,转换为代码化,像dockerfile 一样。从shell 命令到配置文件,更适合大型项目,可以让团队其他开发者同时参与进来,

完整语法

tools:添加工具,如maven、JDK
triggers:基于hook模式触发流水线任务;
environment:声明全局通用的环境变量;
stages:定义任务步骤,即流程分段处理;
post.always:最终执行的动作;

pipeline {
    agent any
    tools {}  
    triggers {}
    environment {}
    stages {
        stage('步骤说明') {
            steps {
                echo ''
            }
        }
    }
    post { always {}}  //执行完任务后,处理
}

5个必备的组成部分

pipeline: 整条流水线
agent: 指定执行器
stages: 所有阶段
stage:某一阶段,可有多个
steps: 阶段内的每一步,可执行命令

image

  • agent:该部分指定整个Pipeline或特定阶段将在Jenkins环境中执行的位置,具体取决于该agent 部分的放置位置。该部分必须在pipeline块内的顶层定义 ,也可以使用在stage级。

  • stage:表示这个Pipeline的某一个执行阶段(使用stage使得逻辑变得更加简单明了)

  • steps: 包含一个或者多个在stage块中执行的step序列(在这里执行操作:运行maven或者部署等等)

  • environment:指定键值对,可用于step中,主要是为常量或者变量赋值,根据所在的位置来决定其作用范围(类似于java中全局和局部的概念)

  • options:允许执行pipeline内置的专用选项,也可以使用由插件提供的

  • parameters:提供触发pipeline时的参数列表

  • trigger:定义了触发pipeline的方式(jenkins1.x中的pollscm定时构建)

  • tools:自动安装工具,注意这里使用的一定是在jenkins全局配置中已经定义好了的

  • when:可以用来执行一些代码逻辑

  • post:可以根据pipeline的状态来执行一些操作

安装插件

  • Pipeline
  • Pipeline: Stage ViewVersion #不安装的话不会出来阶段视图

添加项目

添加项目,选择 Pipeline (流水线)
image
流水线

  1. 从SCM 获取(SVN或GIT)

image
2. 内嵌代码(学习用,这边先用内嵌方式)
image

pipeline {#整体定义
    agent any #任务交给某个节点执行(any 任意)

    stages {
        stage('拉取代码') { #每一步的操作
            steps { #具体执行内容
                echo '拉取成功'
            }
        }

        stage('执行构建') {
            steps {
                echo '构建完成'
            }
        }
    }
}

image
image
支持单独执行某个阶段
image
Jenkins 阶段视图不见了?安装:Pipeline: Stage ViewVersion,就可以出来了
image

与Jenkins Pipeline 流水线 - 声明式 Demo相似的内容:

Jenkins Pipeline 流水线 - 声明式 Demo

Jenkins Pipeline 流水线 流水线既能作为任务的本身,也能作为 Jenkinsfile 使用流水线可以让我们的任务从UI手动操作,转换为代码化,像dockerfile 一样。从shell 命令到配置文件,更适合大型项目,可以让团队其他开发者同时参与进来, 完整语法 tools:添加工具

【Jenkins系列】-Pipeline语法全集

Jenkins为您提供了两种开发Pipeline的方式:脚本式和声明式。 脚本式流水线(也称为“传统”流水线)基于Groovy作为其特定于域的语言。 而声明式流水线提供了简化且更友好的语法,并带有用于定义它们的特定语句,而无需学习Groovy。声明式流水线语法错误在脚本开始时报告。这是一个很好的功能

Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包

Jenkins Pipeline 流水线 步骤 拉取SVN代码 -> Maven 构建 -> Docker 编译 -> 发布至阿里云仓库 -> K8S 更新 Jenkins插件安装 Localization: Chinese (Simplified) Subversion 【2.16.0】 --从S

Jenkins Pipeline 流水线 - 添加节点 使用代理

Jenkins 安装在 Windows 上 Docker 在Linux 上 流程 将 Docker 在 Jenkins 节点中维护 Pipeline 中指定某些阶段使用哪个节点 添加节点 Checking Java version in the PATH openjdk version "1.8.0

Jenkins Pipeline 流水线 - withCredentials 使用

添加凭证 Pipeline script pipeline { agent any stages { stage('withCredentials 使用凭证') { steps { withCredentials([usernamePassword(credentialsId: 'DockerSer

Jenkins Pipeline 流水线 - 上传文件 Publish over SSH 执行命令

Jenkins Pipeline 流水线 - 上传文件 Publish over SSH 执行命令 Jenkins插件安装 Publish over SSH 系统配置 生成代码 sshPublisher: Send build artifacts over SSH 需要在 生成 sshPublish

Jenkins Pipeline 流水线 - 上传文件 Publish over SSH + Docker 编译 + 上传到阿里仓库

Jenkins Pipeline 流水线 Publish over SSH 将jar上传到远程 Docker 服务器、执行编译命令生成镜像、将镜像上传到阿里仓库 Publish over SSH Jar包上传、编译、上传 生成上传 jar 包脚本配置 生成上传 Dockerfile 脚本配置 注意在

Jenkins Pipeline 流水线 - 使用代理节点,Remote SSH 对 K8S 进行升级

Jenkins Pipeline 流水线 - K8S kubectl 升级 使用代理节点 Remote SSH 远程执行命令进行升级 Remote SSH 方式 安装插件 SSH Pipeline Steps Pipeline SSH 脚本 credentialsId: 'K8SMaster' pi

Jenkins Pipeline 流水线 - Parameters 参数化构建

可以通过参数的方式,指定构建的版本 有两种方式 界面添加 Pipeline Script 脚本配置 (需要Build 一次,然后生效,不知道有没有其它办法) General 界面添加 Pipeline Script Declarative Directive Generator pipeline {

Jenkins Pipeline 流水线 - 完整构建 Pipeline Script 脚本

Docker Jenkins 安装配置 Windows 2016 安装 Jenkins 前置条件可参考 Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包 Jenkins Pipeline 流水线 - 添加节点 使用代理 Jenkins Pipeline 流水线