English 中文(简体)
CI - Quick Guide
  • 时间:2024-03-24 16:38:09

Continuous Integration - Quick Guide


Previous Page Next Page  

Continuous Integration - Overview

2000年首次采用称为Cruise Control的软件。 多年来,不断整合已成为任何软件组织的主要做法。 这是一种发展做法,要求发展小组确保对软件方案的每一编码改动进行建筑和随后的测试。 这一概念旨在解决在建筑生命周期中发现问题迟发的问题。 实行持续融合,而不是孤立地工作的开发商,以确保法典的修改和建设永远不会孤立地进行。

Why Continuous Integration?

不断整合已成为任何软件开发过程的一个有机组成部分。 持续的一体化进程有助于回答软件开发小组的以下问题。

    所有的软件组成部分是否应当共同运作? 有时,系统会变得如此复杂,每个组成部分都有多个接口。 在此情况下,它始终必须确保所有软件组成部分相互配合。

    守则是否为融合目的过于复杂? 如果持续一体化进程继续失败,则该守则可能过于复杂。 这可能是一个信号,可以采用适当的设计模式,使守则更加复杂和更加可维持。

    守则是否遵守既定编码标准? 多数测试案例将永远检查该守则是否遵守适当的编码标准。 通过在自动化建筑后进行自动测试,如果该守则符合所有理想的编码标准,就是一个很好的检查点。

    自动化测试涵盖多少代码? 如果测试案例没有涵盖该守则所要求的功能,那么测试法就没有意义。 因此,确保所撰写的测试案例应涵盖申请的所有关键假设情景,始终是一种良好做法。

    在最新变化之后,所有测试是否成功? 如果测试失败,那么在着手部署守则方面没有任何意义,因此,如果该守则已准备好进入部署阶段,就是一个很好的检查点。

Workflow

以下图像显示了整个连续整合工作流程如何在任何软件开发项目中发挥作用的快速工作流程。 我们将在随后各章中详细研究这一问题。

Workflow

因此,根据上述工作流程,这通常是持续一体化进程如何运作。

    首先,开发商将守则交给版本控制存放处。 同时,一体化的连续整合服务器建立了机器污染源代码储存库,以进行改动(例如每几分钟)。

    连续集成服务器在投入发生后不久发现,版本控制存放处发生了变化,因此,连续集成服务器从存放处检索了该编码的最新副本,然后执行一个包含软件的建筑文字。

    连续整合服务器通过电子邮件向特定项目成员提供反馈。

    如果项目出入证的修建,则进行单位测试。 如果测试成功,该守则就准备部署到停机或生产服务器。

    连续整合服务器继续对版本控制存放处的变动和整个过程重复进行投票。

Continuous Integration - Software

软件部分是任何持续一体化进程的最重要方面。 本章的重点是整个持续一体化进程所需的软件。

Source Code Repository

源代码存放处用于维持所有源代码及其所有改动。 来源代码存放管理的两个最受欢迎的系统是颠覆,Gite是最新的民众系统。 我们现在将研究如何在该系统上安装Gite。

System Requirements

Memory 2 GB RAM (recommended)
Disk Space 200 MB HDD for the installation. Additional storage is required to store the project source code and this is dependent on the source code being added.
Operating System Version Can be installed on Windows, Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X.

Instalpng Git

吉唐的官方网站是。 如果你点击该链接,你将进入Gite官方网站的主页,详情如下:

Official Website

下载Gite,只剪辑屏幕,进入下载科,点击下载。

Downloads Section

<Step 3——Cpck theWindowspnk and thedown for Git,将自动开始。

GIT

Step 4-Cpcks 下载的Gite.exe文档。 就我们而言,我们正在使用Gite-2.6.1-64-bit.exe文档。 下几张屏幕上显示的Cpck Rug。

Exe File

Step 5——在以下屏幕上显示的下顿。

Next Button

General License agreement.

• 为您的Gite设施寻找地点。

GIT Installation

Default Components

选择“从视窗开始使用吉特”,因为我们将使用视窗。

Git From Windows

在以下屏幕上,接受“CheckoutWindows-风格”的缺席设置,采用“九式”线结束,并点击下。

Check out Windows Style

在以下屏幕上,选择“UseWindows 缺电窗”的选项,因为我们正在使用Windows作为安装Gite的系统。

Default Console Window

安装工作现在将开始,一旦安装完毕,便可随后采取步骤配置Gite。

Finish

Configuring Git

一旦Gite已经安装,就必须为Gite的初步配置采取配置步骤。

需要做的第一个工作是没收吉特人的身份,然后没收用户名称和电子邮件。 这一点很重要,因为每个Git承诺都使用这一信息,而且这种信息不可避免地被削弱为你开始创造的承诺。 我们可以这样做,迅速开放指挥,然后进入以下指挥系统:

git config –global user.name “Username”
git config –global user.email “emaipd”

下面的屏幕是更好地了解的一个实例。

Administrator Command Prompt

这些指挥部实际上将相应改变Gite的配置档案。 为确保你的环境发挥作用,你可以通过发布以下指令,列出Gite配置档案的背景情况。

git config --pst

下面的屏幕显示产出的一个实例。

Example Output

Continuous Integration Server

整个连续一体化管道所需的下一个关键软件是连续一体化软件本身。 以下是该行业使用的最常用的连续集成软件:

    这是一个开放源源源不断一体化软件,许多发展社区都使用。

    这是最受欢迎的商业连续一体化软件之一,大多数公司都利用这一软件来满足其持续一体化的需要。

    。 这是一家名为“Atlassian Pvt. Ltd”的公司提供的又一个民众不断融合软件。

上述所有软件都采用了相同的连续一体化模式。 为了这一理论的目的,我们将为连续整合服务器查询Jetbrains TeamCity

Instalpng TeamCity

以下是在你的计算机中安装喷头脑组群的步骤和系统要求。

System Requirements

Memory 4 GB RAM (recommended)
Disk Space 1 GB HDD for the installation. Additional storage is required to store the build workspace for each project.
Operating System Version Can be installed on Windows, Linux, Mac OS X.

Installation

。 如果你点击了上述链接,你将进入监察组官方网站的主页,详情如下: 你可以浏览该网页,下载卫星组所需的软件。

Official Website of Teamcity

下载的exe用于执行TeamCity-9.1.6.exe。 双筒浮标,然后在登峰的下一个屏幕上点击Ru。

Run TeamCity

TeamCity Setup Wizard

Step 4-Cpck the "I Agree'thton to receive the accreditation agreement and processing the facipties.

I Agree Button

选择安装地点,并点击下。

Destination Folder

选择安装的缺省部件并点击

Default Components TeamCity Setup

这将启动安装过程。 一旦完成配置进程,将随之进行。

选择服务器运行的港口号码。 最好使用不同的港口,例如80

Port Number

之后,它将要求哪一个会计小组需要运行。 选择海关数据表账户和Cpck 其次。

System Account

接下来,它将要求开始提供服务。 接受缺省,然后点击。

Setup Services

Configuring TeamCity

安装完毕后,下一步是组群的配置。 该软件可以在浏览器中浏览以下的URL。

第一步是提供建筑地点,由团队执行。 选择理想的地点并点击Proceedutton。

Location of the Builds

下一步是确定储存所有团队艺术品的数据库。 为教学目的,可以选择Internal (HSQLDB),这是一个在使用产品进行测试时最合适的内部数据库。

Internal Database

然后,团队将处理所有必要的步骤,以启动和运行。

Step 3——下面请您接受许可协议。 接受同样,继续点击。

Accept License Agreement

你们需要设立一个管理账户,用于将数据输入小组软件。 输入必要的细节,并点击“Create account”的纽顿。

