基於Jenkins快速搭建持續集成環境

看了園友張善友的博文,嘗試成功.便有此做.原網址:http://www.cnblogs.com/shanyou/p/3750714.htmlhtml

  天下事有難易乎?爲之,則難者亦易矣;不爲,則易者亦難矣.小程序

 

首先要學會使用MSBuild構建腳本

附網址:http://www.infoq.com/cn/articles/MSBuild-1.bash

目標:學會用MSBuild編譯程序,主要用於asp.net 或者 asp.net mvc.服務器

最終,我寫的腳本以下:mvc

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
	<BuildArtifactsDir Include="UI\bin\" />
	<SolutionFile Include="HelloCI.sln" />
</ItemGroup>

<PropertyGroup>
	<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
	<BuildPlatform Condition=" '$(BuildPlatform)' == '' ">Any CPU</BuildPlatform>
</PropertyGroup>


<Target Name="Init" DependsOnTargets="Clean">
	<MakeDir Directories="@(BuildArtifactsDir)" />
</Target>

<Target Name="Clean">
	<RemoveDir Directories="@(BuildArtifactsDir)" />
</Target>

<Target Name="Compile" DependsOnTargets="Init">
 <MSBuild Projects="@(SolutionFile)" Targets="Rebuild"
          Properties="OutDir=%(BuildArtifactsDir.FullPath);Configuration=$(Configuration);Platform=$(BuildPlatform)" />
</Target>

</Project>


<!--msbuild HelloCI.msbuild /t:Compile /p:VisualStudioVersion=12.0 -->

 

腳本的最後一行註釋,是構建的命令./p:VisualStudioVersion=12.0是指明版本,若是不指明會報錯,找不到某文件.asp.net

 

Jenkins+tortoisesvn+MSBuild作到持續集成

附Jenkins的使用:http://www.infoq.com/cn/articles/MSBuild-2svn

先大概閱讀上面的網址對應的文章.注意:我用的版本控制器是tortoisesvn;此外,post-commit的鉤子我也會說明.post

1.安裝Jenkins(穩定版本便可),裝好後 進入左側 系統管理,點擊 管理插件, 安裝MSBuild插件.測試

2.使用Jenkins新建一個自由風格的軟件項目.配置以下:網站

 

主要是配置svn的地址和帳號密碼;構建觸發器不用選,後面會用鉤子.

而後是構建,配置以下:

HelloCI.msbuild是構建腳本的文件名.其次,參數是必定要填的.

其餘的不用理,直接保存.

項目列表,以下圖:

 

此時,用svn上傳一個項目(不包含bin),項目根目錄要有HelloCI.msbuild這個文件.

上傳完成後,點擊 上圖中的 當即構建 .用IIS等軟件看網站是否能夠訪問.

若是成功,下一步就是如何觸發構建.畢竟,每提交一次,就去服務器當即構建一次,是重複動做.要用觸發構建'封裝'.

用tortoisesvn的post-commit鉤子觸發構建

首先,要明白一點.在Jenkins的項目列表裏,除了點擊 當即構建 .還能夠經過訪問

  http://localhost:8080/job/JOBNAME/build?delay=0sec(JOBNAME須要替換成真實的job名稱),讓Jenkins啓動構建。(請本身測試,經過後,繼續看下邊的.)

tortoisesvn的鉤子設置以下:

 

HelloCIHook.exe是什麼呢?你應該能夠想到了,就是一個小程序,執行它會訪問能觸發構建的url.

代碼以下:

    class Program
    {
        
        static void Main(string[] args)
        {
            const string url = "http://localhost:8080/job/HelloCI/build?delay=0sec";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "GET";
            req.KeepAlive = false;
            req.GetResponse();
        }
    }

 

到這兒就結束了.

總結下流程,用svn提交代碼後,鉤子觸發HelloCIHook.exe這個程序,該程序訪問了一個url,進而觸發了Jenkins的構建(執行的MSBuild構建腳本).Jenkins以最新的代碼庫進行了構建,生成了bin(也能夠是其餘)目錄下的文件.網站成功更新.

相關文章
相關標籤/搜索