背景
最近在做項目的時候,由於“每次commit代碼後,還需要人工編譯代碼,然後再跑測試”,感覺特別浪費時間和麻煩。因此準備開始偷懶,就上網瀏覽了一下有沒有偷懶的方法。果然,程序員偷懶是普世道理,我很快就找到了一些比較流行的方法:
- gitlab+CI/jenkins
- gitblid+jenkins
考察了一下後發現,gitlab固然漂亮,但是其確不能在windows下部署(開發環境爲Windows),那隻能用更簡單的gitblid。當然,持續集成則直接用jenkins即可。
以下,將簡單介紹,如何逐步安裝,完成gitblid和jenkins的持續集成,以及如何配合CMake和VS2012完成自動編譯。
吐槽一下,本來這麼久沒有寫博客,應該整理分析一下最近的看的論文的,結果又寫了一篇工具類博客,果然自己太懶了。
步驟
1、下載各類程序
VS2012:開發環境
.Net Frame 4.0:提供MSBuild
CMake:將CMakeLists.txt轉換成***.sln
git : 版本管理工具
java_re : gitblit和jenkins基於java開發,因此首先要安裝運行環境
gitblit :git簡易版本的server
jenkins : 自動持續集成的工具
2、安裝java_re
這個簡單,去java官網下載一個對應版本的jre;我下載的如下:
然後點擊安裝後,再配置一下JAVA_HOME和CLASSPATH和PATH,分別如下(一般路徑都是如下,可能會有差異):
PATH
完成上述步驟後,打開cmd,輸入java,確認環境配置成功
2、安裝gitblit
首先去官網下載一個最新版本,然後解壓。
打開解壓目錄下的data/defaults.properties
,做以下修改:
# 設置代碼保存目錄,注意使用 /
git.repositoriesFolder = PATH/code
# 根據本機IP(打開cmd用ipconfig查看)
server.httpBindInterface = 192.168.1.104
server.httpsBindInterface = localhost
# 設置http端口號,選一個沒有佔用的即可
server.httpPort = 1080
除此之外,我提前設置以下gitblit下jenkins的參數,打開data/groovy/jenkins.groovy
,做以下修改:
# 將jenkins可以訪問gitblit
def jenkinsUrl = gitblit.getString('groovy.jenkinsServer', 'http://localhost:8080/')
完成上述配置後,單擊gitblit.cmd
,然後再打開192.168.1.104:1080
,即可達到gitblit主頁:
關於怎麼添加用戶之類的,我就不再介紹了。
最後在gitblit上添加一下小項目,用於做測試,本文寫了一個testVS2012
,就是簡單的hello world
。代碼如下:
CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
project(testVS2012)
add_executable(testVS2012 main.cpp)
main.cpp
#include <iostream>
int main()
{
std::cout<<"Hello World !"<<std::endl;
std::cout<<"Good Job"<<std::endl;
return 1;
}
將上述項目上傳到gitblit後,還需要配置一下jenkins,在其設置頁,如下設置即可:
3、安裝jenkins
jetkins的安裝也很簡單,首先去官網下載最新版本,然後一直點擊安裝即可,該程序提示非常豐富,所以這裏也就不再過多介紹。
值得注意的是,jenkins的admin賬戶密碼存放在安裝路徑下的initialAdminPassword
文件裏。系統界面大致如下:
首先打開manage jenkins->global tool configuration
,配置CMake、git和MSBuild,分別如下(路徑可能有些不同),然後點擊Apply
。
接下來,在主頁點擊new item
,配置項目參數:
設置代碼,注意下圖中的Credentials
就是gitblit的用戶名和密碼,嫌麻煩的話,可以直接用管理員賬號和密碼。
設置觸發器
設置CMake和MSBuild
最後保存一下,即可Build Now
測試一下,控制檯輸入如下:
總結
差不多先寫這麼多,也記錄了一下整個流程。反正又是一片流水,主要怕自己忘了。