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协议概念及工作流程
一: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内容如下: FROM ubuntu:16.04 LABEL maintaine…
倒计时1天 | 2019 中国大数据技术大会(BDTC)报名通道即将关闭(附参会提醒)...
2019年12月5-7日,由中国计算机学会主办,CCF 大数据专家委员会承办,CSDN、中科天玑数据科技股份有限公司协办的中国大数据技术大会(BDTC 2019)将于北京长城饭店隆重举行。届时,超过百位顶尖技术专家将齐聚于…

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,有时不是很方便,这里介绍下在Ubuntu上通过Visual Studio Code调试C code操作步骤,通过CMake编译。 安装所需依赖: (1).在Ubuntu上安装Visual Studio Code最新稳定版本1.51.1; (2).…
因果关系是通向强AI的阶梯or作用被夸大?
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)一直以来,机器学习和统计学之间的界限就比较模糊,比如诺奖得主托马斯萨金特就曾经说过人工智能其实就是统计学,只不过用了一个很华丽的辞藻。但同时也有人认为࿰…

Android中设置TextView的颜色setTextColor
tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(Color.WHITE); tv.setTextColor(Color.rgb(255, 255, 255)); //注意Color是大写C,不是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的区别,这里介绍下日期与Unix时间戳之间转换的实现,其中也会用到这两个函数。 Unix时间戳(Unix timestamp):是一种时间表示方式,…
模型训练完才是业务的开始?说说模型监控 | CSDN博文精选
扫码参与CSDN“原力计划”作者 | A字头来源 | 数据札记倌(ID:Data_Groom)“模型训练结束后才是业务真正的开始”简述每次模型训练完成后,并不意味着项目的结束,在训练模型后,我们还需要将其稳定上线,然后部署一套相应的监控体系&a…

后端码农谈前端(CSS篇)第一课:CSS概述
一、从扮演浏览器开始 扮演浏览器是Head First图书中很有意义的一个环节。可作者忘记了告诉我们扮演浏览器的台本。我们从这里开始。 上图是webkit内核渲染html和css的流程图。从该图我们可以知道以下几个关键信息: HTML的解析过程和CSS的解析过程是独立完成的。HTM…
远场语音识别错误率降低30%,百度提基于复数CNN网络的新技术
【12月公开课预告】,入群直接获取报名地址12月11日晚8点直播主题:人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播:利用容器技术打造AI公司技术中台12月17日晚8点直播主题:可重构计算:能效比、通用性…

深度神经网络中的局部响应归一化LRN简介及实现
Alex、Hinton等人在2012年的NIPS论文《ImageNet Classification with Deep Convolutional Neural Networks》中将LRN应用于深度神经网络中(AlexNet)。论文见:http://www.cs.toronto.edu/~hinton/absps/imagenet.pdf ,截图如下: 公式解释&…

iOS 被拒解析
原因: 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数据库统计所有表的记录数
今天需要筛选出来库中行数不为零的表,于是动手写下了如下存储过程。 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年提出,发表在NIPS,论文名为《ImageNet Classification with Deep Convolutional Neural Networks》,论文见:http://www.cs.toronto.edu/~hinton/absps/imagenet.pdf …
微软张若非:搜索引擎和广告系统,那些你所不知的AI落地技术
【12月公开课预告】,入群直接获取报名地址12月11日晚8点直播主题:人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播:利用容器技术打造AI公司技术中台12月17日晚8点直播主题:可重构计算:能效比、通用性…

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年提出,论文名为《Very Deep Convolutional Networks for Large-Scale Image Recognition》,论文见:https://arxiv.org/pdf/1409.1556.pdf,网络结构如下图…
70行Go代码打败C
【12月公开课预告】,入群直接获取报名地址12月11日晚8点直播主题:人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播:利用容器技术打造AI公司技术中台12月17日晚8点直播主题:可重构计算:能效比、通用性…
Android开源框架ImageLoader的完美例子
要使用ImageLoader就要到这里下载jar包: https://github.com/nostra13/Android-Universal-Image-Loader 然后导入项目中去就行了 项目文档结构图: 从界面说起,界面本身是没什么好说的,就是如何在xml当中进行定义罢了 有以下这么多…
“掘金”金融AI落地,英特尔趟出一套通关攻略
有人说,金融业是最大的AI应用场景,但不管怎样,不可否认的事实是金融业已经从数字化走向AI化。某种程度上,AI与金融业有着天然的契合性:其一,金融业本身就是以数据为基本元素的行业,它为AI的模型…