Jenkins-Pipeline

Pipeline

1 安装插件
在这里插入图片描述

2 新建一个 Pipline 工程
在这里插入图片描述
3 配置Pipeline 脚本
agent的使用可以参考这个文档

pipeline {agent anystages {stage('Build') { steps {echo 'Building project...'}}stage('Test') { steps {echo 'Testing project...'}}stage('Deploy') { steps {echo 'Deploying to server ...'}}stage('Push') { steps {echo 'Pusing to harbor ...'}}}
}

我们配置的每一个阶段都可以在这里展示:
在这里插入图片描述
4 如果我们需要在阶段内部执行多条指令

pipeline {agent anystages {stage('Build') { steps {sh 'echo "multi-steps pipeline"'sh '''echo "multi command"pwdls'''}}}
}

5 失败以后重重试

pipeline {agent anystages {stage('Build') { steps {sh 'echo "multi-steps pipeline"'sh '''echo "multi command"pwdls'''}}stage('Test') { steps {echo 'Testing project...'}}stage('Deploy') { steps {echo 'Deploying to server ...'}}stage('Push') { steps {echo 'Pusing to harbor ...'}}stage('Retry') { steps {retry(3) {sh 'Retry failure...'}}}}
}

在这里插入图片描述

在这里插入图片描述
6 超时重试

pipeline {agent anystages {stage('Build') { steps {sh 'echo "multi-steps pipeline"'sh '''echo "multi command"pwdls'''}}stage('Test') { steps {echo 'Testing project...'}}stage('Deploy') { steps {retry(3) {sh 'echo hello_world'}timeout(time: 3, unit: 'SECONDS') {sh 'sleep 5'}}}stage('Push') { steps {echo 'Pusing to harbor ...'}}stage('Retry') { steps {retry(3) {sh 'Retry failure...'}}}}
}

在这里插入图片描述
7 使用环境变量

pipeline {agent any#在这里进行环境变量的定义environment {EV1 = 'e1'EV2 = 'e2'}stages {stage('Build') { steps {#在后面的i奥本中进行应用sh 'echo "Hello, $NAME1 and $NAME2"'}}}
}

上面的例子是为了方便演示,这里也提供一个生产环境中会使用的真正的pipeline,是一个脱敏后的demo, 然后我们还可加一些代码检查机制在构建步骤里面,关于代码检查:

pipeline {agent {node {label 'Slave1'}}environment {def artifactId = 'xxxx'def projectNameSpace='backend'def harborIp='ip:8888'}stages{stage('pull'){steps{git branch: 'master', credentialsId: 'jenkins-gitlab', url: 'http:xxxx.git'}}stage('compiler'){steps{ sh '''mvn clean package -DskipTests -Pmaster'''}}stage('build'){environment {def version = sh script: 'mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate -Dexpression=project.version -q -DforceStdout', returnStdout: true} steps{sh '''cp -r ./gis-config    startup/demo-project/target/mv ./startup/demo-project/Dockerfile startup/demo-project/target/Dockerfiledocker build -t ${harborIp}/${projectNameSpace}/b_${artifactId}:${version} startup/demo-project/targetdocker build -t ${harborIp}/${projectNameSpace}/b_${artifactId}:1.1.8 startup/demo-project/target'''}}stage('push'){environment {def version = sh script: 'mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate -Dexpression=project.version -q -DforceStdout', returnStdout: true} steps{sh '''docker push ${harborIp}/${projectNameSpace}/b_${artifactId}:${version}docker push ${harborIp}/${projectNameSpace}/b_${artifactId}:1.1.8'''}}}
}

8 使用post action

pipeline {agent anystages {stage('Build') { steps {sh 'echo "multi-steps pipeline"'sh '''echo "multi command"pwdls'''}}stage('Test') { steps {echo 'Testing project...'}}stage('Deploy') { steps {retry(3) {sh 'echo hello_world'}timeout(time: 3, unit: 'SECONDS') {sh 'sleep 5'}}}stage('Push') { steps {echo 'Pusing to harbor ...'}}stage('Retry') { steps {retry(3) {sh 'Retry failure...'}}}}post {always {echo 'always executed'}success {echo 'executed if this test success'}failure {echo 'executed if this test fails'}}
}

在这里插入图片描述

Blue Ocean

除了在Jenkins项目配置中写入Pipeline DSL, 还可以通过BlueOcean UI设置流水线项目。

Blue Ocean 重新思考Jenkins的用户体验,重新设计Jenkins Pipeline, 但与原有的Jenkins作业兼容,增加了新的特性:

  • Pipeline可视化
  • 异常处理可视化
  • Pipeline 编辑器
  • Git集成协作

