65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Jenkins 进行持续集成

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (6投票s)

2015年12月15日

CPOL

21分钟阅读

viewsIcon

35207

安装 Jenkins 的先决条件,Jenkins 的安装步骤,使用 Jenkins 构建 BizTalk/SharePoint 项目,使用 BizTalk Cop 规则进行验证,从 TFS 构建,在构建多个项目时保持构建顺序,发送构建失败电子邮件

Jenkins 概述

Jenkins,最初名为 Hudson,是一个用 Java 编写的开源持续集成工具。Jenkins 被各种规模的团队用于各种语言和技术项目,包括 .NET、Ruby、Groovy、Grails、PHP 等,以及 Java。

Jenkins 易于使用,用户界面简洁直观。我们将在下一节中了解如何开始使用 Jenkins。Jenkins 也非常灵活和可扩展,因为有许多开源插件可用于 Jenkins。

这些插件涵盖了从版本控制系统、构建工具、代码质量指标、构建通知、与外部系统集成、UI 定制、游戏等等一切。安装它们既快速又简单。

我们使用 Jenkins 对 BizTalk 2009 和 SharePoint 2013 项目进行持续集成。它还用于调用代码审查工具来分析代码并安排构建选项。

将 Jenkins 用于 BizTalk 项目的先决条件

软件要求

本节列出了带有 Jenkins 的 BizTalk 构建机器所需的软件。

Microsoft Windows - 可以是 Windows Server 2008、Windows Server 2003、带有 Service Pack 3 (SP3) 的 Windows XP、带有 Service Pack 1 (SP1) 的 Windows Vista。BizTalk Server 运行时不支持 Itanium (IA64) 版本的 Windows Server 2003,但是 BizTalk 数据库可以托管在运行在 IA64 硬件上的 SQL Server 上。

Internet Information Services (IIS) 支持 6.0 和 7.0 版本。提供可扩展的 Web 应用程序基础架构。

必需:EDI、BAM、WSS 适配器和 UDDI。

Windows SharePoint Services - 适用于 Windows Server 的服务集合,可用于共享和协作。支持版本:带有 Service Pack 3 (SP3) 的 WSS 2.0、带有 Service Pack 1 (SP1) 的 WSS 3.0 和 Microsoft Office SharePoint Server 2007 (MOSS)。

必需:WSS 适配器。

Microsoft Office Excel 2007 - 业务活动监视 (BAM) 使用 Excel 工作簿来显示业务流程的实时视图。

必需:BAM。

Microsoft .NET Framework 3.5 with Service Pack 1 (SP1) - Microsoft .NET Framework 3.5 SP1(以前称为 WinFX)是适用于 Windows 的新托管代码编程模型。它将 .NET Framework 2.0 与四种新技术结合在一起:Windows Presentation Foundation (WPF)、Windows Communication Foundation (WCF)、Windows Workflow Foundation (WF) 和 Windows CardSpace (WCS,以前称为“InfoCard”)。

必需:所有 BizTalk Server 托管组件。

Microsoft Visual Studio 2008 - 提供用于构建针对任何设备并与任何平台集成的应用程序的开发环境。推荐专业版,但也支持标准版和团队系统版。

必需:BizTalk Server 开发工具和 SDK 组件。

SQL Server 2005 SP2 或 2008 - 用于处理大量数据的关系数据库服务器。为了获得最佳性能,我们推荐 SQL Server 2008 企业版。为了充分使用 BizTalk Server 2009 SDK 或从 Visual Studio 开发环境部署 BizTalk Server 应用程序,您还必须安装 SQL Server 开发工具。

必需:BizTalk Server 运行时、EDI 和 BAM。

SQL Server 2005 通知服务 - 启用 BAM 警报的使用。请注意,此 SQL Server 2005 功能不包含在 SQL Server 2008 中,必须单独下载。

必需:BAM 警报。

SQLXML 4.0 with Service Pack 1 - 为您的 SQL Server 数据库启用 XML 支持,并允许开发人员弥合 XML 和关系数据之间的鸿沟。您可以创建现有关系数据的 XML 视图,并像处理 XML 文件一样处理它。

必需:BizTalk Server 运行时、管理工具和 BAM。

BizTalk Server 2009 - 用于在构建服务器中构建基于 BizTalk 的项目

FxCop 和 BizTalk 最新版本 - 用于 BizTalk 项目的自动化代码审查。我们需要安装相同版本的 FxCop 和 BizTalk Cop 才能正常工作。

Microsoft Team Foundation Server - 用于源代码存储库,将用作 Jenkins 的插件以进行自动化构建