TeamCity Create Account Button

现在,你将陷入团队精神。

TeamCity Login

The Build Tool

建设工具是一种工具,可确保以某种方式建立该方案。 该工具通常将执行一份任务清单,为以适当方式建立该方案而需要这些任务清单。 由于我们将研究一个.Net program,我们将把MSBuild作为建筑工具。 MSBuild工具研究一份建筑文件,其中载有用于建设该项目的任务清单。 让我们研究一个典型的网络配置项目建筑档案。

以下是建筑档案的关键部分,需要加以考虑。

IIS Settings

在使用环境确定哪些是港口号码、网络服务器上的道路是什么以及在应用时需要何种认证。 这些都是重要的环境,在我们学习如何稍后在教学中进行部署时,将通过国际会计准则理事会的上级指挥加以改变。

<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPor>
<DevelopmentServerPort>61581</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:61581/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>

ItemGroup

用于向建筑服务器说明管理该项目所需的所有依赖的二元。

<ItemGroup>
   <Reference Include = "System.Web.ApppcationServices" />
   <Reference Include = "System.ComponentModel.DataAnnotations" />

<ItemGroup>
   <Compile Include = "App_StartBundleConfig.cs" />
   <Compile Include = "App_StartFilterConfig.cs" />

.Net Framework Version

TargetFrameworkVersion 说 明 该项目需要具备的网络。 这样做是绝对必要的,因为如果建筑服务器没有安装,建筑就会失败。

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

Deployment Environment – Amazon

为了这一理论的目的,我们将确保我们的连续一体化服务器能够把我们的申请部署到亚马孙。 为此,我们需要确保具备以下艺术品。

Database Server

采取以下步骤,确保数据库服务器在亚马孙部署。

代表全权证书。 请注意,你可在亚马孙网站上申请免费补助,使你能够有一个免费的等级,使你能够免费使用亚马孙的一些资源。

AWS Management Console

RDS Section

Instances

Step 4-Cpck the Launch DB Options in the next Screen that come.

Launch DB

Step 5 - Choose the服务器 tab, 然后选择“选择”服务器快车。

SQL Server Tab

Step 6——确保输入以下细节,确认你正在使用亚马孙免费提供的免费数据库。

Free Tier of DataBases

Step 7-Cpck the Next 一旦所有领域都填满,则步纽。

Next Button AWS Console

在即将到来的下一个屏幕上,接受所有缺省环境和Cpck Launch DBase

Launch DB Instance

然后,将给你一个显示亚洲开发银行正在成功启动的屏幕。 在同一页,将有一个县来观察非行的情况。 Cpck the connection to see You DBase being set up.

DB Launched

DB Instance Creation

一段时间后,上述屏幕的状况将有所改变,以通知已成功设立了非银场。

Web Server

下一步是在亚马孙建立你的网络服务器,提供网络应用程序。 可以通过随后的步骤做到这一点。

代表全权证书。 请注意,您可在亚马孙网站上申请免费补助,使您能够有一个免费的等级,使你能够免费使用亚马孙的一些资源。

Login

Step 2 - Go to EC2 section,用于创建你的网络服务器。

EC2 Section

在下一次屏幕上,点击发射场。

Launch Instance

Step 4-CpckWindows - MicrosoftWindows 2010 R2 Base

Microsoft Windows Server 2010 R2 Base

Step 5——选择t2.micro,这是自由等级的一部分。 浮油 Next: Configurease details

T2 Micro Option

Step 6——在接下来的屏幕上接受缺省环境,然后选择Next:Add Deposit

Next Add Storage

Step 7——在下一次屏幕上接受缺省环境,并选择Next: Tagase

Next Tag Instance

Step 8——接受下屏幕上的缺省环境,并选择Next: Configure Security Group

Next Configure Security Group

Step 9——接受下屏幕上的缺省环境,并选择 审查和发射

Review and Launch

Launch

在即将到来的下一个屏幕上,将促使你形成一个关键的配对。 将在稍后时间将其输入服务器。 仅创造关键的奶粉,点击Launchase

Key Pair Launch Instance

现在将在亚马孙建立这一榜样。

Continuous Integration - Reducing Risks

有一些机会会错过项目。 通过有效地实施 CI,你发现在每一步骤中发生的事情,而不是在项目进入发展周期之后发生。 CI帮助你确定并减轻风险,从而更容易根据具体证据评价和报告项目的健康状况。

本节将集中探讨通过不断融合可以避免的风险。

在任何项目中,有许多风险需要加以管理。 通过提前消除发展生命周期中的风险,这些风险在系统实际运行后会发展成问题的可能性较小。

Risk 1 – Lack of Deployable Software

“在我的机器上工作,但不在另一台机器上工作” 这可能是任何软件组织中遇到的最常见的短语之一。 由于对软件所做的改动数量每天都在增加,有时对软件的建设是否实际可行缺乏信心。 这一关切有三个方面的影响。

    对我们是否甚至能够建造软件几乎没有信心。

    在内部(即测试小组)或外部(即客户)交付软件之前的宽度整合阶段,在此期间没有做其他工作。

    无法生产和复制可检测的建筑。

Solution

消除民主选举学会与建筑工序之间的紧张关系。 只使用一台单独的机器来整合软件。 确保在版本控制储存库中包含你建造软件所需的一切。 最后,建立持续融合制度。

连续整合服务器可以观察版本控制存放处的变动情况,并在发现对存放处的变更时管理项目建档。 不断整合系统的能力可以提高,包括进行试验,进行视察,并在开发和测试环境中部署软件;这样,你总是有工作软件。

“可与数据库同步”——有时开发商无法在开发过程中迅速重新检索数据库,因此难以进行改动。 这常常是由于数据库小组与发展小组之间的分离。 每个小组将侧重于自己的责任,彼此之间几乎没有合作。 这一关切有三个方面的影响:

    担心改变数据库或源代码,或对其加以调整。

    难以用不同测试数据储存数据库。

    难以维持发展和试验环境(例如发展、一体化、QA和测试)。

Solution

以上问题的解决办法是,确保把所有数据库工艺品列入版本的控制储存库。 这意味着需要调整数据库图谱和数据:需要数据库制作文字、数据操纵文字、储存程序、触发器和任何其他数据库资产。

通过放弃和重开你的数据库和表格,重新购买你的建筑文字数据库和数据。 其次,适用所储存的程序和触发因素,最后插入测试数据。

测试(和检查)贵国数据库。 通常,你将使用部件测试来测试数据库和数据。 在某些情况下,你需要撰写具体数据库的测试。

Risk 2 – Discovering Defects Late in the Lifecycle

由于多种开发商经常对源代码进行大量修改,因此总是有可能在法典中引入一种缺陷,而这种缺陷只能在稍后阶段发现。 在这种情况下,这可能产生巨大影响,因为软件中后来发现了缺陷,消除缺陷的成本越高。

Solution

这是任何软件开发周期、测试和测试的最重要方面。 如果软件代码有任何重大改动,则绝对必须确保所有测试都进行。 在连续一体化服务器的帮助下,可以实现自动化。

如果测试案例没有涵盖该守则的全部功能,则没有检测点。 必须确保为测试申请而创建的测试案例是完整的,并测试所有密码途径。

例如,如果你有一个需要测试的标志性屏幕,那么你就没有一个能够成功标识的测试案例。 如果用户使用不同的用户名称和密码组合,则需要有一个负面的测试案例,然后需要看到这种情景发生的情况。

Risk 3 – Lack of Project Visibipty

手册通信机制需要进行大量协调,以确保及时向适当的人民传播项目信息。 接手到你们旁边的开发商,让他们知道,最新的建筑是共同的驱动力,是相当有效的,但是它并没有很好地缩小规模。

