gitlab+jenkins,gitlab+jenkins自动化部署

  gitlab+jenkins,gitlab+jenkins自动化部署

  原地址:https://www.yuque.com/wujisheng/gx7677/eb4l5q

  

什么是Jenkins?

  Jenkins是一个开源软件项目,是一个基于Java开发的持续集成工具。它用于监控重复工作,旨在提供一个开放易用的软件平台,使软件的持续集成成为可能。

  

什么是MSbuild?

  MSBuild是微软和Visual Studio的构建系统。它不仅仅是一个建筑工具,它应该被称为一个具有相当扩展能力的自动化平台。MSBuild平台主要涉及三个部分:执行引擎、构造工程和任务。其核心是执行引擎,包括定义建筑工程规范、解释建筑工程和执行“建筑动作”;建筑工程用来描述建筑任务。大多数情况下,我们使用MSBuild遵循规范,写一个建筑工程。MSBuild引擎执行的每一个“构造动作”都是通过任务来实现的,任务是MSBuild的扩展机制。通过编写新的任务,可以不断扩展MSBuild的执行能力。所以这三个部分分别代表引擎、脚本和扩展能力。

  PS。Visual Studio最终需要通过MSbuild编译项目发布,但它只是在IDE后面完成这些任务。通过Jenkins,我们需要使用命令调用MSbuild进行编译和发布。

  

一、Jenkins的安装

  Jenkins有windows和linux两个版本。因为我们的项目都是基于。net freamwork,而Jenkins需要编译。net程序来构建,我们选择安装windows版本以便于编译。

  1.[计] 下载

  打开官方网站:https://jenkins.io/download/

  转到下载页面,选择要下载的窗口。当然也可以选择java的war包来部署。安装tomcat服务器,并将war包放入其中。

  2.装置

  下载后可以按照提示安装。(windows下的傻瓜式安装,注意Jenkins是java开发的,所以需要先安装相应的jdk版本,下载目前最新的JDK,然后配置JDK环境变量。)

  3.配置

  安装完成后,将自动安装并启动一个名为Jenkins的windows服务。打开浏览器localhost:8080(Jenkins默认端口号为8080,如果需要修改,可以打开Jenkins安装目录,找到Jenkins.xml修改其端口,然后打开服务,重启Jenkins服务),然后按照提示进行配置!配置完成后,您将看到以下界面,表示安装成功!

  Windows安装包,整个安装过程非常简单,基本上按照提示就可以了,期间没有任何问题,基本上10分钟左右就搞定了!接下来,我们将介绍Jenkins在下的持续集成和自动部署。网!

  

二、通过SVN获取源码

  1.安装插件。

  首先要做的是获得我们的源代码。由于我公司使用的源代码管理工具主要是SVN,本文主要介绍SVN的方式方法。根据度娘的说明,我们需要为SVN安装一个插件:Subversion插件(如果你在安装Jenkins的时候选择安装推荐的插件,Jenkins会直接安装这个插件,不需要你自己安装)。

  我们可以在系统管理-插件管理-安装中找到这个插件。

  2.SVN凭证的全局配置

  SVN拉需要账号,我们去首页的凭证里添加SVN的全球账号,按照提示输入保存。

  

三、构建项目

  选择一个新的自由风格软件项目,给它命名,进入项目配置,找到源代码管理选项:

  主要有以下选项可以配置:

  资源库URL:要获取的SVN的路径,比如:https://127 . 0 . 0 . 1:9666/SVN/hs . mall/source code/trunk/test

  身份证明:配置SVN用户名和口令

  IgnoreExternal:忽略SVN外部引用?

  附加凭证:Clever Litchi的SVN版本库使用外部引用与其他版本库关联。这一点非常重要。

  Realm:填写SVN服务器地址3359127.0.0.1: 9666 Visual SVN服务器//(注意这个格式)

  凭据:填写SVN用户名和密码信息

  其他一些选项可以直接显示默认值。对于每一项的详细介绍,可以点击小?不。看。

  配置完成后,单击Save,然后构建项目以查看结果。如果源代码可以更新到Jenkins的工作区,就说明配置成功了!

  Jenkins的工作区目录是安装目录下的工作区目录。每个新项目都会产生一个同名的文件夹。

  PS,这里。net项目都在一个解决方案下,所以即使我们是发布解决方案中的一个项目,也需要把整个解决方案的源代码拉下来。至于只有一个项目的方案,你可以自己研究。

  

