Jenkins 与 GitLab 的自动化构建之旅


本文来自作者 墨雪卿  GitChat 上分享 「Jenkins 与 GitLab 的自动化构建之旅」,阅读原文查看交流实录。

文末高能

上一篇:《Git 企业开发者教程

1. Gitlab 的安装及仓库创建

1.1 下载 Gitlab 安装包

1).官网下载速度较慢 建议先行下载

国内的源里面可以找到最新的版本,请单击这里查看。

2).安装依赖

sudo apt-get install curl openssh-server ca-certificates postfix

3).配置 postfix 邮箱

选择 Internet Site (F12) Enter 下一步

这里设置 FQDN 使用默认即可。

1.2 安装 Gitlab

在终端执行:sudo dpkg -i gitlab-ce_9.5.4ce.0_amd64.deb 进行安装。

出现 It looks like… 表示安装成功!

1.3 安装 Git 工具

1.4 生成密钥文件

使用 ssh-keygen 生成密钥文件 .ssh/id_rsa.pub。

这里生成的两个秘钥很重要,会在后面 Gitlab 的仓库配置与 Jenkins 的构建免密连接时候用到。

2. GitLab 简单配置及项目新建

2.1 配置 Gitlab

这一步在官方的文档里面没有,但是如果没有配置的话,直接启动 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。

首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。

2.2 Gitlab 项目新建

在 GitLab 的主页中新建一个 Project:

添加 ssh key 导入步骤2中生成的密钥文件内容(秘钥前面1.4节已生成):

ssh key 添加完成:

项目地址,该地址在进行 clone 操作时需要用到:

2.3 代码上传

克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件
git clone git@192.168.0.122:gavin/test.git:

进入到项目目录,拷贝自己的项目文件到此目录上传:

cd test/ cp –rf  自己项目路径/*   . git add . git commit -m “add README” #将代码提交到本地仓库 git push -u origin master #将文件同步到GitLab服务器上

在网页中查看上传的文件已经同步到 GitLab 中:

3. Jenkins 安装与配置

3.1 Java 环境配置

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 就配置完成:

3.2 安装 Jenkins

简单来说需要下面四步:

  • 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

3.3 Jenins 配置

上面只是安装完成了 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 主页中,点击左侧的系统管理—>管理插件进入如下界面搜索安装:

4. Android 项目构建

4.1 SDK 环境变量的设置

在“系统管理”—>“系统设置”—>“全局属性”设置 SDK 的环境变量名称与本地 SDK 的路径。

4.2 新建 Android 项目

开始创建一个 AndroidDemo 项目进行演:

构建一个自由风格的软件项目,然后填写项目名称。

源码管理,这里可以根据自己的实际选择 Git 或者 SVN 服务器。先设置 Git 的源码路径:

然后设置免密凭证。如果是第一次需要通过“Add”添加。

添加凭证:

单击“add”按钮进行添加:

此处的私钥既是1.4章节所产生。

设置完成上面的步骤,直接按左下角保存,项目创建完成。

5. 参数化项目构建

5.1 参数设置

建好的项目,相应修改构建参数等配置,直接通过“配置”进行修改:

选择实际需要用到的参数,比如发布的版本类型,Git 分支参数等。

1) 选择参数的设置:

设置打包的类型是 debug 或者 release。

打包的 App 针对的发布平台:

2) Git  分支选择:

想在构建的时候,自动获取 Git 仓库的分支并选择构建,可以设置如下:

3) gradle 脚本命令的配置:

选择“Invoke Gradle script”添加 gradle 命令脚本。

设置完这些参数保存,就可以退出到项目列表界面。

5.2 项目构建

进入项目开始构建,选择相应的参数。

构建成功的话,那么结果如下图:

构建完会在“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谈逻辑漏洞

「阅读原文」看交流实录,你想知道的都在这里

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值