还有哪些其他开发商需要这种信息,他们正在休息或以其他方式无法得到? 如果服务器倒塌,你会怎样得到通知? 有些人认为,他们可以通过人工发送电子邮件来减轻这一风险。 然而,这不能确保信息在适当的时候传递给适当的人,因为你可能意外地离开有关各方,而有些人当时可能无法使用他们的电子邮件。

Solution

解决这一问题的办法再次是连续整合服务器。 所有的电离层服务器都有在电离层故障时启动自动电子邮件的设施。 通过向所有关键利益攸关方发出这一自动通知,还确保每个人都掌握软件目前的状况。

Risk 4 – Low Quapty Software

存在缺陷,因此存在潜在的缺陷。 如果你的软件设计不完善,或不符合项目标准,或难以维护,那么你就可能存在潜在的缺陷。 有时,人们将这种说法称为法典或设计工具,“一种可能错的症状。 ......

有些人认为,低质量软件只是推迟的项目费用(交付后)。 这可能是一个推迟的项目费用,但在你向用户提供软件之前,它也会导致许多其他问题。 过于复杂的代码、不遵循结构的代码和重复编码,通常会导致软件出现缺陷。 在出现缺陷之前发现这些代码和设计工具可以节省时间和金钱,并可导致高质量的软件。

Solution

有一些软件部件进行编码质量检查,可以与 CI软件相结合。 可以在守则建立之后进行,以确保守则实际上符合适当的编码准则。

Continuous Integration - Version Control

版本控制系统,也称为源头控制、源代码管理系统或修订控制系统,是保存多种版本的您档案的机制,这样,在你修改档案时,你仍然能够查阅以前的修订。

第一个受欢迎的版本控制系统是称为SCCS(Source Code Control System)的专用UNIX工具,可追溯到1970年代。 修订控制系统RCS,后改为CVS。 并行版本系统。

现在使用的最受欢迎的版本控制系统是颠覆Git。 让我们首先看一下为什么我们需要使用一种版本的控制系统,然后看看一下把我们的源代码放在Git源代码储存系统

Purpose of the Version Control System

我们使用该术语控制而不是源头控制的一个原因是,版本控制不光是来源代码。 与创建你的软件有关的每一种单一工艺都应受到版本控制。

    。 否则,所有源代码都需要储存在版本控制系统中。

    相关艺术品 每个系统都将有与源代码有关的手工艺品,如数据库文字、制作和部署文字、文件、图书馆和组合文件,供您使用、编辑和收集工具等。 所有这些都赞扬整个发展和部署进程,也需要储存在版本控制系统中。

通过储存所有用于源控制的信息,更便于重新确定您应用的测试和生产环境。 这应包括用于您应用软件的配置信息以及构成环境的运行系统、国家航天中心区档案、防火墙配置等等。

最起码,你们需要一切必要的手段,才能重新确定申请的双轨和运行的环境。 目的是在项目寿命的任何时刻,以控制的方式储存一切可能的变化。 这使你能够在项目历史的任何时刻,从发展环境到生产环境,恢复整个系统的状况。

保留发展小组发展环境的配置文件,使之掌握版本,甚至是有益的,因为这使团队中的每一个人都很容易利用同样的环境。 分析员应储存要求文件。 测试者应当保持其测试文字和程序的版本控制。 项目经理应节省他们的释放计划、进度表和风险记录。

简言之,小组每个成员都应储存与项目文本控制相关的任何文件或档案。

Working with Git for Source Code Versioning Control System

本节现在将重点讨论如何将吉特用作一种版本控制系统。 它将侧重于如何将你的守则上载到新的控制系统并管理其变化。

Our Demo Apppcation

为此,我们将研究一个简单的Web ASP.Net申请,供整个持续一体化进程使用。 我们不需要把重点放在这项工作的整个法典细节上,而只是概述该项目对理解整个持续一体化进程而言是足够的。 这一网络应用是利用Visualroom Integrated Development Environment建立的。

下面是演播室视觉环境中解决办法的结构。 这是一个非常简单的网络应用,主要代码载于Demo.aspx文档。

Demo ASPX

The Code in the Demo.aspx file is reflected in the following program -

<html xmlns = "http://www.w3.org/1999/xhtml">
   <head runat = "server">
      <title>TutorialsPoint</title>
   </head>
   
   <body>
      <form id = "form1" runat="server">
         <span><%Response.Write("Continuous Integration"); %></span>
      </form>
   </body>
   
</html>

守则非常简单,只是把“持续一体化”赋予浏览器。

当你在谷歌管理该项目时,产出将如以下屏幕所示。

Run the Project

Moving Source Code to Git

我们将展示如何将源代码从指挥线接口移至吉特,使最终用户更清楚地了解如何使用吉特。

。 及时到指挥处,去上项目夹,并在git上发布指挥。 该指挥部将把必要的Gite档案加到项目夹中,以便Gite在需要上载到存放处时能够予以承认。

GIT Repository

。 可以通过发布git 附加指令来做到这一点。 权宜之计 认为项目的所有档案必须添加到吉特存放处。

GIT Add Command

最后一步是将项目档案交给吉苏勒库。 现在需要这一步骤,以确保所有档案都成为Gite的一部分。 将在以下屏幕上发布指挥。 -m 选项是就文件上载的问题提出意见。

-M Option

现在可在Gite找到你的解决办法。

Continuous Integration - Features

以下是持续融合的一些主要特征或做法。

    颠覆和Gite等工具是维护源代码的最受欢迎的工具。

    Automate the Building - 软件的建设应以能够自动化的方式进行。 如果需要采取多种步骤,那么建筑工具就必须能够这样做。 对Net而言,MSBuild是缺省建筑工具,而基于 Java的应用,你拥有Maven和Grupt等工具。

    。 集成机器是建筑服务器,应当确保建筑在机器上运行。 这意味着所有附属部件都应存在于连续整合服务器上。

    加速建造 大楼应分几分钟。 建造工作不应花几个小时,因为这意味着建筑步骤没有适当配置。

    生产环境中的Test印—— 建设环境的性质应接近生产环境。 如果这些环境之间存在巨大差异,那么就会出现这样的情况:即使建筑服务器上出现,该建筑在生产上可能失败。

    。 建设、测试和部署的整个过程应当让所有人看到。

    - 持续的一体化导致不断部署。 绝对有必要确保建筑易于在固定或生产环境中进行部署。

Continuous Integration - Requirements