四、通过MSBuild编译应用程序

  1.安装插件和环境

  来编译。NET应用程序,可以通过微软提供的MSBuild工具安装插件:MSBuild。(注意:MSBuild需要安装在Jenkins服务器上。推荐在Jenkins上安装VS开发工具,可以在build出现问题的时候开启VS调试,省去了很多不必要的麻烦。也安装在插件管理中)。

  2.全局配置

  安装插件后,转到系统管理-配置工具找到MSBuild配置选项:

  如图所示,我们配置了两个MSbuild供全局使用,一般使用X86。

  名称:自定义名称

  msbuild路径:MSBuild.exe程序的物理路径。

  在这里,MSBuild.exe必须与程序使用的freamwork版本相对应,在这里,我在这里遇到了一个大洞。一开始只是找了个MSBuild工具,觉得根本编译不出来。建议直接指向visual studio安装目录中的MSBuild.exe,这样可以避免很多问题。比如VS2017在:Program Files(x86) Microsoft Visual Studio 2017 Enterprise MSBuild 15.0 凶豆芽路径。

  3.配置项目

  首先,我们需要使用nuget.exe包管理工具来执行这样一个命令。用于恢复NuGet包。

  Nuget.exe可以自己下载并把它放在任何目录下。

  d: Tools CI n get . exe restore。SnService.sln

  打开我们之前创建的项目,找到构建选项-添加构建步骤-使用msbuild构建visual studio项目或解决方案。

  MSBuild版本:这是MSBuild的版本。我们已经对其进行了全局配置,只需选择它。

  MSBILD生成文件:/grumpy bench.policyapi/grumpy policy API . csproj-目标项目或解决方案文件的路径文件名

  命令行参数:msbuild参数

  /t:rebuild-generate

  /p:configuration=release-release生成模式(或调试)

  /p:Visual Studio Version=14.0-指定子工具集的版本,VS2015对应14.0。

  /p:targetframeworkversion=v 4 . 5 . 2-框架的版本

  /p:deployonbuild=true-表示部署加编译。

  publish profile=policy API . test . com . pub XML-使用xxxx.pubxml发布文件发布项目。

  /p:web projectoutputdir=f: mytest API policy API . test . com-发布的目标目录。

  /p:output path=f: mytest API policyapi.test.com hxdqb-发布的目标目录的hxdqb目录。

  如果以后必须执行一些操作,可以继续构建。因为许多文件在发布过程中无法发布到目标目录,所以这可以通过更改配置文件来实现。不过由于你不是开发人员,所以尽量不要更改项目的配置,这里添加了python脚本,将文件复制到目标目录下进行构建。简而言之,无论是更改配置、命令还是脚本,最终目的都是将编译好的文件发布到目标点。

  如上,我不在乎他有没有这些文件夹。如果他有,他将覆盖它们一次,如果他没有,他将创建一次覆盖。

  至此,保存后,项目构建完成。

  什么?每次都要下令放行吗?不不不,持续集成不可能这么蠢。

  

五、Jenkins构建触发器

  构建触发器可以在项目中找到。

  触发器内置有:* * * *(由五星表示)

  第一个*代表分钟,取值范围为0~59。

  秒*表示小时,取值为0~23。

  第三个*表示一个月中的某一天,取值1~31。

  第四个*表示月份,取值为1~12。

  第五个*代表一周中的某一天,值从0到7,其中0和7代表星期日。

  以下是一些常见参数:

  每5分钟构建一次。

  H/5 * * * *

  每两小时构建一次。

  H H/2 * * *

  每天中午下班前定时搭建。

  0 12 * * *

  每天下午下班前定时搭建。

  0 18 * * *

  意思是从9:10到20:10,每周7天,每小时一次。

  10 9-20 * * 1-7

  以上是定时构建触发器,时间到了,代码会自动拉取、编译、发布。

  此外,我们可以看到还有一个轮询SCM,它是一个设置轮询仓库时间的触发器,如果有代码更改,立即执行构建。这里就不说了,因为暂时不需要这么频繁的施工。(时序构造和轮询SCM使用并不相互冲突。具体如何组合,需要根据项目情况合理配置。)

  以上是基于Jenkins从部署到简单使用的介绍。

  发布到服务器的方法也差不多,不管是通过复制,FTP,还是其他方法,都是发布编译好的程序。FTP要配置,这里不讨论,用到的时候再研究。

  

问题:

  1.例如,如果将SVN源代码一直拉到工作区缺少文件,则构建会失败,因此将文件复制过去,这样构建就可以成功。

  2.詹金斯港的改造:

  修改XML中的端口号

  重新启动Jenkins服务

  修改相应的系统设置,或报告反向代理错误。

  3.关于SVN拉错误,在服务,使用帐户系统,管理员帐户,然后重新启动詹金斯解决问题。

gitlab+jenkins,gitlab+jenkins自动化部署