当前位置: 首页 > 编程日记 > 正文

Jenkins简介及在Windows上的简单使用示例

Jenkins是一款开源CI(Continuous Integration,持续集成)&CD(Continuous Delivery,持续交付)软件,用于自动化各种任务,包括构建、测试和部署软件,源码在https://github.com/jenkinsci/jenkins ,License为MIT,最新发布版本为2.268,版本发布频繁。Jenkins支持各种运行方式,可通过系统包、Docker或者通过一个独立的Java程序。本质上,Jenkins是一个自动化引擎,它支持许多自动模式。

Jenkins特性:

(1).持续集成和持续交付:作为一个可扩展的自动化服务器,Jenkins可以用作简单的CI服务器,或者变成任何项目的持续交付中心。

(2).简易安装:Jenkins是一个基于Java的独立程序,可以立即运行,包含Windows、Mac OS X和其它类Unix操作系统。

(3).配置简单:Jenkins可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助。

(4).插件:通过更新中心中的1000多个插件,Jenkins集成了持续集成和持续交付工具链中几乎所有的工具。

(5).扩展:Jenkins可以通过其插件架构进行扩展,从而为Jenkins可以做的事提供几乎无限的可能性。

(6).分布式:Jenkins可以轻松地在多台机器上分配工作,帮助更快速地跨多个平台推动构建、测试和部署。

Jenkins Pipeline(或简称为”Pipeline”或Jenkins流水线):是一套插件,将持续交付的实现和实施集成到Jenkins中。Jenkins Pipeline的定义通常被写入到一个文本文件(称为Jenkinsfile),该文件可以被放入项目的源代码控制库中。在配置好Pipeline之后,Jenkins会自动检测你仓库中创建的任何新的分支或合并请求,并开始为它们运行Pipelines。下图为一种CD方案的Pipelines流程图:

Pipelines由多个步骤(step)组成,允许你构建、测试和部署应用。可以把”步骤(step)”看作一个执行单一动作的单一命令。当一个步骤运行成功时继续运行下一个步骤。当任何一个步骤执行失败时,Pipeline的执行结果也为失败。当所有的步骤都执行完成并且为成功时,Pipeline的执行结果才为成功。

在Pipeline中可以很容易的运行Docker镜像和容器。

大多数最基本的持续交付Pipeline至少会有三个阶段:构建、测试和部署,这些阶段被定义在Jenkinsfile。Jenkinsfile能使用两种语法进行编写:声明式和脚本化。

Pipeline是用户定义的一个CD流水线模型。Pipeline的代码定义了整个的构建过程,它通常包括构建、测试和交付应用程序阶段(stage)。

(1).构建:对于许多项目来说,Pipeline”工作”的开始就是”构建”阶段。通常Pipeline的这个阶段包括源代码的组装、编译和打包。Jenkins有许多插件可以用于调用几乎所有常用的构建工具。

(2).测试:运行自动化测试是任何成功的持续交付过程的重要组成部分。因此,Jenkins有许多测试记录、报告和可视化工具,这些都是由各种插件提供的。最基本的,当测试失败时,让Jenkins记录这些失败以供汇报以及在Web UI中可视化。

(3).部署:可以隐含许多步骤,这取决于项目或组织的要求,并且可能是从发布构建的交付件到Artifactory服务器,到将代码推送到生产系统的任何东西。”Deploy(部署)”阶段只有在之前的阶段都成功完成后才会进行,否则Pipeline会提前退出。

以上内容主要摘自:https://www.jenkins.io/zh/doc/

Windows上安装、配置、简单使用Jenkins操作步骤:

1.安装Java8:

(1).从https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html  下载jdk-8u271-windows-x64.exe;

(2).安装jdk;

(3).将目录C:\Program Files\Java\jdk1.8.0_271\bin添加到系统环境变量中;

(4).打开命令提示符,输入”java -version”,如果现实java版本信息,说明安装正确。

2.安装Jenkins:

(1).从https://www.jenkins.io/download/ 下载2.268版本jenkins.msi;

(2).安装Jenkins:选中Run servies as localSystem;端口默认为8080,也可自己指定;