以下是持续融合的最重要要求清单。

    Check-In regularly- 持续整合以适当开展工作的最重要做法是经常对源代码存放地或主线进行检查。 守则的核对至少应当每天两次。 定期检查会带来很多其他好处。 这使得改变规模较小,因此不太可能打破建筑。 这意味着,在随后的任何建筑中发生错误时,软件的最新版本将重新公布。

    它还有助于更严格地规范重任法典,并坚持维持行为的小改动。 它有助于确保改变许多档案的改变不太可能与其他人的工作发生冲突。 它使开发商能够更有探索性,试图通过回到最后的版本来消除想法和抛弃这些想法。

    如果你没有一套完整的自动测试程序,则只有经过才能使申请得以汇编和组装。 虽然对一些小组来说,这是一个重大步骤,但必须进行一定程度的自动测试,以使人们相信你的申请实际上正在发挥作用。

    通常在连续结合中进行3类测试,即unit检测,部件检测接受检测

    编写单位测试,以测试你与外界隔绝提出的少量申请。 他们通常不能启动整个申请。 他们没有打到数据库(如果你的申请有的话)、档案系统或网络。 他们并不要求你的申请在类似生产的环境中进行。 单位试验应当非常快——即使申请大,你的全部试样也应能够在10分钟内运行。

    部分测试测试了你申请的几个组成部分的行为。 与单位测试一样,它们并不总是要求从整个申请开始。 但是,他们可能打上数据库、档案系统或其他系统(可能被搁置)。 部分测试通常需要较长的时间。

      人民将停止全面建造,并在检查前进行试验。 你们将开始建设更多的失败。

      持续的一体化进程需要这么长时间,才能在你能够再次管理建筑之前作出多重承诺,因此,你不知道哪里打断了建筑。

      人们将进行较少的检查,因为他们必须坐在等待软件建造和进行测试的几岁左右。

    。 持续融合的最大bl是在破碎的建筑上检查。 如果建筑中断,负责的开发商正在等待建造。 他们尽快查明造成破裂的原因,并确定原因。 如果我们通过这一战略,我们将永远处于最佳地位,能够解决造成分裂的原因,并立即加以确定。

    如果我们的一位同事做了检查,并因此打断了建筑,那么,他们最好能安抚它,那么他们就需要明确处理这个问题。 当这一规则被打破时,将建筑固定起来必然需要更长时间。 人们利用来看到建筑被打破,而且非常迅速地进入建筑中断了所有时间的局面。

    。 如果你作出改变,并且你写过的所有测试,但其他试验中断,建筑仍然被打断。 通常,这意味着你在申请中采用了倒退的 b。 你们有责任——因为你做了改动——确定不是由于你的变化而经过的所有测试。 就CI而言,这似乎是显而易见的,但实际上在许多项目中并不是一种常见的做法。

Continuous Integration - Building a Solution

各种方案拟定语言都有各种建筑工具。 一些最受欢迎的建筑工具包括:Ant for JavaMSBuild for .。 使用专为建设软件而设计的描述工具,而不是习惯式的套壳或批号,是制定一致、可重复的建筑解决办法的最有效方式。

因此,我们需要一个开始的建设进程。 对于开端人来说,对于连续的一体化服务器来说,建筑过程应当易于工作,而且应当能够顺利实施。

让我们举一个简单的例子,说明建筑档案可以找到什么。 净额

<?xml version = "1.0" encoding = "utf-8"?>
<project xmlns = "http://schemas.microsoft.com/developer/msbuild/2003">
   <Target Name = "Build">
      <Message Text = "Building Project" />
      <MSBuild Projects = "project.csproj" Targets = "Build/>"
   </Target>
</project>

有必要注意到上述法典的以下方面:

    具体目标以建筑名称标明。 在什么地方,目标就是收集在建筑过程中需要实施的合乎逻辑的步骤。 你们可以有多个目标,在目标之间有依赖性。

    在我们的目标中,我们保留着在建设进程开始时将显示的选项信息。

    MSBuild mandate 用于说明: 需要建立净项目。

以上的例子是一个非常简单的建筑档案。 在不断融合的过程中,确保这一档案不断更新,以确保整个建筑过程畅通。

Building a Solution in .Net

缺省建设工具。 Net是MSBuild,是用“Net”框架运输的。 根据你的系统框架,你将拥有相关的管理系统建设版本。 例如,如果有的话。 安装在违约地点的净框架,请查询MSBuild.exe。 在以下地点存档:

C:WindowsMicrosoft.NETFrameworkv4.0.30319

让我们看看我们如何建设我们的样本项目。 让我们的Sample项目位于一个称为C:DemoSimple的夹中。

为了利用微型信贷机构建设上述解决办法,我们需要迅速开放指挥系统,并采用以下方案所示的微型信贷机构备选方案。

msbuild C:DemoSimpleSimple.csproj

在上述例子中,csproj是具体针对项目档案。 净额。 csproj案包含所有相关信息,以确保软件能够适当建造所需的信息。 下面是MSBuild指挥部产出的筛选。

MS Build Command

只要建筑工程成功,不存在错误,你就不必担心产出警告。

Continuous Integration - Build Scripts

现在,请看MSBuild档案的某些方面,看它们的含义。 这些方面很重要,可以从持续融合周期中了解。

建造文字是为了建立解决办法,而解决办法将成为整个持续一体化周期的一部分。 让我们看一下作为视频演播室一部分在.Net为我们的样本解决方案而创建的一般建筑文字。 建筑文字相当庞大,即便是简单的解决办法,我们也会走到其中最重要的部分。 定时,建筑设计书将存放在一份档案中,名称与“视力”网站的主要解决方案相同。 因此,就我们而言,如果你打开文件,Simple.csproj,你将看到将用来建立解决办法的所有环境。

    依赖于使用的MSBuild版本—— 以下设施将使用在CI服务器上安装的MSBuild文档。

<VisualStudioVersion Condition = " $(VisualStudioVersion)  == 
     ">10.0</VisualStudioVersion>

<VSToolsPath Condition = " $(VSToolsPath)  ==   "> 
   $(MSBuildExtensionsPath32)MicrosoftVisualStudiov$(VisualStudioVersion)
</VSToolsPath>

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

<Import Project = "$(MSBuildBinPath)Microsoft.CSharp.targets" />
<Import Project = "$(VSToolsPath)WebApppcations
   Microsoft.WebApppcation.targets" Condition = " $(VSToolsPath)  ! =   " />

<Import Project = "$(MSBuildExtensionsPath32)MicrosoftVisualStudiov10.0
   WebApppcationsMicrosoft.WebApppcation.targets" Condition = "false" />

    适当建立解决办法所需要的文件——ItemGroup 标签将包含所有必要的内容。 项目成功建立所需的净文档。 这些档案需要相应地在建筑服务器上居住。

<ItemGroup>
   <Reference Include = "Microsoft.CSharp" />
   <Reference Include = "System.Web.DynamicData" />
   <Reference Include = "System.Web.Entity" />
   <Reference Include = "System.Web.ApppcationServices" />
   <Reference Include = "System.ComponentModel.DataAnnotations" />
   <Reference Include = "System" />
   <Reference Include = "System.Data" />
   <Reference Include = "System.Core" />
   <Reference Include = "System.Data.DataSetExtensions" />
   <Reference Include = "System.Web.Extensions" />
   <Reference Include = "System.Xml.Linq" />
   <Reference Include = "System.Drawing" />
   <Reference Include = "System.Web" />
   <Reference Include = "System.Xml" />
   <Reference Include = "System.Configuration" />
   <Reference Include = "System.Web.Services" />
   <Reference Include = "System.EnterpriseServices"/>
</ItemGroup>

    哪些是需要使用的网络服务器环境—— 当我们访问我们不断部署的专题时,你将看到,将如何利用国际会计准则理事会来压倒这些环境,并将之部署到我们选择的服务器。

<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>59495</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl></IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>

CI - Building On the Server

下一个重要步骤是确保解决方案建立在建筑服务器之上。 第一部分是手工步骤,因为在使用持续一体化工具之前,我们首先必须确保以与客户机器相同的方式利用建筑服务器。 为此,我们必须采取以下步骤:

Step 1——向服务器提交整个解决方案文件。 我们建立了一个亚马孙神学院服务器,作为我们的建筑服务器。 因此,在服务器上向整个.Net服务器提供人工拷贝。

Manual Copy

Step 2——确保这一框架出现在服务器上。 如果您在用户机器的4.Net框架中汇编了你的申请,那么你必须确保其安装在服务器上。 因此,要到您的服务器上C>:WindowsMicrosoft.NETFramework,并确保有理想的框架。

Framework Location

现在,让“MSBuild”在服务器上运行,看情况如何。

MS Build

因此,它像我们一样,看到了一个错误。 持续融合方面有一个重要的教训,需要确保建筑工程建立在建筑服务器上。 为此,你需要确保在建筑服务器上安装所有先决条件软件。