Java 最新版本 - 这是 Jenkins 的先决条件,因为 Jenkins 是基于 Java 的产品。

必需:Jenkins

Jenkins 最新版本 - 它是用于构建 BizTalk 项目的持续集成软件

将 Jenkins 用于 SharePoint 项目的先决条件

准备构建系统的步骤(当未安装 VS 2013 和 SharePoint 2013 时)——请参阅 https://msdn.microsoft.com/en-us/library/ff622991.aspx,其中解释了使用 TFS Team Build 作为 CI 工具,但我们需要使用 Jenkins 代替

  • 安装 Java 和 Jenkins
    如果您的构建系统已安装 Jenkins,您可以跳过此步骤。否则,请在您的构建系统上安装和配置 Jenkins。本文稍后将提供安装 Jenkins 的详细步骤。
  • 安装 Windows SDK
    您的构建系统必须安装 Windows SDK,因为它包含 GACUtil 工具。GACUtil 用于在构建系统上安装 SharePoint 工具程序集。您可以从以下位置下载 Windows SDK:http://msdn.microsoft.com/en-us/windows/bb980924.aspx。下载 Windows SDK 后,请安装它。(请注意,本文末尾引用的 PowerShell 脚本消除了对这一步骤的需求。)
  • 为 Office 应用程序和 SharePoint 应用程序安装构建支持
    要构建 Office 应用程序和 SharePoint 应用程序项目,您的系统必须安装多个组件。
  • 安装 SharePoint 场和沙盒解决方案构建支持

    由于 SharePoint 场和沙盒解决方案项目引用 SharePoint Server 程序集,因此这些 SharePoint 程序集必须存在于构建系统上。
    一种方法是在您的构建系统上安装完整版本的 SharePoint Server 2013。安装 SharePoint 的优点是,您可以在生成 WSP 文件后立即使用它来部署和测试您的 SharePoint 应用程序。但是请注意,SharePoint Server 2013 可能会降低您的系统性能,并且它增加了系统要求(例如需要 64 位 CPU)。
    作为替代方案,您可以将所需的 SharePoint 程序集下载到您的构建系统。对于这两种方法,您都需要在构建系统上拥有适当的 SharePoint 许可证。将以下程序集从开发系统复制到构建系统,并将它们放在 Reference Assembly 文件夹中
  • Microsoft.SharePoint.dll
  • Microsoft.SharePoint.Security.dll
  • Microsoft.SharePoint.WorkflowActions.dll
  • Microsoft.Office.Server.dll
  • Microsoft.Office.Server.UserProfiles.dll
  • Microsoft.SharePoint.Client.dll
  • Microsoft.SharePoint.Client.Runtime.dll
  • Microsoft.SharePoint.Client.ServerRuntime.dll
  • Microsoft.SharePoint.Linq.dll
  • Microsoft.SharePoint.Portal.dll
  • Microsoft.SharePoint.Publishing.dll
  • Microsoft.SharePoint.Taxonomy.dll
  • Microsoft.Office.SharePoint.Tools.dll
  • Microsoft.SharePoint.WorkflowActions.dll
  • Microsoft.Web.CommandUI.dll

这些文件位于开发系统上的以下文件夹中
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI

建议您将 SharePoint Server 程序集复制到以下文件夹
.. \Program Files\Reference Assemblies\SharePoint\

然后添加以下注册表项之一

  • 适用于 64 位系统
    HKEY_LOCAL_SYSTEM\SOFTWARE\Microsoft\Wow6432Node\.NETFramework\v4.0.30319\AssemblyFoldersEx\SharePoint15]@="<AssemblyFolderLocation>"
  • 适用于 32 位系统
    HKEY_LOCAL_SYSTEM\SOFTWARE\Microsoft\.NETFramework\ v4.0.30319\AssemblyFoldersEx\SharePoint15]@="<AssemblyFolderLocation>"

如果您的 SharePoint 项目引用其他 SharePoint Server 程序集,请将它们也复制到构建系统。

  • 将 Office 开发人员工具程序集安装到 GAC
    必须将以下程序集复制到构建系统的 GAC 中
  • Microsoft.VisualStudio.SharePoint.Designers.Models.dll
  • Microsoft.VisualStudio.SharePoint.Designers.Models.Features.dll
  • Microsoft.VisualStudio.SharePoint.Designers.Models.Packages.dll
  • Microsoft.VisualStudio.SharePoint.dll

这些文件位于开发系统上的以下文件夹中
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\

