搭建Jenkins并自动发布项目到IIS

注意:本文描述的是在Windows系统上安装Jenkin,并使用IIS来托管.Net项目。

安装Jenkins

  1. 首先先安装一些基础的依赖工具。一个是源代码管理工具Git。因为源代码肯定是有单独的代码仓库存储的,所以需要相应的工具,允许Jenkins自动从代码仓库拉取最新代码。注意,这是看实际项目使用的是什么工具就装什么,并不是非得装Git。
    另外一个就是编译工具和编译环境。本文是以.Net项目举例,那就需要安装MSBuild。由于电脑上已经安装了Visual Studio,所以已经有了,就不给出安装步骤说明了。如果是.Net Core项目,还要安装.Net Core SDK。

  2. 然后去Jenkins官网下载安装包。 由于是在Windows系统上安装,自然要下载Windows版本。下载下来的文件叫Jenkins.msi,双击直接安装。它会自动打开浏览器,在浏览器中操作。这里说明一点,网上的教程大多都是下载一个war包,然后还要先安装jdk才能进行安装,并且提到Jenkins的运行依赖于jdk。但实际使用过程中根本不需要安装Jdk,可能因为是Windows版本的原因。

    Jenkins下载

  3. 启动安装包后,一路看着点就行了。中间会要求输入默认的管理员密码。密码在安装目录下的一个文件里,路径在安装界面上有显示,如下图所示。


    输入管理员密码
  4. 然后要安装插件。由于不清楚各种插件的功能,所以就直接安装默认项安装。有挺多插件的,还容易安装失败。虽然可以重试,但重试也容易失败。不过也不要紧,只要能到下一步就行,安装失败的插件,等运行起Jenkins之后还是可以再补充安装的。

  5. 安装完成后等待Jenkins启动,完成后浏览器会自动跳转到登陆页面。如果没有也可以手动输入地址跳转,注意Jenkins默认端口是8080。初次登陆要求先创建一个管理员账户,当然也可以选择直接使用默认的管理员账户,账户是admin,初始密码就是步骤2中用到的密码,登陆后可以修改密码。

  6. 安装完成后还需要进行一些配置。点击主页的“Manage Jenkins”,进入到管理页面。


    进入管理页面

然后点击“Global Tool Configuration”,进入到全局工具配置。


进入全局工具配置

在这里配置之前安装的Git工具路径。Name是可以随意的。


配置Git工具

还要配置MSBuild.exe所在的根目录。Name也是可以随意的。


配置MSBuild

建立项目

  1. 点击菜单中的“New Item”,新建一个项目


    新建项目
  2. 输入项目名称,并选择"Freestyle project"(自定义风格项目)


    选择项目风格
  3. 开始填写项目相关信息。一些不重要的这里就不列举了,自行摸索。这里仅列举一些关键性配置项。

    • 配置源码路径。先选择源码管理工具。之前已经安装了Git,这里就选择Git。然后配置源代码仓库地址,还要添加身份验证信息,并配置好要构建的分支。


      配置源码路径
    • 配置构建操作。点击“Add build step”按钮,添加编译或发布的步骤。


      选择用MSBuild

    这里选择“Build a Visual Studio project or solution using MSBuild”,意思就是通过MSBuild来编译和发布.Net项目。需要注意的是,如果是.Net Core项目,可以不用这么操作,下文会说明。
    如下图所示,MSBuild Version选择之前配置的MSBuild版本即可,Build File填写解决方案或项目的路径。下面的参数,是传给MSBuild.exe的,也就是说这是由具体的编译工具决定的,不是由Jenkins决定的。


    配置构建步骤

    如果是.Net Core项目,可以如下操作。先选择添加“Execute Windows batch command”,意思是添加执行Windows批处理命令。


    以命令行编译.Net Core项目

    然后输入以下命令。第一行命令是进入要发布的项目所在的目录。第二行命令是.Net Core CLI的发布命令。可以看到该命令没有指定任何项目名称,这代表着它会自动寻找当前目录下可发布的项目,所以才需要第一行命令先跳转到项目根目录。执行此发布命令,与在Visual Studio上直接执行发布操作一样,生成的文件会保存在默认的Release文件夹下,具体路径可以待构建完成后看构建日志。.Net Core常用的命令还有dotnet restoredotnet build。调用dotnet publish时,它会自动先调用前两个命令的。使用.Net Core CLI的编译和发布命令时,需要注意项目或其引用的项目中是否包含非.Net Core项目,如果包含,会编译失败。
    注意,这些命令已经与Jenkins本身没有关系了,具体使用方式自行参考相关文档。
    [图片上传失败...(image-d116a2-1598929064068)]

    如此就建立了一个基本的可编译的项目。接下来还要添加脚本,将编译生成的文件拷贝到IIS站点对应的目录中。再添加一个执行Windows批处理命令的步骤,输入如下命令。
    [图片上传失败...(image-d1d21f-1598929064068)]
    图片看不清楚,可以直接看以下代码:

C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"IIS站点的应用程序池名称"

robocopy ".\src\项目路径\bin\Release\netcoreapp2.2\publish"  "C:\app\IIS站点目录" /XF "要排除的文件名1" "要排除的文件名2" "要排除的文件名3"
robocopy ".\src\项目路径\bin\Release\netcoreapp2.2\publish\runtimes" "C:\app\IIS站点目录\runtimes" /e
robocopy ".\src\项目路径\bin\Release\netcoreapp2.2\publish\wwwroot\swagger" "C:\app\IIS站点目录\wwwroot\swagger" /e

C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"IIS站点的应用程序池名称"

第一行是关闭IIS站点的应用程序池,目的是为了防止复制文件过程中,出现文件被占用的情况。中间三行是从发布目录复制文件到IIS站点目录。其中用的参数说明如下:

  • /xf 指定要排除的文件,后面跟文件名,有多个就列举多个,空格分隔
  • /e 表示复制所有的子目录,包括空目录。如果没有此参数,就只复制目录下的文件,不复制子目录。
    第五行是再打开IIS站点的应用程序池。

这样就配置完成了,接下来可以进行发布了。

发布项目

一切配置完成后,点击项目的“Build Now”按钮即可开始构建。


开始构建项目

构建后就会产生一条构建记录。记录会包含构建进度、构建时间、构建结果和构建日志等信息。


构建记录

点击构建记录,进入详细的操作页面。点击“Console Ouput”就可以看到完整的构建日志了。


查看构建记录详情

你可能感兴趣的:(搭建Jenkins并自动发布项目到IIS)