对于Net,我们需要安装一个称为Visualroom Redistributable Tool的部件。 该一揽子计划载有在服务器上开发的.Net申请所需的所有必要档案。 因此,在建筑服务器上安装以下安装步骤。

Step 4 - Double-cpck the executable file tostart the facipties.

Double Cpck to Start Installation

在下一步骤中,同意Lecense术语并点击Install。

License Terms

现在,在管理微型信贷额度时,我们需要确保我们在使用MSBuild时增加一个参数,即:p:VisualStudioversion = 12.0。 这确保最高审计机关在较早阶段下载这些档案。

Running MsBuild

现在,我们可以看到,解决办法已经适当建立,我们也知道我们的基线项目是在服务器上正确建造的。

CI - Checking in Source Code

下一个关键方面是确保将我们的基线编码检查到我们的源代码储存管理服务器,即吉特。 为此,我们需要遵循这些步骤。

Step 1—— 启用储存库,以便能够上载到Gite。 这项工作是在git的指挥下进行的。 因此,你需要走到你的项目中,并发布git init的指挥。

GIT init Command

下一步称为在Gite编造档案。 编写项目文件夹中的所有文件,需要添加到Gite。 如以下屏幕所示,请在git后加上指挥系统。 “......”的注解用来说,目录和子标题中的所有档案都应列入承诺。

Staging Files

最后一步是把档案交给吉苏勒库,以便它现在成为一个完整的吉特存放处。

Full Fledged Git Repository

CI - Creating a Project in TeamCity

既然我们在吉特存放处有源代码,而且我们所有最初的代码都在建筑服务器上工作,那么现在就应该在我们连续的一体化服务器中建立一个项目。 可以通过下列步骤做到这一点:

-Login to the TeamCity 软件。 Go to the url on You Persistent Integration Service - http:// localhost:80/login.html

TeamCity Software

将行政证书和标识输入服务器。

一旦入住,你将接受家庭屏幕。 Cpck Create Project tostart a new project.

Create Project

。 就我们的情况而言,我们正在向我们的项目提供“Demo”的名称,如下文中所示。

Project Name Demo

下一步是提及将在我们的项目中使用的吉特存放处。 考虑到在不断一体化的环境中, CI服务器需要从吉特制的存放处提取该代码。 我们已经使我们的项目倍增效应成为先前步骤的吉大授权存放处。 在团队精神中,你需要创建综合疾病防治中心。 该项目的主要屏幕上点击VCSlyings

VCS Root

如以下屏幕所示,在接下来的屏幕上点击Create VCS fundamental

Create VCS Root

在接下来的屏幕上,采取下列步骤:

    提到科索沃统计局的类型。

    给科索沃安全机构一个名字,这可以是任何友好的名称。 我们的国名是App

    Give the Fetch url as C:DemoSimple - 现有专用储存库。

    如果你打上屏幕,你将获得测试连接塔顿。 点击,以确保你能够成功地与吉苏达库连接起来。

Test Connection Button

Test Connection Button Appears

Step 7-Cpck Creat, 您现在将看到您的存放处登记如下图所示。

Repository Registered

下一步是建立一个建筑组合,用于建设该项目。 访问TeamCity ——普通环境。 Cpck Creat Building Configuration.

Team City General settings

在以下屏幕上,为建筑配置提供了名称。 就我们而言,我们将其命名为DemoBuild,然后点击创作。

Demo Build

