一步步部署基于Windows系统的Jenkins持续集成环境

如题:本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境。之所以写本文,是因为在最近工作当中,学习使用Jenkins时,确实遇到了一些问题,而大多数教程文档都是基于Mac或是Linux平台。为此很是头疼,经过一番摸索,终于走通了Windows平台下的一条路。

本CI系统流程:Dev提交代码,并merge到master分支-->Jenkns获取最新代码,开始构建(解析git触发响应,build solution,run automation,get result都在此步内完成)-->构建完成发送邮件。

首先,下载安装Jenkins:https://jenkins.io/

安装完成之后可以通过访问 http://hostname:8080 进入管理页面。选择:Manage Jenkins"。

在右侧列表中选中"Configure Global Secuity",选中"Allow user to sign up",然后就可以提前注册好要赋权限的账户。若以后不允许新管理账户的注册,在取消此选中项。

接下来,在代理项下,展开代理协议,并全部选中。此处选中之后,会启用"Java Web Start Agent",否则其在创建slave时处于不可见状态。(使用此代理,还需提前安装Java,到Java官网下载一个安装即可)

再回到"Manage Jenkins"界面,选择"Manage Node",点击"New Node"创建一个新的slave,这里我们选择"Permanent Agent",也可以选择从已有的slave复制出新的节点。填写名称,远程根目录和标签,启动方法选择如图。这里的远程目录用于存储Jenkins客户端运行文件。其他设置默认值就可以了:

好了,到这里一个node就创建好了。我们可以回到Node管理界面,此时新建的node是未连接状态,可以在你的另外一台server,或本机上访问你的Jenkins页面,并点击"Launch"连接node,并将之安装为本地service。如果你是Win10系统,会出现安装错误,这时别急,先将你的IE或这Edge以管理员的方式重新启动,再次访问Jenkins尝试连接和安装。当你觉得要启用这个安装的service时,先停止服务,然后再cmd命令窗口输入“sc delete servicename"就可以删除此服务了。servicename可以再service的右键属性中查看。

创建好了node,我们就和某一台server连接上了,接下来我们需要去创建job,去完成我们需要做的工作。

回到Jenkins主页面,点击"New Item",这里我选择使用"Freestyle Project"。编辑好项目名称,描述之后,我们可以定义清楚过时的build。这里我定义为保留7天以内的build,并规定最多只保留10个build。

前面介绍过,本CI系统响应git返回的触发条件,因此需要设置一个参数接收返回的响应,并在此设置在哪个node上执行此次构建任务,即填写创建node时设置的Label:

 

除了在创建node时的默认设置,我们也可以在此处设置自定义的workspace,获取的代码将存储在此处:

在源代码管理项中,我们选用Git,设置好相应的git项目url和访问的用户名和密码,分支选默认的master:

获取了代码之后,选择触发方式,如果时定时轮询的方式,选择"Poll SCM",设置间隔时间即可。需要每次提交都响应,这里我选择远程触发"Trigger builds remotely",设置一个token值待用。

这时,我们需要到Git网站代码管理设置页面,添加一个"Hooks & services",并启用"Pull request"。Payload URL的格式按照上面设置的token下提示的格式设置:

 

完成以上步骤之后,Job的运行环境基本上就已经设置成功了,接下来就是构建自动化运行脚本了。

回到刚才的Job编辑页面,继续往下走,点击"Add build step",在下拉框中可以看到,Jenkins支持的脚本语言十分丰富。这里我们会用到Window batch和Widows PowerShell。在这里写入你的业务处理脚本,保存一下。比如输出"Jenkins CI",在Windows batch框中输入"echo Jenkins CI",保存,就可以了。

最后,需要在脚本完成之后自动发送邮件。来看看是如何配置的:

配置邮件通知之前,我们需要到"Configure System"中设置一下邮件系统的基本配置。

首先,填写好Jenkins访问地址和发件人邮箱地址。

接下来,设置SMTP邮件服务器和一些默认值,包括接收对象,主题,内容等等。如此,最简单的邮件发送配置就完成了。后面来设置具体的邮件通知。

还是回到Job编辑页面,找到"Post-build Actions"并选择"Editable Email Notification"。设置实际的接收人,内容格式和默认主题。并设置默认内容,可以配合环境变量(此处不做详解)参数化、格式化内容文体。

需要发送附件的,还可以对附件的路径、名称进行设置。最后设置好邮件发送触发条件就OK了。

这样,一个完整的Windows平台下的CI系统就建立起来了。

 相关文章:

  • .Net项目使用持续集成服务AppVeyor,Travis-CI实战

  • 部署:持续集成(CI)与持续交付(CD)——《微服务设计》读书笔记

  • .NET Core+Selenium+Github+Travis CI => SiteHistory

  • Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1)

  • Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)

  • 利用VSTS跟Kubernetes整合进行CI/CD

  • Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署

原文地址:https://www.cnblogs.com/babygirl/p/jenkins_ci_windows.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

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

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

相关文章

Sentinel(二十二)之使用Nacos存储规则

转载自 Spring Cloud Alibaba基础教程:Sentinel使用Nacos存储规则 通过上一篇《使用Sentinel实现接口限流》的介绍,相信大家对Sentinel已经有了初步的认识。在Spring Cloud Alibaba的整合封装之下,接口限流这件事情可以非常轻易的整合到我们…

vue 开发2017年变化回顾及2018年展望

vue.js 变化从 github 的发布记录我们可以看到2017年 vue.js 的第一个发布为 v2.1.9,最后一个为 v2.5.13,主要发布小版本 2.2~2.5。这些发布提升了vue 与 TypeScript 的结合、改进了对服务端渲染(SSR)和 native 渲染的支持、提供了…

