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

来源:http://www.cnblogs.com/DKnight/archive/2016/06/06/5563073.html
-Advertisement-
Play Games

基於Jenkins快速搭建持續集成環境.(Jenkins+tortoisesvn+MSBuild) ...


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

  天下事有難易乎?為之,則難者亦易矣;不為,則易者亦難矣.

 

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

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

目標:學會用MSBuild編譯程式,主要用於asp.net 或者 asp.net 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是指明版本,如果不指明會報錯,找不到某文件.

 

Jenkins+tortoisesvn+MSBuild做到持續集成

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

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

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(也可以是其他)目錄下的文件.網站成功更新.


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • centos 6.5安裝vncserver 並開啟遠程桌面 (Telnet那個老師課堂上教過了,這裡就不講了。哈哈)(首先要讓虛擬機聯網,才能下載yum源。讓舍友開個WIFI,然後用NAT模式連接。不會的去百度。)1、下載vncserveryum install tigervnc tigervnc- ...
  • 首先介紹下,目前C#作為一門快速開發的語言,在面試的過程中需要註意的技術知識點,瞭解下麵的知識點對於初級工程師入職非常有幫助,也是自己的親身體悟。 1. 簡述 private、 protected、 public、 internal 修飾符的訪問許可權。 答 . private : 私有成員, 在類的 ...
  • ...
  • 最近剛剛接觸MVC不久,因項目中要用到分頁,網上找了下資料,最後採用了MvcPager(http://www.webdiyer.com/),支持同步和Ajax非同步分頁。廢話不多說了直接上代碼。 一.MvcPager非同步 ViewModel: public class Article { [Displ ...
  • 使用DataSet可以直接輸出XML,並可指定是否帶有Schema: 不過,這樣將不會輸出值為Null的欄位,如: 你可能希望結果是這樣: 但結果為: c沒有輸出在XML文件中,其實我覺得這樣更合理,否則,如何區分null和""呢?如果希望輸出c,那隻能通過XmlDocument自己寫了: 空節點顯 ...
  • WPF綁定數據 模型類(繼承 INotifyPropertyChanged,實現屬性的變更通知) 最後的實現效果: 方法一:前臺頁面不對數據做綁定,後臺對RadGridView控制項做數據綁定 方法二:前端頁面做 ItemsSource空綁定,後臺用DataContext綁定上下文數據 記錄完成。 ...
  • 在“如何用MediaCapture解決二維碼掃描問題”這篇文章中,我們通過“成像”、“截圖”與“識別”三個步驟介紹了使用MediaCapture掃碼的主要過程及註意事項。本文主要針對“識別”的過程,對Barcode的概念作出一個較為簡單的介紹,同時也會討論ZXing的使用方法。 ZXing是一個Ja ...
  • 在WEB系統中,列印的確是比較煩人的問題,如果我們能製作一個屬於自己的自定義的列印插件,那麼我們在後續自定義列印的時候能隨心所欲的控制列印,這樣的效果對於程式員來說是非常開心的一件事件,本文將自己開發編寫的C# 製作的HTML列印插件分享出來,讓有同樣需求的朋友提供一個參考;此插件是基於Micros ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...