背景
最近在做项目的时候,由于“每次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
测试一下,控制台输入如下:
总结
差不多先写这么多,也记录了一下整个流程。反正又是一片流水,主要怕自己忘了。