(3).安装完后会自动打开网页http://localhost:8080/login?from=%2F,稍等片刻后,会提示解锁Jenkins,如下图所示:

(4).将上图中指定目录下的initialAdminPassword文件内容粘贴,点击继续;

(5).点击”安装推荐的插件”,如下图所示;

(6).创建管理员用户,如下图所示,点击保存并完成:

3.使用Jenkins构建任务:

(1).继续上图,点击”开始使用Jenkins”,或通过在地址栏输入http://localhost:8080/ ,然后输入用户名和密码登入,如下图所示:

(2).点击”Create a job”,输入任务名称,如”python_test”,点击”Freestyle project”,再点击确定,如下图所示:

(3).配置:General,添加项目描述;然后构建选中”Execute Windows batch command”,输入” python e:/GitCode/Python_Test/test.py”,点击保存,如下图所示:

(4).点击”Build Now”,显示有红色的小圆点,表示构建失败,如下图所示:

(5).点击红色的小圆点,会显示构建失败的原因,如下图所示:

(6).回到Jenkins首页,点击”构建执行状态”,右侧会列出本机信息,如下图所示:

(7). 点击”master”,点击”配置从节点”,勾选”节点属性”中的”Environment variables”,点击”新增”,”键”框中填入”path”,”值”中填入python的安装路径,即” C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\”,点击保存,如下图所示:

(8).再次点击”Build Now”,显示蓝色的小圆点,表示构建成功,如下图所示:

(9).点击蓝色的小圆点,控制台输出信息如下图所示:与直接通过命令提示符执行结果相同,如下图所示:

相关文章:

IOS开发之数据sqlite使用

