虾皮网站有的做吗,博野网站建设,设计网站推荐平面,电商设计网站pipeline开发笔记 jenkins常用插件Build Authorization Token Root配置GitLab的webhooks(钩子)配置构建触发器--示例 piblish over sshBlue OceanWorkspace Cleanup PluginGit插件PipelineLocalization: Chinese (Simplified) --中文显示Build Environment Plugin 显示构建过程… pipeline开发笔记 jenkins常用插件Build Authorization Token Root配置GitLab的webhooks(钩子)配置构建触发器--示例 piblish over sshBlue OceanWorkspace Cleanup PluginGit插件PipelineLocalization: Chinese (Simplified) --中文显示Build Environment Plugin 显示构建过程中的变量Role-based Authorization StrategyPipeline Stage ViewThinBackup 备份插件 vscode常用pipeline插件GroovyLintJenkins Pipeline Linter Connector pipeline语法Parameters参数列表多行shell锁定工作目录改变工作目录 Optionspost后置条件 pipeline框架pipeline模块dockerfile模块 jenkins常用插件 Build Authorization Token Root
参考链接https://blog.csdn.net/weixin_45310323/article/details/130237311
使用拥有 读取权限 的 匿名用户 访问配置 钩子链接(webhook) 时需要用到, 如果不使用每次访问链接都需要提供认证
该插件的作用是即使匿名用户看不到Jenkins也可以访问构建和相关的REST构建触发器。用法是在网络钩子链接中输入:
# JENKINS_SITE 为Jenkins站点地址
# JOB_NAME 为任务名称
# SECRET 为触发远程构建的身份验证令牌值
http://${JENKINS_SITE}/buildByToken/build?job${JOB_NAME}token${SECRET}配置GitLab的webhooks(钩子)
选择仓库 设置 webhooks OK! 完成了 当提交代码到gitlab后会自动构建任务 配置构建触发器–示例
针对 JAR-1任务添加token(令牌) 如下图 添加完成后浏览器调用地址http://${Jenkins_URL}/buildByToken/build?jobJAR-1token666666调用成功后在Jenkins页面可以观察到是否自动构建此任务了 piblish over ssh
可以实现不同节点之间传递文件比如A节点将代码编译打包好然后通过ssh发送到目标节点上配置相应的命令完成项目的部署目标节点无需是是一个slave只要A节点能够通过ssh连接到B节点即可。 Blue Ocean
简化Jenkins显示 Workspace Cleanup Plugin
清理工作空间 Git插件
当前版本4.12.1
插件地址https://plugins.jenkins.io/git/
作用该插件为Jenkins项目提供了基本的git操作。它可以轮询、提取、签出、分支、列表、合并、标记和推送存储库。
我们其实安装该插件就可以实现Git项目的代码拉取了。
这个是最基本核心的插件。后面Git client,Git server Plugin, GitHub plugin GitLab Plugin都是针对具体功能需求减少操作步骤而封装的各种专用场景下的插件。 Pipeline
插件地址https://plugins.jenkins.io/workflow-aggregator/
作用该插件给Jenkins提供Pipeline功能。这个插件和它依赖的其他插件整体组成了Jenkins 2.0的Pipeline功能。
例如
Pipeline Graph Analysis Plugin 提供 REST API的pipeline访问和管理功能。
Pipeline: API定义管道API的插件。
Pipeline: Basic Steps添加管道步骤“build”以触发其他作业的生成。
Pipeline: Declarative一个顽固的声明性的管道。 Localization: Chinese (Simplified) --中文显示
插件地址https://plugins.jenkins.io/localization-zh-cn/
作用该插件为Jenkins 提供了简体中文语言包。
我们Jenkins中的各种配置项有些是中文有些是英文那就是这个插件包在生效。它对部分功能实现了翻译部分功能没有翻译造成的。我们如果想使用纯英文版本可以关闭该插件。 Build Environment Plugin 显示构建过程中的变量
当前版本1.7 插件地址https://plugins.jenkins.io/build-environment
作用这个插件显示了关于构建环境的信息并提供了比较两个构建环境的选项。它可以将我们整个构建过程中的全局变量全部展示出来。相较于Environment Injector Plugin 插件它能够显示更多的变量。
我们如果在使用Groovy脚本的时候不知道有哪些全局属性。或者我们构造过程中用的很多插件但是不知道那些插件有没有暴露一些全局参数。都可以用这个接口进行测试和清理。
同时它还能将参数数据进行一个记录。跟随每次构建的输出结果进行展示 Role-based Authorization Strategy
插件地址 https://plugins.jenkins.io/role-strategy
推荐理由 Enables user authorization using a Role-Based strategy. Roles can be defined globally or for particular jobs or nodes selected by regular expressions.
使用基于角色的策略启用用户授权。可以全局定义角色也可以为正则表达式选择的特定作业或节点定义角色。 Pipeline Stage View
插件地址【https://plugins.jenkins.io/pipeline-stage-view/](https://plugins.jenkins.io/pipeline-stage-view/)
Pipeline 各阶段可视化插件。 ThinBackup 备份插件
插件官网 https://plugins.jenkins.io/thinBackup vscode常用pipeline插件 GroovyLint
groovy语法检查工具
Jenkins Pipeline Linter Connector
pipeline语法检查工具 pipeline语法
5个必备的组成部分
关键字解释pipeline定义一个流水线agent指定执行器stages阶段集stage阶段steps步骤 Parameters参数列表
Parameters 提供了一个用户在触发流水线时应该提供的参数列表这些用户指定参数的值可以通过 params 对象提供给流水线的 step步骤。只能定义在 pipeline 顶层。
目前支持的参数类型如下
string字符串类型的参数。text文本型参数一般用于定义多行文本内容的变量。booleanParam布尔型参数。choice选择型参数一般用于给定几个可选的值然后选择其中一个进行赋值。password密码型变量一般用于定义敏感型变量在 Jenkins 控制台会输出为*。
插件 Parameters
imageTag镜像 tag需要安装 Image Tag Parameter 插件后使用gitParameter获取 git 仓库分支需要 Git Parameter 插件后使用
示例
pipeline {agent anyparameters {//执行构建时需要手动配置字符串类型参数之后赋值给变量string(name: DEPLOY_ENV, defaultValue: staging, description: 1)//执行构建时需要提供文本参数之后赋值给变量text(name: DEPLOY_TEXT, defaultValue: One\nTwo\nThree\n, description: 2)//布尔型参数booleanParam(name: DEBUG_BUILD, defaultValue: true, description: 3)//选择形式列表参数choice(name: CHOICES, choices: [one, two, three], description: 4)//密码类型参数会进行加密password(name: PASSWORD, defaultValue: SECRET, description: A secret password)//获取镜像名称与tagimageTag(name: DOCKER_IMAGE, description: , image: kubernetes/kubectl, filter: .*, defaultTag: , registry: https://192.168.10.15, credentialId: harbor-account, tagOrder: NATURAL)//获取git仓库分支列表必须有git引用gitParameter(branch: , branchFilter: origin/(.*), defaultValue: , description: Branch for build and deploy, name: BRANCH, quickFilterEnabled: false, selectedValue: NONE, sortMode: NONE, tagFilter: *, type: PT_BRANCH)}stages {stage(env1) {steps {sh env}}stage(git) {steps {//使用gitParameter必须有这个git branch: $BRANCH, credentialsId: gitlab-key, url: git192.168.10.14:root/env.git}}}
}多行shell锁定工作目录
单行shcd到目录后执行完这行shell会自动回到默认目录
用多行shell 解决多行shell内都在cd到的目录。
stage(执行构建) {steps {sh cd demo_dirmvn clean package}echo 构建完成
}改变工作目录
pipeline的默认工作目录是${Workspace}, 可以通过dir()来改变这个步骤的工作目录。 // 拉取代码阶段stage(Checkout) {steps {dir(${CODE_DIR}) {// 使用git插件从指定的仓库拉取代码分支为params.BRANCH参数指定的值git branch: params.BRANCH, url: https://github.com/your/repo.git}}}Options
参考https://www.cnblogs.com/jingzh/p/16900430.html#12-%E5%A3%B0%E6%98%8E%E5%BC%8F%E6%B5%81%E6%B0%B4%E7%BA%BF%E7%AE%80%E4%BB%8B
Jenkins流水线支持很多内置指令比如 retry 可以对失败的步骤进行重复执行 n 次可以根据不同的指令实现不同的效果。
比较常用的指令如下:
参数解释buildDiscarder保留多少个流水线的构建记录disableConcurrentBuilds禁止流水线并行执行防止并行流水线同时访问共享资源导致流水线失败。disableResume如果控制器重启禁止流水线自动恢复。newContainerPerStageagent 为 docker 或 dockerfile 时每个阶段将在同一个节点的新容器中运行而不是所有的阶段都在同一个容器中运行。quietPeriod流水线静默期也就是触发流水线后等待一会在执行。retry流水线失败后重试次数。timeout设置流水线的超时时间超过流水线时间job 会自动终止。如果不加unit 参数默认为 1 分。timestamps为控制台输出时间戳。 options {//保留三个历史构建版本--效果如下图所示buildDiscarder(logRotator(numToKeepStr: 3))//注意手动触发的构建不生效quietPeriod(10)//流水线失败后重试次数retry(3)//超时时间1小时如果不加unit参数默认为1分timeout(time: 1, unit: HOURS)//所有输出每行都会打印时间戳timestamps()}post后置条件
Post 一般用于流水线结束后的进一步处理比如错误通知等。Post 可以针对流水线不同的结果做出不同的处理就像开发程序的错误处理比如 Python 语言的 try catch。
Post 可以定义在 Pipeline 或 stage 中目前支持以下条件
参数解释always无论 Pipeline 或 stage 的完成状态如何都允许运行该 post 中定义的指令changed只有当前 Pipeline 或 stage 的完成状态与它之前的运行不同时才允许在该 post 部分运行该步骤fixed当本次 Pipeline 或 stage 成功且上一次构建是失败或不稳定时允许运行该 post 中定义的指令regression当本次 Pipeline 或 stage 的状态为失败、不稳定或终止且上一次构建的 状态为成功时允许运行该 post 中定义的指令failure只有当前 Pipeline 或 stage 的完成状态为失败failure才允许在 post 部分运行该步骤通常这时在 Web 界面中显示为红色success当前状态为成功success执行 post 步骤通常在 Web 界面中显示为蓝色 或绿色unstable当前状态为不稳定unstable执行 post 步骤通常由于测试失败或代码 违规等造成在 Web 界面中显示为黄色aborted当前状态为终止aborted执行该 post 步骤通常由于流水线被手动终止触发这时在 Web 界面中显示为灰色unsuccessful当前状态不是 success 时执行该 post 步骤cleanup无论 pipeline 或 stage 的完成状态如何都允许运行该 post 中定义的指令。和 always 的区别在于cleanup 会在其它执行之后执行。 pipeline框架
/* groovylint-disable CompileStatic */
pipeline {// 指定构建代理这里使用任意可用的节点/* groovylint-disable-next-line TrailingWhitespace */agent any// 定义了 Pipeline 的一些全局选项options {//超时时间1小时如果不加unit参数默认为1分timeout(time: 1, unit: HOURS)//所有输出每行都会打印时间戳timestamps()//保留三个历史构建版本buildDiscarder(logRotator(numToKeepStr: 3))//注意手动触发的构建不生效quietPeriod(10)//流水线失败后重试次数retry(3)}parameters {string(name: BRANCH, defaultValue: main, description: 分支名称) // 定义一个字符串类型的参数用于指定要构建的分支默认值为mainbooleanParam(name: BUILD_TYPE, defaultValue: false, description: 是否构建) // 定义一个布尔类型的参数用于控制是否执行构建阶段默认值为false/* groovylint-disable-next-line LineLength */choice(name: ENVIRONMENT, choices: [dev, test, prod], description: 部署环境) // 定义一个选择类型的参数用于选择部署环境选项包括dev、test、prod}environment {// 定义代码存放的目录CODE_DIR /tmp/code_local_dir}stages {// 拉取代码阶段stage(Checkout) {steps {dir(${CODE_DIR}) {// 使用git插件从指定的仓库拉取代码分支为params.BRANCH参数指定的值git branch: params.BRANCH, url: https://github.com/your/repo.git}}}stage(Build) { // 定义一个名为Build的阶段when { // 设置阶段执行条件expression { params.BUILD_TYPE true } // 只有当BUILD_TYPE参数为true时才执行}steps {// 构建步骤例如编译、打包等}}stage(Test) { // 定义一个名为Test的阶段steps {// 测试步骤例如运行单元测试、集成测试等}}stage(Deploy) { // 定义一个名为Deploy的阶段when { // 设置阶段执行条件expression { params.ENVIRONMENT ! } // 只有当ENVIRONMENT参数不为空时才执行}steps {// 部署步骤例如部署到不同的环境}}}post { // 定义构建结束后执行的步骤always { // 无论构建成功、失败还是被中断都会执行// 总是执行的步骤例如清理工作、发送通知等}success { // 构建成功时执行// 成功时的步骤例如发送成功通知}failure { // 构建失败时执行// 失败时的步骤例如发送失败通知}}
}pipeline模块 dockerfile模块
但是感觉很鸡肋。。。
agent {dockerfile {filename Dockerfile.build //dockerfile文件名称dir build //执行构建镜像的工作目录label role-master //执行的node节点标签选择additionalBuildArgs --build-arg version1.0.2 //构建参数}
}