如果您还需要文件的本地化版本,则还应将相应的资源 DLL 复制并安装到构建系统的 GAC 中

  • Microsoft.VisualStudio.SharePoint.Designers.Models.Features.resources.dll
  • Microsoft.VisualStudio.SharePoint.Designers.Models.Packages.resources.dll
  • Microsoft.VisualStudio.SharePoint.Designers.Models.resources.dll
  • Microsoft.VisualStudio.SharePoint.resources.dll
  • 安装所需的 MSBuild 依赖项
    将以下自定义目标和任务文件夹复制并安装到构建机器上相应的文件夹中
    • .. \Program Files\MSBuild\Microsoft\VisualStudio\v11.0\SharePointTools
    • .. \Program Files\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications
    • .. \Program Files\MSBuild\Microsoft\VisualStudio\v11.0\Web
    • .. \Program Files\MSBuild\Microsoft\Workflow Manager\1.0

(对于 64 位系统,在上述路径中使用“\Program Files (x86)”)。

  • 将工作流依赖项安装到 GAC
  • Microsoft.Activities.Design.dll

该文件位于开发系统上的以下文件夹中
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\

配置 Jenkins 以构建 SharePoint 项目

确保您能够使用 MS build 命令行工具构建 SharePoint 项目。如果成功,请使用 MS Build 命令为构建 SharePoint 项目创建 Jenkins 工作区。有关执行此操作的步骤,请参阅 Jenkins 文档。

安装 Jenkins

  1. 先决条件

您首先需要在机器上安装 Java。Jenkins 是一个 Java Web 应用程序,因此您至少需要 Java 运行时环境(JRE)才能运行它。要检查 Java 是否已安装在您的机器上或了解 Java 的版本,请在命令提示符中输入以下行

java –version

  1. 您可以使用 war 文件或作为服务安装 Jenkins。
  2. 解压 Zip 文件并运行 setup。           
  3. 安装向导打开,如下所示。单击“下一步”。

  1. 选择 Jenkins 的安装目标文件夹,然后单击“下一步”。

  1. 然后点击安装。

  1. 安装完成后,点击“完成”。

  1. 现在您可以在 URL https://:8080/ 中看到 Jenkins 页面
  2. 转到 Manage Jenkins->Manage Plugin->Advanced。
  3. 输入代理详细信息(如果使用代理连接到 Internet),然后单击提交。

 

配置 Jenkins

在本节中,我们将解释如何安装和配置 FxCop 插件,以从 Jenkins 为 BizTalk 项目调用 FxCop (BizTalkCop) 规则。配置步骤如下:

  1. 将 FxCop 和 SVN 插件添加到 Jenkins
  2. FxCop 配置
  3. 从 SVN 将项目添加到 Jenkins
  4. 从 Jenkins 构建应用程序
  5. 工作区和更改

1) 将 FxCop 和 SVN 插件添加到 Jenkins

  1. 转到 Manage Jenkins->Configure System。检查 FxCop 和 subversion 的配置是否可用。                                                                                                                                                     
  2. 在这种情况下,我们列出了 SVN 的配置,但没有列出 FxCop 的配置。现在我们必须安装 FxCop。
  3. 转到 URL:updates.jenkins-ci.org/download/plugins。Jenkins 中可用的插件列表将列出。           
  4. 点击 fxcoprunner/ 插件并下载最新的 .hpi 文件。                                                                           
  5. 然后转到 Manage Jenkins->Manage Plugins->Advanced
  6. 在上传插件中,选择下载的 .hpi 文件并单击提交。                                                               
  7. 现在插件已安装,您可以在系统配置中看到 fxcop 配置                     

2) FxCop 配置

  1. 在您的系统中安装 FxCop 和 BizTalkCop。
  2. 使用安装文件安装 Fxcop 和 BizTalkCop - FxCopSetup_1_36.exe/BizTalkCop_1.0.0.1.msi                 
  3. 首先安装 FxCop,然后安装 BizTalkCop。安装 BizTalkCop 会将 BizTalkCopRules.dll 添加到 Fxcop 的 Rules 文件夹中。
  4. 转到 Manage Jenkins->Configure System。添加 FxCop 安装                                                                 
  5. 为 FxCop 插件输入一个名称,并给出 FxCop 插件的安装路径。单击“添加 FxCop”,然后单击“保存”。
  6. FxCop 配置已完成。其他插件的安装也遵循相同的步骤。

