本文来自作者 墨雪卿 在 GitChat 上分享 「Jenkins 与 GitLab 的自动化构建之旅」,「阅读原文」查看交流实录。
「文末高能」
上一篇:《Git 企业开发者教程》
1).官网下载速度较慢 建议先行下载
国内的源里面可以找到最新的版本,请单击这里查看。
2).安装依赖
sudo apt-get install curl openssh-server ca-certificates postfix
3).配置 postfix 邮箱
选择 Internet Site (F12) Enter 下一步
这里设置 FQDN 使用默认即可。
在终端执行:sudo dpkg -i gitlab-ce_9.5.4ce.0_amd64.deb 进行安装。
出现 It looks like… 表示安装成功!
使用 ssh-keygen 生成密钥文件 .ssh/id_rsa.pub。
这里生成的两个秘钥很重要,会在后面 Gitlab 的仓库配置与 Jenkins 的构建免密连接时候用到。
这一步在官方的文档里面没有,但是如果没有配置的话,直接启动 GitLab,会出现不正确的 FQDN 错误,导致无法正常启动。因此必须做配置。
sudo gedit /etc/gitlab/gitlab.rb
把 external_url 改成部署机器的域名或者IP地址。
然后对 GitLab 进行重配置 (这一步也是启动 GitLab):
sudo gitlab-ctl reconfigure
查看启动状态:
sudo gitlab-ctl status
在浏览器的地址栏中输入服务器的公网 IP 即可登录 GitLab 的界面,第一次登录使用的用户名和密码为 root 和 5iveL!fe。
首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。
在 GitLab 的主页中新建一个 Project:
添加 ssh key 导入步骤2中生成的密钥文件内容(秘钥前面1.4节已生成):
ssh key 添加完成:
项目地址,该地址在进行 clone 操作时需要用到:
克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件
git clone [email protected]:gavin/test.git:
进入到项目目录,拷贝自己的项目文件到此目录上传:
cd test/ cp –rf 自己项目路径/* . git add . git commit -m “add README” #将代码提交到本地仓库 git push -u origin master #将文件同步到GitLab服务器上
在网页中查看上传的文件已经同步到 GitLab 中:
Jenkins 基于 Java,Linux 下安装 Java 只要配置 Java 环境变量即可。
首先,解压java到相应目录,我一般习惯把安装的软件放到目录/usr/local下。
tar -zxvf jdk-6u45-linux-x64.tar.gz /usr/local
编辑环境变量,在 /etc/profile 文件中添加环境变量,Linux 的所有用户都可以使用。
vim /etc/profile
在文件最后添加内容如下:
export JAVA_HOME=/usr/local/jdk1.6.0_45 export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
这样,Java 就配置完成:
简单来说需要下面四步:
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt—key add -
sudo sh -c ‘echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
sudo apt-get update
sudo apt-get install jenkins
这样之后就安装完成。可以查看进程信息。
ps -ef |grep jenkins
上面只是安装完成了 Jenkins,还需要进行一些配置才可以。
在这个系统端口中,8080已经在使用中了。所以在 /etc/default/jenkins.修改 Jenkins 默认端口设置:
gavin@gavin:~$ gedit /etc/default/jenkins
修改默认端口为 HTTP_PORT=8090,这时通过浏览器就可以访问 Jenkins 了。比如我的地址:http://192.168.0.122:8090/
可以看到提示,为了确保 Jenkins 的安全,将管理员的密码写入文件,需要复制到下面的文本框做验证。
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
然后把输出的内容复制到上面密码框处。
然后,到了选择插件的界面,通过附加功能扩展 Jenkins 可以支持许多不同的需求。
插件安装完成,就到了创建用户的界面,这里可以创建一个 Jenkins 用户。
到这里,基本配置就完成了。
如果在后续使用中,有插件需要安装,通过在已运行的 Jenkins 主页中,点击左侧的系统管理—>管理插件进入如下界面搜索安装:
在“系统管理”—>“系统设置”—>“全局属性”设置 SDK 的环境变量名称与本地 SDK 的路径。
开始创建一个 AndroidDemo 项目进行演:
构建一个自由风格的软件项目,然后填写项目名称。
源码管理,这里可以根据自己的实际选择 Git 或者 SVN 服务器。先设置 Git 的源码路径:
然后设置免密凭证。如果是第一次需要通过“Add”添加。
添加凭证:
单击“add”按钮进行添加:
此处的私钥既是1.4章节所产生。
设置完成上面的步骤,直接按左下角保存,项目创建完成。
建好的项目,相应修改构建参数等配置,直接通过“配置”进行修改:
选择实际需要用到的参数,比如发布的版本类型,Git 分支参数等。
1) 选择参数的设置:
设置打包的类型是 debug 或者 release。
打包的 App 针对的发布平台:
2) Git 分支选择:
想在构建的时候,自动获取 Git 仓库的分支并选择构建,可以设置如下:
3) gradle 脚本命令的配置:
选择“Invoke Gradle script”添加 gradle 命令脚本。
设置完这些参数保存,就可以退出到项目列表界面。
进入项目开始构建,选择相应的参数。
构建成功的话,那么结果如下图:
构建完会在“Build History” 部分显示构建结果是成功还是失败并可以查看相应的构建日志,方便分析:
构建结果是红色代表构建失败,上图颜色表示构建成功。
构建状态:下图中分级符号概述了一个 Job 新近一次构建会产生的四种可能的状态。
Successful:完成构建且被认为是稳定的。
Unstable:完成构建,但被认为不稳定。
Failed:构建失败。
Disabled:构建已禁用。
在主界面则是通过构建稳定性评分等级进行表示。
构建稳定性:当一个 Job 中构建已完成并生成了一个未发布的目标构件,如果您准备评估此次构建的稳定性,Jenkins 会基于一些后处理器任务为构建发布一个稳健指数(从0-100 ),这些任务一般以插件的方式实现。
它们可能包括单元测试(JUnit)、覆盖率(Cobertura)和静态代码分析(FindBugs)。分数越高,表明构建越稳定。
下图中分级符号概述了稳定性的评分范围。任何构建作业的状态(总分100)低于80分就是不稳定的。
还有很多的参数配置,如触发器配置、邮箱配置,自动化发布等的参数很多,这里就不一一介绍,感兴趣的朋友可以上网或者留言交流。
近期热文
《谈谈源码泄露 · WEB 安全》
《用 LINQ 编写 C# 都有哪些一招必杀的技巧?》
《机器学习面试干货精讲》
《深入浅出 JS 异步处理技术方案》
《敏捷教练 V 形六步法实战:从布朗运动到深度协作》
《从零开始,搭建 AI 音箱 Alexa 语音服务》
《修改订单金额!?0.01 元购买 iPhoneX?| Web谈逻辑漏洞》
「阅读原文」看交流实录,你想知道的都在这里