在即将到来的下一个屏幕上,将请你选择在先前步骤中设立的VCS>存放处。 因此选择了`App',并点击Atach。

VCS Repository

Step 11——现在,在座的下一个屏幕上,我们需要混淆建筑步骤。 因此点击了“configure”的超链接。

Configure Build Steps Manually

在下一次建筑屏幕上,我们需要进入以下细节:

    选择Runer型为MSBuild。

    换代号。

    引用需要建立的文件名称。 当我们在前面几节中具体说明管理系统建设时,我们通常看到我们选择了Simple.csproj。 这里也需要说明同样的情况。

    • 选择MSBuild版本为“Microsoft Building Tool2013”。

    选择MSBuild ToolVersion为12.0。

    将网页上降为“拯救儿童”设施。

MS Build Tool Version

MS Build Tool Version 12.0

在下一次屏幕上,点击Run。

Cpck Run

您将看到你的申请现已开始。

Apppcation in Progress

你们应当获得一个成功的屏幕,这是一个很好的迹象,表明你的解决办法正在适当建立。

Successful Screen

您还可以到您的建设记录中去看连续整合服务器涵盖的所有步骤,详情如下:

Continuous Integration Server

Continuous Integration - Defining Tasks

现在,我们在吉特有基地代码,并与持续一体化服务器有联系,最后是看到行动持续一体化的第一步的时候了。 通过确定连续一体化服务器(例如触发器)的任务,使整个连续一体化进程尽可能顺畅。 让我们改变我们在视觉演播室的代码。

Demo.Aspx Page in Visual Studio

如果我们通过git status查询我们Gite 存放处。 事实上,你将看到Demo.aspx。 档案已经修改。

Git Status Command

我们现在需要确保,我们法典的每一改动都应促使我们不断一体化的服务器建立起来。 为此,我们需要作以下改动。

前往您的项目跟踪仪表板,点击触发器部分,点击, 点击

Add New Trigger

在即将到来的下一个屏幕上,选择VCSstart,用于制造触发器,以便在对存放处进行检查时,将启动一个建筑。

VCS Trigger

Step 5 -Cpck Show Superior Options,并确保选定以下屏幕上所示备选办法:

Show Advanced Options

。 您现在将看到,如以下屏幕所示,该触发器已成功登记。

Cpck and Save

现在是把我们的法典检查到吉特存放处,看情况的时候了。 因此,让我们迅速指挥,并发布git Add。 指挥我们改变了档案。

Simple Git Add

Step 8——现在发布git 承诺指挥,并将把改动推向吉苏。

您现在到你们的项目 概览屏幕显示,现在你会发现,将启动和管理一个新的建筑。

New Build

如果见Changelog Tab,请见git comment。 这引发了建筑。

Change Log tab

让我们再一次尝试。 让我们对Demo.aspx文档做另一改动。 让我们执行git Add 指挥和控制 发出以下承诺信息。

Git Add Git Command

Defining Tasks Demo Build

你们现在将看到,在团队精神项目仪表板上自动启动一个建筑。

Project Dashboard TeamCity

该建筑将展示一个成功的信息。

Success Message

您现在将看到“第二承诺期”的信息,该信息是在对git 储量/b>作出承诺时使用的。

我们现在成功地完成了持续一体化进程的第一部分。

CI - Build Failure Notifications

“建筑故障通知”是一旦建筑失败就启动的事件。 当建筑失败时,通知发给所有关键人物。 在这种情况下,首先要做的是,确保时间用在失败的建筑上,以确保建筑经过。 采取了以下步骤,以确保建筑通知在团队中实施。

以下是在团队中设立电子邮件通知的步骤。

Step 1-In TeamCity, go to You Project dash板, Point on Administration in the high right上手角。 然后,请见电子邮箱:Notifier左侧链接。 Cpck on this connection to cuing the general context for Email.

Email Notifier

Step 2——下一步是输入有效SMTP服务器的细节。 Gmail 提供免费的员工和管理当局协调署设施,任何人都可以使用。 因此,我们可以在下面的屏幕上看到这些细节。

    SMTP Host – smtp.gmail.com

    SMTP port no – 465

    Send email messages from and SMTP login – This should be a vapd Gmail id

    SMTP password – Vapd password for that Gmail id

    Secure connection – Put this as SSL

SMPT Server

。 只是为了确保环境正常运转。 然后点击Save,以挽救环境。

下一步是使用户能够编制通知。 第一项任务是创建用户,接收这些建筑通知。 选择Users Options

Users Option

Step 5——创建新的用户。 输入所需用户名和密码。 然后,Cpck the Creatuser button, which will be found at the Worst of the Screen.

Create User Button

<6Step 6——现在与这一新的用户口和密码一道在团队系统中登录。

Team City User Id and Password

Step 7——在您登录之后,将介绍用户的一般环境。 在Email Notifier区,点击Edit。

General Settings of the User

在接下来的屏幕上,点击 新的规则

Add New Rule

Step 9——在添加新的规则时,选择以下两种选择,然后点击S Save。

    从选定项目建设—— 选择民主项目。

    可查阅“Build”检查箱。

通过使这两个备选办法得以实施,目前一旦建筑工程失败,将向用户发送电子邮件通知——demouser

Demo Project

Step 10——现在,让我们开始错觉,以采取行动。 在视觉演播室,读到demo.aspx.cs文档并添加一条错误的代码。

Demo ASPX Cs

Step 11——现在通过做git Addgit承诺,从Gite抽查。

Build Failure Git Add Command

现在,在“Dash”项目中,大楼将自动启动,你将看到,如以下屏幕所示,大楼将失败。

Project Dashboard Build Failure

如果你在demouser的电子邮件上登录,你将实际看到一份建筑故障通知,如以下屏幕所示。

Team City Build Failure

CI - Documentation and Feedback

持续融合的一个关键方面是,始终要看建筑如何运作,收集重要衡量标准,记录这些成果,并通过不断建设不断产生反馈。

建立这些衡量标准有什么好处?

    < Not Committing Code Enough——如果开发商不经常向版本控制存放处投放代码,原因可能是一体化进展缓慢。 为了开始缩短施工时间,对一体化进行高级别分析,以建立环境,确定瓶颈。

    其次,分析调查结果并确定最适当的改进,然后试图改变建筑过程,以减少建筑工程的期限。 最后,重新评估建筑期限,以确定是否需要进一步改进。

    改进测试性能——即使在运行良好的 CI系统中,通过实施自动测试,将占用大部分一体化建设时间。 评估和改进这些测试的性能,可以大大缩短时间。

    。 你可能发现,由于系统基础设施,一体化建设缓慢。 也许网络运行缓慢,或虚拟私人网络连接缓慢。

    地理分布分散的系统以及不可靠的硬件或软件也可能引发绩效问题。 调查和改进任何基础设施资源,以减少建筑期限。

Metrics

下面是连续整合服务器中可使用的一些衡量标准。

让我们看一看团队必须提供什么——

最简单的衡量方式之一是项目仪表板上可得到的信息。 这里的关键要素是指出每一建筑的期限。 如果每个建筑的期限开始与正在制订的法典格格格格不入,那么这个问题就是一个问题。 因此,可以得出一个反馈意见,其原因可能是,CI服务器在资源上很低,而且可能需要加强服务器的能力。

Metrics

团队委员会有设施,可以了解 CI服务器是否实际上在基础设施方面有任何问题。 在City公司admin dash板上,可点击Disk Usage,看看每座建筑消耗多少磁盘。

Admin Dashboard

如果需要更多的细节,那么团队委员会就拥有diagnostics button,这可提供更多信息,介绍中央服务器正在使用的CPU和“记忆

Diagnostics Button

Detailed View of Build Metrics

如果人们想要看到一段时期对某个特定项目的建筑的详细看法,那么作为该项目的一部分即可得到。 在项目建造屏幕上,将前往统计屏幕上,这将提供各种统计数据和图表,说明建筑如何运作。

Detailed View of Build Metrics

Continuous Integration - Testing

持续一体化的关键特征之一是确保正在进行的测试。 持有由CI服务器建立的所有代码。 在由CI服务器进行建筑后,必须确保测试病例到位,以测试所需代码。 每个电算中心服务器都有能力作为CI套件的一部分进行单位测试。 在.Net,单位测试是.Net>框架所固有的特征,同一内容也可并入CI服务器。

本章将研究我们如何能够在.Net上界定一个测试案例,然后让我们的团队服务机在建筑完工后管理这一测试案例。 为此,我们首先需要确保我们对我们的样本项目进行单位测试。

为此,我们必须非常谨慎地遵循随后的步骤。

让我们在我们的解决方案中增加一个新类别,用于我们的单位测试。 这一类别将有一个名称变量,它将保留“持续一体化”的严格性。 该插图将在网页上展示。 简单项目右翼,选择菜单:Add> ——

Add Class

Step 2——将类别的名称改为Tutorial.cs,并在屏幕底部点击Addutton。

Tutorial CS

。 该法典只是创设了一个称为Name的画面,在Constructor中,该名称被贴在Continuous Integration上。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Simple {
   pubpc class Tutorial {
      pubpc String Name;
      pubpc Tutorial() {
         Name = "Continuous Integration";
      }
   }
}

让我们对Demo.aspx.cs作出改变。 申请使用这一新类别。 更新该档案中的法典,附以下编码。 因此,现在该法典将创立一个以上类别的新例子。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Simple {
   pubpc partial class Demo : System.Web.UI.Page {
      Tutorial tp = new Tutorial();
      protected void Page_Load(object sender, EventArgs e) {
         tp.Name = "Continuous Integration";
      }
   }
}

。 现在请参看tp.Name变量,该变量是在aspx.cs文档中创建的。

<%@ Page Language = "C#" AutoEventWireup = "true" 
   CodeBehind = "Demo.aspx.cs" Inherits = "Simple.Demo" %>
<!DOCTYPE html>
<html xmlns = "http://www.w3.org/1999/xhtml">
   
   <head runat = "server">
      <title>TutorialsPoint1</title>
   </head>
   
   <body>
      <form id = "form1" runat = "server">
         <span>
            <% = tp.Name%>)
         </span>
      </form>
   </body>
   
</html>

仅仅为了确保我们的法典对这些变化进行细微的工作,你就可以在视觉演播室操作该守则。 一旦汇编完成,你就应当取得以下产出。

Continuous Integration Output

现在,现在是把我们的单位测试加入该项目的时候了。 Right-cpck on Solution, 并选择菜单Add —— New Project

Right Cpck on Solution

。 选择通用测试项目。 名字改为Demo Test,然后点击K。

Unit Test Project

测试项目,请在简单项目和必要的测试组件上加一字。 这一项目的右翼项目,并选择菜单Add Reference

Add Reference

在即将到来的下一个屏幕上,选择Simple Reference和点击K。

Simple Reference

- Cpck Add Reference, re-toies and打字,Web。 之后添加“系统”的提法。 网页

System Web

Step 11——Unit Test file, 添加以下代码。 该法典将确保图西语班有直观的名称变量。 它还将申明,姓名应等于“持续融合”的价值。 这将是我们的简单测试案例。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Simple;

namespace DemoTest {
   [TestClass]
   pubpc class UnitTest1 {
      [TestMethod]
      pubpc void TestMethod1() {
         Tutorial tp = new Tutorial();
         Assert.AreEqual(tp.Name, "Continuous Integration");
      }
   }
}

现在,让我们在视觉演播室里进行测试,以确保它发挥作用。 在视觉演播室中,选择了菜单 试验> —— 0- 一切测试产品

Test Run Alltests

在进行测试之后,你将看到测试成功在视觉演播室左侧进行。

Test Successful

现在,所有的测试病例都已到位,现在应当将这些病例纳入我们的团队城市服务器。

Step 13——为此,我们需要在我们的项目组合中建立一步。 前往贵项目家,点击Edit Configuration街区。

Edit Configuration Settings

第14步——然后开始建设步——MS Building和点击Add楼梯,如以下屏幕所示。

Build Step Ms Build

在即将到来的下一个屏幕上添加以下价值观:

    选择操作器,作为视觉演播室试验。

    选择 测试站名称。

    选择测试引擎类型为VS 试验

    选择测试引擎版本为VS 试验

    在测试文档名称中,提供以下位置:Demo TestinDebugDemo Test.dll - Remember that Demo Test is the name of we project which includes we Unit Tests. 。 我们的第一步将产生。

    Cpck Save, which will be available at the end of the Screen.

Save Button

现在,你将为你的项目建立两个步骤。 第一个步骤是建立你的应用守则和测试项目。 接下来将用来处理测试案例。

Build steps

现在应该检查一下你在吉特的所有法典,以便启动整个建筑进程。 唯一的区别是,你需要管理git Addgit commitments。 如以下屏幕所示,由血亲双倍指挥。

Demo Parent Folder

当建筑启动时,你将看到初步产出,表明试验已经过去。

Initial output

如果你点击试验结果,去看测试表,你现在就会看到,1号试验室已经执行,并且已经通过。

Unit Test 1

Continuous Integration - Inspection

连续检查是在进行实际测试之前为你的代码进行自动检查。 检查和测试软件之间存在微妙差异。 测试是动态的,并安装了软件,以便测试功能。 检查根据一套预先界定的规则分析了该守则。

检查员(或静态和动态分析工具)采用工作队应遵守的确定标准(通常为编码或设计衡量标准)。 检查目标的例子包括编码“制图”标准、建筑层的遵守、编码重复和许多其他标准。

连续检查缩短了发现和固定之间的时间。 现有一些连续检查工具。 例如,我们将使用NCover 3.x,与团队精神相结合。 让我们看看我们如何能够进行持续检查,以及我们能够做些什么。

Download and Install NCover

NCover是一种单独的产品,需要下载和安装。 下载NCover,请点击以下链接并下载32台轨道安装器: 32 Bit Installer

运行下载的安装器,然后在安装机开始后点击。

Next

接受许可协议,然后点击。

License Agreement

接受缺省部分,然后点击。

Custom Setup Default Components

在Installhton开始安装。

Install Button

Cpck the Finish button to full the facipties.

Finish Button

第一次通过C:Program文档(x86)NCover NCover.Explorer.exe启动NCover安装。 你只是第一次需要安装审判钥匙,这是一个直截了当的过程。

Configure the Project in TeamCity to Use NCover

进入贵项目家庭屏幕,点击Edit 配置区。

Project Home Page

。 持续检查需要与界定的联检组测试同时进行。

Test Step

在网络覆盖部分,点击.Net 覆盖面工具。 然后选择以下环境。

    Choose the .Net Coverage tool as NCover(3.x)

    Platform as x86

    Version as v4.0

    Path to NCover as C:Program Files (x86)NCover

    Leave the other settings as they are

.net Coverage Section

Save

Step 5——现在进入贵项目的主要屏幕,点击Run。

Main Screen Cpck Run

Tests passed

该建筑一旦投入运行,就点击通过试验。 你们现在将看到《守则》的覆盖面,你们将看到许多指标。

Code Coverage

我们现在可以点击《法典》的封面,以获得更多关于《法典》分析的信息。

Code Analysis

Step 8-Cpck the fullcoveragereport.html> 我们现在将获得关于为.Net代码进行的检查的全面报告。

Full Coverage Report Html

Continuous Integration - Database

不断数据库整合是重建你的数据库和测试数据的过程,一旦对项目版本的控制存放处进行更改。

在数据库整合中,通常所有与数据库整合相关的工艺品——

    Should reside in a version control system.

    Can be tested for rigor and inspected for popcy comppance.

    Can be generated using your build scripts.

可参与持续数据库整合的活动可以是以下活动之一:

Drop a Database - Drop the database and去除相关数据,以便你能建立一个名称相同的新数据库

建立一个新的数据库——建立一个使用数据定义语言的新数据库。

初始数据―― 插入任何初步数据(例如,查询表),预计贵系统在交付时将包含这些数据。

Migrate Database and Data - Migrate the database schema and data on a periodic basis (如果你正在建立一个基于现有数据库的制度)。

www.un.org/french/ga 测试数据 多重环境所需的检测数据。

因此,在我们的持续数据库中,我们将采取下列步骤:

    我们将建立一个MSQ服务器数据库和相应的表格。

    我们将制作一份服务器管理演播室的文字。 该数据库的文字将用于建立我们的数据库表。

    我们将在我们的伙伴关系中起草一部法典。 查阅该数据库的净项目。

    我们将在我们团队的项目中迈出一步,以管理这一文字。

    我们将用我们的文字检查到Gite。

在较早的一节中建立的AWS数据库中为此采取的步骤。

新数据库

New Database

页: 1

Demo DB

在新的数据库中,右翼浮标并创建新的表格。

Tables Create New Table

你可以在表格中增加你所期望的栏目。

Add Desired Columns

Menu Option

Step 7 - Save the file to the demo Project rafter as Sample.sql

Save As Sample

这就是数据库的描述。 如果出现的话,将首先放弃现有表格,然后重新计算表格。

USE [Demodb]
GO

/****** Object: Table [dbo].[Demotb] Script Date: 3/22/2016 7:03:25 AM

******

DROP TABLE [dbo].[Demotb]
GO

/****** Object: Table [dbo].[Demotb] Script Date: 3/22/2016 7:03:25 AM

******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Demotb](
   [TutorialName] [nvarchar](max) NULL,
   [TutorialID] [smalpnt] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

现在请迅速修改我们的ASP.Net代码,以提及新的数据库。

。 在Demo Project上存档,添加以下编码线。 这些代码线将与你的数据库连接,使用服务器版本,并将该版本的名称储存在姓名变量上。 我们可在Demo.aspx.cs上显示这一名称变量。 文件:Response.write。 指挥。

using System;
using System.Collections.Generic;
using System.Data.SqlCpent;
using System.Linq;
using System.Web;

namespace Simple {
   pubpc class Tutorial {
      pubpc String Name;
      
      pubpc Tutorial() {
         string connectionString = "Data Source = WIN-50GP30FGO75;
         Initial Catalog = Demodb;
         Integrated Security = true;";
         
         using (SqlConnection connection = new SqlConnection()) {
            connection.ConnectionString = connectionString;
            connection.Open();
            Name = connection.ServerVersion;
            connection.Close();
         }
      }
   }
}

Step 10——在Demo.aspx.cs上添加以下代码: 档案确保显示服务器版本。

using System;
using System.Collections.Generic;
using System.Data.SqlCpent;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Simple {
   pubpc partial class Demo : System.Web.UI.Page {
      Tutorial tp = new Tutorial();
      
      protected void Page_Load(object sender, EventArgs e){
         Response.Write(tp.Name);
      }
   }
}

现在,如果我们实施该守则,你将在浏览器中取得以下产出。

Output

Step 11——现在,让我们在团队精神中加入我们的步骤,其中将使用数据库的文字。 进入你的项目仪表板,点击Edit Configuration Settings

Cpck Edit Configuration Settings

Add Build Step

选择以下备选办法(说明MSQ服务器客户应在CI服务器上安装)。

    行车应该是指挥线。

    2. 采用任择步骤名称。

    操作应当具有参数的可执行性。

    可执行指挥系统应为C:Program filesMicrosoftker110ToolsBinnsqlcmd.exe

    指挥参数 页: 1 -i Sample.sql。 在S-S公司给出服务器机号。

- Cpck Save。

Build Order

现在需要确保的是建筑秩序。 你必须确保建筑秩序如下。

你们可以通过选择重新排序步骤的选择来改变建筑秩序。

    数据库的建立应首先——因此,将用来从新的数据库中重新检索你的数据库。

    下面是你提出申请的基础。

    最后,您的测试安排。

Test Setup

。 页: 1 档案被查到Gite。 这将自动启动建筑。 这座建筑应该通过。

Sample SQL

现在,你有一个完整的建筑周期,在数据库一体化方面以及在你的周期中都有一个连续的方面。 在下一节中,请进一步考虑这一问题,并探讨持续的部署。

现在,你与当地服务器一起这样做,我们可以重复为AWSMS/5采取的同样步骤。 服务器是在前几节之一创建的。 为了与微软KS服务器连接,你需要通过以下公约连接。

Step 16——首先,见AWS中你数据库的名称。 当你在AWS上登录时,就去数据库科的RDS科。

RDS Section Under Database Section

Step 17 - Cpck on DBases in the next Screening that come.

DB Instances in Next Screen

demodb.cypphcv1d87e.ap-Southeast-1.rds.amazonaws.com:1433

Endpoint

Step 19——现在与SQL服务器管理<>数据库链接,你需要具体说明连接点如下:demodb.cypphcv1d87e.ap-Southeast-1.rds.amazonaws.com,1433。 (注:假名与停港之间使用的ma)。

Connect to Server

下面的屏幕显示与数据库的成功链接。

Successful Connection

然后,你可以重复所有相同的步骤。 www.un.org/Depts/DGACM/index_russian.htm 如下:

Sql cmd Command

在数据库中,这种指挥也可以取代。 当你执行sqlcmdtor时,表格将自动在服务器数据库中建立。

Database Build Step

Continuous Integration - Deployment

自动建筑和重复建筑。 自动测试和重复测试。 测试类别和测试频率。 不断检查。 不断整合数据库。 这些任务在创建有效的 CI环境方面的主要好处是:在任何环境的任何时候释放运行软件。

在我们前几章中,我们完成了以下所有部分:

    Created our code.

    Ensured a proper build in TeamCity.

    Created a Database Integration process.

    Conducted successful testing.

现在剩下的唯一事情是进行自动化部署,以便完成整个进程。

就我们而言,为了自动部署,我们需要遵循这些步骤——

    在我们的部署服务器中,确保安装了国际数据系统。

    确保用户能够查阅我们的数据库。

    制作一个出版物目录,用于在网站建成时予以公布。

    确保我们改变我们的微型和小型基地,以便进行自动部署。

    自动出版公司。

    承诺git承诺,以确保你的所有档案都存放在Gite。

在“Windows 2012”服务器上,到你的服务器管理员,点击“Add Roles”和“特征”。

Server Manager

Add Roles and Features Wizard

在下一次屏幕上选择基于角色或基于特征的安装,并点击下。

Installation Type

Step 5——选择违约服务器并点击下。

Default Server

Web Server Role

在接下来的屏幕上,下面点击。

Cpck Next

Web Server Role Cpck Next

在接下来的屏幕上,点击下。

Role Services

在最后屏幕上,你可以点击Install button安装IIS。

Install IIS

一旦安装了因特网信息系统,你可以开放因特网信息服务。

Internet Information Services

- 浮标 各位将看到一个有DefaultAppPool名称的集合。 这需要在下一个步骤中能够接触到SQ服务器。

Step 12——如果我们需要连接一个伙伴关系的话。 对MSQ服务器应用程序的净应用,我们必须允许KQ服务器机组进入缺省应用程序库,以便连接我们的Demodb数据库。

Step 13-开放式服务器管理室。 选择菜单(,新 Log/b>。

New Login

在下一次屏幕上,更新了以下参数并点击了科索沃。

    Login name as IIS APPPOOLDefaultAppPool.

    Default database – This should be our database, which is demodb.

Parameters

- 制作《英国概况。 出版概况在《演播室视觉》中用于制作一套部署包,然后可以用于“管理建设”和“CI”服务器。 为此,从视频演播室来看,该项目的右翼和点击 Pubpsh的菜单。

Pubpsh Profile

在即将到来的下一个屏幕上,选择制作新的紧急情况简介,给它一个名字——DemoDending。 然后点击下顿。

Demo Deployment

在随后的屏幕上,添加以下价值观:

    Choose the Pubpsh method as Web Deploy.

    Enter the server as localhost.

    Enter the site name as Default Web Site/Demo.

    Put the destination url as http://localhost/Demo

然后点击下顿。

Pubpsh Web Next Button

在下一次屏幕上,点击下。

Pubpsh Web Configuration

在即将到来的最后屏幕上,点击了 Pubpsh子。

Final Screen

现在请上C:DemoSimpleProperties PubpshProfiles的贵项目地点,请上下新网站pubpsh Profile xml file。 这份出版物目录文件将载有公布您对当地国际独立实体服务器的申请所需的全部细节。

Step 18——现在,让我们定制我们的微型信贷机构,并使用上述出版物,了解情况。 在我们的微型信贷额度指挥中,我们规定了以下参数:

    对建筑工程的探索是真实的——一旦成功建造,这将引发自动部署。

    然后,我们提到使用上述步骤中使用的“生态概况”。

    视频演播室的版本刚刚提交给了MSBuild的部署能力,即正在使用的视觉演播室的版本。

Visual Studio Version

当你行使上述指挥权时,MSBuild将启动建设和部署进程。 你们会注意到,它正在将它部署到我们的Default 网站

Default Website

现在,如果我们浏览到该网站——http:// localhost/Demo/Demo.aspx。 我们将看到以下产出,这意味着国际会计准则理事会在我们的网站上成功地进行了部署。

Localhost

Step 19——通过团队精神进行自动配对——现在,现在应当给我们的团队服务器增加一项任务,即根据上述步骤,自动使用微型信贷公司来部署我们的应用。

进入你的项目仪表板,点击Edit Configuration Settings

Project Dashboard Configuration Settings

<21>Step——建立步骤和点击添加一步。

Build Steps Add Build Steps

选择以下选择:

    经营人类型应为MSBuild

    选择 缩略语

    采用简易/简易程序。

    • 将MSBuild版本作为Microsoft Building Technologies2013

    • 将MSBuild工具转换为12.0

    Put 指挥线为/p:DeployOnBuild=真实/p:PubpshProfile=Demoployement 页: 1

Build Configuration Settings Cpck Save

MS Build Version

确保在建筑步骤中,开发步骤是链条的最后一步。

Deploy Step

Final Git Command

各位祝贺您成功建立了完整的连续一体化周期,可以随时随行。

Continuous Integration - Best Practices

让我们根据迄今汲取的所有经验教训,对持续融合的最佳做法进行最后审查——

    这是最基本的步骤。 在所有这些例子中,所有材料都保存在从代码基到 Pubpsh剖面、数据库文字的吉特存放处。 必须始终确保把所有东西保留在法典存放处。

    Automate the Building - 我们已看到如何利用MSBuild实现建筑自动化,同时使用出版物。 这再次是持续融合进程的一个关键步骤。

    建设自测——确保你能通过保持单位测试案例来测试建筑,这些测试案例应当能够由连续一体化服务器操作。

    每一承诺(按基线)均应建立。 对申请所做的每一项承诺都需要成功建立。 如果建筑工程由于任何原因都失败,则需要修改法典以确保建筑通行证。

    加速建造 如果建筑进展缓慢,那么它将在整个持续融合过程中表明存在问题。 确保建筑总是限于一段时间,最好永远不超过10分钟。

    每个人都能看到最新建筑的成果。 “团队精神”仪表板让所有人了解所有建筑,这些建筑已经过去或失败。 这为参与持续融合进程的所有人员提供了很好的见解。

Advertisements