Sentinel(二十三)之使用Apollo存储规则

转载自 Spring Cloud Alibaba基础教程:Sentinel使用Apollo存储规则 上一篇我们介绍了如何通过Nacos的配置功能来存储限流规则。Apollo是国内用户非常多的配置中心,所以,今天我们继续说说Spring Cloud Alibaba Sentinel中如何将流控规则存储…

Quartz.Net分布式任务管理平台

前言:我相信大多数人公司的业务上都有定时任务这么个功能,我们公司也不例外,刚来公司的时候使用Quartz.Net为我们组做了第一个任务,大致流程是:新建一个控制台程序,引用需要的程序集,Execute方法…

Sentinel(二十四)之Sentinel Dashboard中修改规则同步到ZooKeeper

转载自 Springboot使用Sentinel限流,集成zookeeper完成规则的持久化 上一篇简单介绍了sentinel限流的基本配置和使用,这一篇我们来稍微深入一点,看看如何将zookeeper继承进来,用以保存添加的流控规则。 上一篇中我们启动了dash…

微软Azure AspNetCore微服务实战第2期(内附PPT下载)

2018年1月28日,虽然上海的大雪在城区已经见不到踪影,但还是很冷。不过天气再冷,也阻止不了小伙伴参加活动的热情。感谢王振,苏老师以及微软Azure API Management的产品经理Alvin,给大家带来微服务实战,企业…

Sentinel(二十五)之Sentinel Dashboard同步Apollo存储规则

转载自 Spring Cloud Alibaba基础教程:Sentinel Dashboard同步Apollo存储规则 在之前的两篇教程中我们分别介绍了如何将Sentinel的限流规则存储到Nacos和Apollo中。同时,在文末的思考中,我都指出了这两套整合方案都存在一个不足之处&#…

为什么选择.NETCore?

为什么选择.NETCore?在开展话题之前先出一张ASP.NETCore VS Node.js的性能对比图 ASP.NET Core VS node.js:继续正文:学习新的开发框架是一项巨大的投资。您需要学习如何在新框架中编写,构建,测试,部署…

欢乐纪中某A组赛【2019.7.10】

前言 好烦我最后写对了T1T1T1的808080分结果交错题导致T2T2T2的404040分没了T1T1T1也没拿多那些分。 话说好像ZDYZDYZDY比我还惨 成绩 这里还是按OJOJOJ上的分数排名 JJJ表示初中,HHH表示高中后面加的是几年级 RankRankRankPersonPersonPersonScoreScoreScoreAAA…

用C#编写Linux守护进程

如果要在Red Hat Enterprise Linux上将.NET Core进程作为后台进程运行,则可以创建自定义systemd单元。今天我将为.NET Core编写两个自定义系统单元的例子。一个是运行.NET Core控制台应用程序的一种类型,另一个是运行ASP.NET Core Web应用程序的简单类型…

AWS Lambda现已支持.NET Core 2.0

Amazon宣称.NET Core 2.0现在已经支持AWS Lambda以及无服务器应用程序了。开发者们现在可以使用C#和.NET Core 2.0来为AWS Lambda编写代码和编写运行于AWS的无服务器应用程序了。自2017年2月Amazon开始了对C#编程语言的支持,这使得.NET开发者能够使用.NET Core 1.0运…

Nacos(一)之简介

转载自 什么是 Nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现…

开源纯C#工控网关+组态软件(八)表达式编译器

一、 引子监控画面的主要功能之一就是跟踪下位机变量变化,并将这些变化展现为动画。大部分时候,界面上一个图元组件的某个状态,与单一变量Tag绑定,比如电机的运行态,绑定一个MotorRunning信号;但有些时候…

g4e基础篇#6 了解Git历史记录

Git的版本历史记录采用了与传统集中式版本管理系统完全不同的方式进行组织,在刚开始使用Git的时候我们往往会不知所措,比如看到这样的历史记录。看到这个七拐八拐的图形,你可能完全不知道它代表了什么。其实这正是Git的特别之处,G…

Ray框架QA

Orleans与Akka对比,为什么选用Orleans?答: Akka对参与开发的人员要求更高一些,普遍是专家级别,Orleans框架进一步抽象了一层,结合C#语言特性,能普遍降低开发难度。下面是知乎网友的答案,可以参考…

Nacos(三)之架构

转载自 Nacos 架构 基本架构及概念 服务 (Service) 服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。Nacos 支持主流的服务…

ASP.NET Core Razor页面禁用防伪令牌验证

这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证。Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的、数据驱动的网站;支持跨平台开发,可以部署到Windows,Unix和Mac操作系…

ASP.NETCore的Kestrel服务器

什么是Kestrel服务器Kestrel是开源的(GitHub提供的源代码),事件驱动的异步I / O服务器,用于在任何平台上托管ASP.NET应用程序。这是一个监听服务器和一个命令行界面。您将侦听服务器安装在Windows或Linux服务器上,并在…

Polly组件对微服务场景的价值

Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员!App vNext:https://github.com/App-vNextGitHub:https://github.com/App-vNext/PollyNanoFabric是一个开源的微服务架构,也是善友大哥推荐的:https://github.com/geffzhang/NanoFabric对于NanoFab…

Nacos(七)之Spring Cloud集成

转载自 Nacos Spring Cloud 快速开始 本文主要面向 Spring Cloud 的使用者,通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务注册发现。 关于 Nacos Spring Cloud 的详细文档请参看:Nacos Config 和 Nacos Discovery。 通过 Nac…