3) 从 SVN 添加项目到 Jenkins

  1. 选择“新建项目”。屏幕上会显示将项目包含到 Jenkins 中的选项。选择项目类型(这里我们将选择自由风格项目),输入要在 Jenkins 中显示的项目名称。单击“确定”。                                                                                                                                         
  2. 在“源代码管理”下选择“Subversion”并输入存储库 URL                                        
  3. 在“构建触发器”下选择“轮询 SCM”,并在“日程安排”中输入轮询间隔。我们在下图中指定了 5 分钟的日程安排。
  4. 在“构建”下,选择“添加构建步骤”按钮,并在下拉列表中选择 FxCop exec。现在输入 FxCop 插件详细信息。这里我们已经将构建步骤作为命令行参数。                                                     
  5. 给定的命令行参数:                                                                                                                     
     /d:"C:\Program Files (x86)\Microsoft FxCop 1.36\FxCopCmd.exe" /file:"%WORKSPACE%\OrderProcess\bin\Deployment\OrderProcess.dll" /rule:"C:\Program Files (x86)\Microsoft FxCop 1.36\Rules\BizTalkCop.Rules.dll" /out:"D:\OrderProcess\OrderProcess\FxCop_Result.xml"                                   
    Fxcop 的安装路径: "C:\Program Files (x86)\Microsoft FxCop 1.36\FxCopCmd.exe"     项目 dll:  "%WORKSPACE%\OrderProcess\bin\Deployment\OrderProcess.dll"。                                                                    这个 dll 是从 Jenkins 工作区中获取的。                                                                  BizTalkCop 的安装路径: "C:\Program Files (x86)\Microsoft FxCop 1.36\Rules                                                                                             \BizTalkCop.Rules.dll"                                                                   报告存放路径:"D:\OrderProcess\OrderProcess\FxCop_Result.xml"                                                                                                                                                                                                                                                                                  
  6. 然后选择“构建”下的“添加构建步骤”,并选择“使用 MSBuild 构建 Visual Studio 项目或解决方案”。
  7. 从可用列表中选择 MSBuild 插件的名称,并按如下所示给出命令行参数:                                                                                                                                           
    MSBuild.exe "D:\BAM\BAM\BAM TrainingLabFiles\OrderProcess\OrderProcess.sln"                              Path of the solution file: "D:\BAM\BAM\BAM TrainingLabFiles\OrderProcess\OrderProcess.sln"
  8. 否则,您可以选择 MSBuild 插件名称并给出解决方案文件的路径,如下所示               
  9. 单击“保存”。

4) 从 Jenkins 构建应用程序

  1. 要构建应用程序,请在仪表板中单击项目,然后单击“立即构建”。                                           
  2. 构建报告可以从构建历史中查看。在构建历史中,单击构建旁边的箭头,然后单击控制台输出。                                                                                                                     
  3. 在这里您可以看到控制台输出。                                                                                                                   

5) 工作区和更改

  1. 要查看整个代码,请单击项目 -> 工作区。                                                                                   
  2. 要查看更改历史记录,请选择项目并单击“更改”。                                                                       

 

为 TFS 项目设置 Jenkins

本节描述了专门用于从 TFS 构建项目的 Jenkins 工具的设置过程。除了从 TFS 检索源代码之外,BizTalk 项目还使用 BizTalk Cop 规则进行验证,以进行自动化代码审查,并将结果写入配置的输出路径。

以下是在 Jenkins 中创建项目所涉及的各种步骤。每个项目下提供了更多详细信息。

先决条件: 在进行此操作之前,请确保已安装构建 BizTalk 和 SharePoint 项目的所有先决条件,并且机器已准备就绪。

在 Jenkins 中设置项目的步骤
1.    安装和配置 TFS 插件
2.    安装和配置 FxCop 插件
3.    创建用于项目中的全局环境变量
4.    在 Jenkins 中创建使用 msbuild 命令行构建的项目
5.    为项目配置 TFS 源位置
6.    为 BizTalk Cop 规则验证配置 FxCop 命令行
7.    设置定期构建的构建计划
8.    指定在失败情况下接收电子邮件的用户
9.    指定上游和下游项目以保持项目构建顺序

1.      安装和配置 TFS 插件

从 Jenkins 进入“管理插件”链接并安装 TFS 插件。

安装后,TFS 插件将如上所示出现在“已安装”选项卡中。

转到 Jenkins 管理 -> 配置系统页面以配置 TFS 设置。

在 Team Foundation Server 下,指定 TFS 命令行可执行文件的路径。例如 C:\TEE-CLC-12.0.2\tf.cmd

现在应该安装并配置了 TFS 插件,并且可以从 Jenkins 构建项目访问 TFS 源。