但是BlueOcean暂时还不成熟,原有的Jenkins classic UI依然保留。需要以插件的形式安装BlueOcean

BlueOcean Plugin

默认情况下不安装 BlueOcean Plugin,手动安装流程如下

  • Manage Jenkins > Manage Plugins > Available Tab
  • 在filter框内输入blue ocean,点击安装
  • Blue Ocean 会自动安装有依赖关系的插件
  • 重启

Dashboard左侧出现Open Blue Ocean

这个其实就是,将Pipe的脚本采用UI的界面来配置,这里演示了,感兴趣的可以去试试,我还是喜欢直接写脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413166.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【安装VMware Tools】实现Vmware虚拟机和主机之间复制、粘贴内容、拖拽文件

https://www.bilibili.com/video/BV1rN411277B/?spm_id_from333.788.recommend_more_video.6&vd_sourcefb8dcae0aee3f1aab700c21099045395 https://blog.csdn.net/wxqian25/article/details/19406673 待解决方案: 重新下载ubuntu,然后按照 https://…

瑞_Java开发手册_(六)工程结构

文章目录 工程结构的意义(一) 应用分层(二) 二方库依赖(三) 服务器 🙊前言:本文章为瑞_系列专栏之《Java开发手册》的工程结构篇,主要介绍应用分层、二方库依赖、服务器。由于博主是从阿里的《Java开发手册》学习到Java的编程规约&#xff0c…

美国智库发布《用人工智能展望网络未来》的解析

文章目录 前言一、人工智能未来可能改善网络安全的方式二、人工智能可能损害网络安全的方式三、人工智能使用的七条建议四、人工智能的应用和有效使用AI五、安全有效地使用人工智能制定具体建议六、展望网络未来的人工智能(一)提高防御者的效率&#xff…

c++基础3

一 、构造函数的初始化列表 可以指定成员对象的初始化方式 构造函数的初始化列表是在 C 中用于初始化成员变量的一种机制。它在构造函数的参数列表之后,构造函数的函数体之前使用,并使用冒号 : 分隔。初始化列表可以用于给成员变量赋初值,而不…

C#,入门教程(19)——循环语句(for,while,foreach)的基础知识

上一篇: C#,入门教程(18)——分支语句(switch-case)的基础知识https://blog.csdn.net/beijinghorn/article/details/124039953 一、for循环 当老师进入教室,从门口开始分别按行、列点名,看看哪位翘课&…

Elastic Stack(1):Elastic Stack简介

1 简介 ELK是一个免费开源的日志分析架构技术栈总称,官网https://www.elastic.co/cn。包含三大基础组件,分别是Elasticsearch、Logstash、Kibana。但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景&#xf…

Docker(三)使用 Docker 镜像

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 使用 Docker 镜像 在之前的介绍中,我们知道镜像是 Docker 的三大组件之一。 Docker 运行容器前需要本地存在对应的镜像&#x…

2018年认证杯SPSSPRO杯数学建模D题(第一阶段)投篮的最佳出手点全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 对于投篮最佳出手点的探究 D题 投篮的最佳出手点 原题再现: 影响投篮命中率的因素不仅仅有出手角度、球感、出手速度,还有出手点的选择。规范的投篮动作包含两膝微屈、重心落在两脚掌上、下肢蹬地发力、身体随之向前上…

实战纪实 | 记一次攻防演练

看到一处登录后台,各种操作都尝试过无果,翻了一下js,看到一处文件上传接口泄露(没图了,已经整改了) 构造上传数据包,很nice,上传成功 直接连接webshell,搭建隧道进行内网穿透 翻看配置文件&…

Docker 容器连接

Docker 容器连接 前面我们实现了通过网络端口来访问运行在 docker 容器内的服务。 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。 下面我们来实现通过端口连接到一个 docker 容器。 网络端口映射 …

Mac系统数据占用太多怎么清理 mac怎么清除下载的软件

在我们使用MacBook电脑的过程中,经常会遇到一个常见的问题,那就是储存空间不足。当我们的硬盘空间被占满的时候,系统的运行速度可能会变得缓慢,并且我们无法保存新的文件或者安装新的应用程序。要解决这个问题,清理缓存…

CSS 实现卡片以及鼠标移入特效

CSS 实现卡片以及鼠标移入特效 文章目录 CSS 实现卡片以及鼠标移入特效0、效果预览默认鼠标移入后 1、创建卡片组件2、添加样式3、完整代码 0、效果预览 默认 鼠标移入后 在本篇博客中,我们将探讨如何使用 CSS 来实现卡片组件,并添加鼠标移入特效&#…