一、引入工具包引入工具包libsqlite3.dylib,该工具包为C语言工具包。 二、代码操作数据库1、创建并且链接数据库 - (void) _connectDB{//1>获取沙盒路径作为数据库创建时候的初始化路径NSString * pathNSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDom…

通过Dockerfile构建Docker镜像

Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添加"\"的命令换行方式,以及行首"#"进行注释的格式. 使用Dockerfile构建Docker镜像时注…

华为腾讯百度众安微众360大咖齐聚,2019中国区块链开发者大会首批议程曝光!...

作者 | Aholiab出品 | 区块链大本营(blockchain_camp)随着区块链被定义为国家战略,区块链技术得到升温。据有关国际研究机构预测,三年后全球区块链市场规模将达到139.6亿美元(约合986.23亿元人民币)&#x…

iOS GCD使用

dispatch_queue_t queue dispatch_queue_create("testQueue", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue, ^{ // 追加任务1[self.hud show:YES];for (int i 0; i < 2; i) { [NSThread sleepForTimeInterval:2]; // 模拟耗时操作[self reqHopwork];} })…

01 http协议概念及工作流程

一&#xff1a;HTTP协议 重要性: 无论是以后用webserverice ,还是用rest做大型架构,都离不开对HTTP协议的认识. 甚至可以简化的说: webservice http协议XML Rest HTTP协议 json 各种API,也一般是用httpXML/json来实现的. 往小说:做采集,小偷站,也需要对HTTP协议有所了解, 以…

iOS原生与html交互 使用第三方WebViewJavascriptBridge

HTML页面代码 <!DOCTYPE html><html xmlns:http"http://www.w3.org/1999/xhtml"><head> <meta charset"utf-8"> <title>迎新好礼</title> <meta name"viewport" content"widthdevice-width,initial…

Docker容器中挂载NFS共享目录

之前在https://blog.csdn.net/fengbingchun/article/details/110561129 介绍过使用Dockerfile构建ubuntu 16.04镜像,并在容器中编译执行Messy_Test项目.这里介绍下如何在容器中挂载NFS服务器上的共享目录. Dockerfile内容如下&#xff1a; FROM ubuntu:16.04 LABEL maintaine…

倒计时1天 | 2019 中国大数据技术大会(BDTC)报名通道即将关闭(附参会提醒)...

2019年12月5-7日&#xff0c;由中国计算机学会主办&#xff0c;CCF 大数据专家委员会承办&#xff0c;CSDN、中科天玑数据科技股份有限公司协办的中国大数据技术大会&#xff08;BDTC 2019&#xff09;将于北京长城饭店隆重举行。届时&#xff0c;超过百位顶尖技术专家将齐聚于…

Android TextView的一些小知识

2019独角兽企业重金招聘Python工程师标准>>> 1.设置文字行距 android:lineSpacingExtra"8dp" 或者 android:lineSpacingMultiplier"1.5" 2.设置字间距 在API21里可以设置 API 21 android:letterSpacing"0.5f" //字间距 注意&#x…

iOS WKWebView带进度条封装(只用传入url,可改变进度条颜色)

1 NSTimeraddition.h #import <Foundation/Foundation.h> interface NSTimer (addition) /** 暂停时间 */ - (void)w_pauseTime; /** 获取内容所在当前时间 */ - (void)w_webPageTime; /** 当前时间 time 秒后的时间 */ - (void)w_webPageTimeWithTimeInterval:(NSTimeIn…

Ubuntu上配置VS Code调试C++

直接使用GDB在Ubuntu上调试C code&#xff0c;有时不是很方便&#xff0c;这里介绍下在Ubuntu上通过Visual Studio Code调试C code操作步骤&#xff0c;通过CMake编译。 安装所需依赖&#xff1a; (1).在Ubuntu上安装Visual Studio Code最新稳定版本1.51.1&#xff1b; (2).…

因果关系是通向强AI的阶梯or作用被夸大?

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;一直以来&#xff0c;机器学习和统计学之间的界限就比较模糊&#xff0c;比如诺奖得主托马斯萨金特就曾经说过人工智能其实就是统计学&#xff0c;只不过用了一个很华丽的辞藻。但同时也有人认为&#xff0…

Android中设置TextView的颜色setTextColor

tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(Color.WHITE); tv.setTextColor(Color.rgb(255, 255, 255)); //注意Color是大写C&#xff0c;不是color.holo_orange_dark,这样错误并没效果的 tv.setBackgroundResource(R.drawable.icon_bg_rectan…

iOS 跑马灯封装(带点击事件)

1.WAdvertScrollView.h#import <UIKit/UIKit.h>class WAdvertScrollView;typedef enum : NSUInteger {/// 一行文字滚动样式WAdvertScrollViewStyleNormal,/// 二行文字滚动样式WAdvertScrollViewStyleMore, } WAdvertScrollViewStyle;protocol WAdvertScrollViewDelegat…

日期与unix时间戳之间的转换C++实现

之前在https://blog.csdn.net/fengbingchun/article/details/107023645 中介绍过gmtime和localtime的区别&#xff0c;这里介绍下日期与Unix时间戳之间转换的实现&#xff0c;其中也会用到这两个函数。 Unix时间戳(Unix timestamp)&#xff1a;是一种时间表示方式&#xff0c;…

模型训练完才是业务的开始?说说模型监控 | CSDN博文精选

扫码参与CSDN“原力计划”作者 | A字头来源 | 数据札记倌(ID:Data_Groom)“模型训练结束后才是业务真正的开始”简述每次模型训练完成后&#xff0c;并不意味着项目的结束&#xff0c;在训练模型后&#xff0c;我们还需要将其稳定上线&#xff0c;然后部署一套相应的监控体系&a…

后端码农谈前端(CSS篇)第一课:CSS概述

一、从扮演浏览器开始 扮演浏览器是Head First图书中很有意义的一个环节。可作者忘记了告诉我们扮演浏览器的台本。我们从这里开始。 上图是webkit内核渲染html和css的流程图。从该图我们可以知道以下几个关键信息&#xff1a; HTML的解析过程和CSS的解析过程是独立完成的。HTM…

远场语音识别错误率降低30%,百度提基于复数CNN网络的新技术

【12月公开课预告】&#xff0c;入群直接获取报名地址12月11日晚8点直播主题&#xff1a;人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播&#xff1a;利用容器技术打造AI公司技术中台12月17日晚8点直播主题&#xff1a;可重构计算&#xff1a;能效比、通用性…

深度神经网络中的局部响应归一化LRN简介及实现

Alex、Hinton等人在2012年的NIPS论文《ImageNet Classification with Deep Convolutional Neural Networks》中将LRN应用于深度神经网络中(AlexNet)。论文见&#xff1a;http://www.cs.toronto.edu/~hinton/absps/imagenet.pdf &#xff0c;截图如下&#xff1a; 公式解释&…

iOS 被拒解析

原因&#xff1a; Your app uses the "prefs:root" non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.Continuing to us…

MSSQL数据库统计所有表的记录数

今天需要筛选出来库中行数不为零的表&#xff0c;于是动手写下了如下存储过程。 CREATE PROCEDURE TableCount AS BEGIN SET NOCOUNT ON DECLARE t1 AS TABLE(id INT IDENTITY,NAME NVARCHAR(50),RowsCount INT) DECLARE indexid AS INT DECLARE maxid AS INT DECLARE count A…

经典网络AlexNet介绍

AlexNet经典网络由Alex Krizhevsky、Hinton等人在2012年提出&#xff0c;发表在NIPS&#xff0c;论文名为《ImageNet Classification with Deep Convolutional Neural Networks》&#xff0c;论文见&#xff1a;http://www.cs.toronto.edu/~hinton/absps/imagenet.pdf &#xf…

微软张若非:搜索引擎和广告系统,那些你所不知的AI落地技术

【12月公开课预告】&#xff0c;入群直接获取报名地址12月11日晚8点直播主题&#xff1a;人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播&#xff1a;利用容器技术打造AI公司技术中台12月17日晚8点直播主题&#xff1a;可重构计算&#xff1a;能效比、通用性…

iOS 之 IQKeyboardManager 解决使用UITableView 界面上移问题

- (void)viewWillAppear:(BOOL)animated {[IQKeyboardManager sharedManager].enable NO;}- (void)viewWillDisappear:(BOOL)animated{[super viewWillDisappear:animated];[IQKeyboardManager sharedManager].enable YES; }

excel增加上一列的数值(日期)

TEXT(D2-1,"m月d日") 有年的话就是 TEXT(D2-1,"yyyy年m月d日") D2就是参照日期转载于:https://www.cnblogs.com/hont/p/4352877.html

iOS 一些基础的方法

iOS button字体居中等的设置 self.replyBtn.contentHorizontalAlignment UIControlContentHorizontalAlignmentCenter; UIControlContentHorizontalAlignmentCenter 0, UIControlContentHorizontalAlignmentLeft 1, UIControlContentHorizontalAlignmentRight 2…

经典网络VGGNet介绍

经典网络VGGNet(其中VGG为Visual Geometry Group)由Karen Simonyan等于2014年提出&#xff0c;论文名为《Very Deep Convolutional Networks for Large-Scale Image Recognition》&#xff0c;论文见&#xff1a;https://arxiv.org/pdf/1409.1556.pdf&#xff0c;网络结构如下图…

​70行Go代码打败C

【12月公开课预告】&#xff0c;入群直接获取报名地址12月11日晚8点直播主题&#xff1a;人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播&#xff1a;利用容器技术打造AI公司技术中台12月17日晚8点直播主题&#xff1a;可重构计算&#xff1a;能效比、通用性…

Android开源框架ImageLoader的完美例子

要使用ImageLoader就要到这里下载jar包&#xff1a; https://github.com/nostra13/Android-Universal-Image-Loader 然后导入项目中去就行了 项目文档结构图&#xff1a; 从界面说起&#xff0c;界面本身是没什么好说的&#xff0c;就是如何在xml当中进行定义罢了 有以下这么多…

“掘金”金融AI落地,英特尔趟出一套通关攻略

有人说&#xff0c;金融业是最大的AI应用场景&#xff0c;但不管怎样&#xff0c;不可否认的事实是金融业已经从数字化走向AI化。某种程度上&#xff0c;AI与金融业有着天然的契合性&#xff1a;其一&#xff0c;金融业本身就是以数据为基本元素的行业&#xff0c;它为AI的模型…