2. 安装和配置 FxCop 插件

按照步骤 1 中的链接安装 FxCop 插件后,FxCop 插件应出现在已安装插件选项卡中。

在“配置系统”页面中,在 FxCop 安装下,给出 FxCopCmd 可执行文件的路径,以便 Jenkins 在构建过程中使用它。有关配置页面中的路径规范,请参见下文。

3. 创建用于项目中的全局环境变量

我们可以创建全局变量,用于所有 Jenkins 项目。我们已经创建了一些变量,用于指定工作区路径以及写入 BizTalk Cop 结果的路径。我们可以创建任何其他可能在多个项目中常用到的必要环境变量。

4. 在 Jenkins 中创建使用 msbuild 命令行构建的项目

创建一个新的自由风格项目,并指定与 BizTalk 中的项目名称相同的名称。这将使我们能够在命令和配置中使用 JOB_NAME 变量。如果我们要创建一个新项目,有一个“复制现有项目”选项,我们可以指定其设置将最初使用的项目。这可以根据新项目轻松修改。

创建项目中使用的初始设置

 

点击“高级项目选项”并勾选“使用自定义工作区”。我们使用自定义工作区是为了在指定的路径构建项目,而不是使用默认路径。

添加构建步骤并指定“执行 Windows 批处理命令”。

在“执行 Windows 批处理命令”窗口中指定构建项目所需的命令。

在 msbuild 命令中,/p:"ReferencePath" 参数可用于动态指定此构建解决方案所依赖的 dll 的位置。

5. 为项目配置 TFS 源位置

在“源代码管理”下指定 TFS 详细信息。我们需要提供服务器 URL、项目路径、登录名和用户密码。

现在 Jenkins 应该从 TFS 获取代码并调用 msbuild 进行构建了。

5. 为 BizTalk Cop 规则验证配置 FxCop 命令行

添加构建步骤和 FxCop Exec。从 FxCop 名称下拉列表中选择“BizTalkCop”。

在命令行参数中指定以下内容

/file:"%WORKSPACE%\%JOB_NAME%.Pipelines\bin\Release\%JOB_NAME%.Pipelines.dll"

/rule:"C:\Program Files (x86)\Microsoft FxCop 1.36\Rules\BizTalkCop.Rules.dll" 

/out:"%BizTalkCopOutPath%\FxCop_Result_%JOB_NAME%.Pipelines.xml" 

/directory:"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\Microsoft.XLANGs.BaseTypes.dll" 

/directory:"C:\Program Files (x86)\Microsoft BizTalk Server 2009\Microsoft.XLANGs.BizTalk.ProcessInterface.dll"

/file – FxCop 要验证的 Dll 文件路径

/rule – BizTalkCop.Rules.dll 的路径

/out – FxCop 结果路径

/directory – 任何依赖程序集所在的目录

同样,添加更多构建步骤以验证其他 BizTalk dll(如 Maps、orchestrations 等),并相应地修改命令行参数中的属性。

现在 TFS、msbuild 和 BizTalk Cop 规则已配置完成。如果单击“立即构建”,项目应该会从 TFS 获取最新代码并进行构建。

7. 设置定期构建的构建计划

通过在“构建触发器”部分中勾选“定期构建”复选框并指定“@daily”,可以将项目设置为每日构建。

它将按照 Jenkins 选择的每日时间表进行构建。                                                                                   8. 8. 指定在失败情况下接收电子邮件的用户

您可以指定用户在项目构建失败时接收错误警报电子邮件。在“添加构建后操作”中,选择“电子邮件通知”。输入希望收到通知的用户名列表,用空格分隔。

9. 指定上游和下游项目以保持项目构建顺序

为了构建多个项目并强制执行项目构建顺序,我们需要使用上游和下游项目。下游项目是当前项目构建完成后将构建的项目。上游项目是当前项目构建之前将构建的项目。对于上游项目,您需要在“构建触发器”部分中指定项目。

对于下游项目,在“构建后操作”和“构建其他项目”中指定

请看截图。在这种情况下,这 3 个项目的构建顺序将是

  1. msbuildtest
  2. OrderProcess
  3. sampleSVNTest

通过这种方式,我们可以指定整个项目集的构建顺序。

摘要

解释了 Jenkins 的设置以及使用它构建项目。使用 SVN 和 TFS 配置 Jenkins 进行定期构建。还介绍了如何在失败时发送错误电子邮件。可以为一组项目指定构建顺序。

历史

在此处保持您所做的任何更改或改进的实时更新。

© . All rights reserved.