Jenkins 与 GitLab 的自动化构建之旅

一、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-ce9.5.4ce.0amd64.deb 进行安装。

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

1.3 安装 Git 工具

1.4 生成密钥文件

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

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

二、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 中:

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

四、Android 项目构建

4.1 SDK 环境变量的设置

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

4.2 新建 Android 项目

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

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

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

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

添加凭证:

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

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

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

五、参数化项目构建

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分就是不稳定的。

还有很多的参数配置,如触发器配置、邮箱配置,自动化发布等的参数很多,这里就不一一介绍,感兴趣的朋友可以上网或者留言交流。

标签:JenkinsGIT 发布于:2019-10-29 18:45:07