本文来自作者 墨雪卿 在 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谈逻辑漏洞》

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

Jenkins 与 GitLab 的自动化构建之旅相关推荐

  1. Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署

    一.环境需求 本帖针对的是Linux环境,Windows或其他系统也可借鉴.具体只讲述Jenkins配置以及整个流程的实现. 1.JDK(或JRE)及Java环境变量配置,我用的是JDK1.8.0_1 ...

  2. Jenkins集成GitLab Webhooks自动化构建

    Jenkins+GitLab Webhooks自动构建项目 1 构建步骤 1.1 Jenkins中设置构建触发器 1.2 Build Authorization Token Root插件安装 1.3 ...

  3. jenkins和docker实现自动化构建部署

    应用场景 程序员开发应用,开发后需要提交gitlub,然后从gitlab拉取代码,进行构建,发布到tomcat中然后发布看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把 ...

  4. centos+jenkins+nginx+gitlab前端自动化部署全记录

    0. 前言 我们在开发一个新的项目时,总是需要将前端部署到测试服务器上,给测试或者产品访问.简单的来说,如果想部署前端到服务器,服务器需要提供一个服务来访问前端.如果我们在开发中没有涉及Node.js ...

  5. Jenkins+Ant+TestNG+Testlink自动化构建集成

    这段时间折腾自动化测试,之前都是在Eclipse工程里面手工执行自动化测试脚本,调用Testlink API执行测试用例,目前搭建Jenkins自动化构建测试的方式,实现持续构建,执行自动化测试. 硬 ...

  6. Jenkins快速介绍及自动化构建实战

    文章目录 Jenkins是什么 Jenkins基本功能 Jenkins下载与安装: 创建自动化构建任务 Jenkins关闭和重启 Jenkins是什么 Jenkins是开源的CI(持续集成)和CD(持 ...

  7. 持续集成[代码流水线管理及Jenkins和gitlab集成]-自动化部署05

    安装sonar Scanner 打开http://www.sonarqube.org/官网 找到下面扫描器 通过这个扫描器可以分析代码分析 因此你也的安装这个扫描器 上传sonar-scanner-2 ...

  8. 使用Jenkins配置SpringBoot的自动化构建

    相关阅读 1.使用Jenkins配置Git+Maven的自动化构建 2.Jenkins部署Maven多环境项目(dev.beta.prod)的参数设置 3.使用Generic Webhook Trig ...

  9. Jenkins集成Gitlab实现自动化部署

    目录 一.环境准备 1.配置无密码登录 (1)Jenkins 服务器上生成一对公钥.私钥 (2)获取公钥信息 (3)获取私钥信息 (4)复制公钥到应用服务器 二.配置 Gitlab 1.创建示例项目 ...

最新文章

  1. 释放CPU,算力经济下DPU芯片的发展机遇
  2. 【完整版】当大师遇到了理工男,只能吐血了...
  3. 【渝粤题库】国家开放大学2021春2038财务管理题目
  4. python字典遍历的几种方法(转)
  5. 22.案例实战:把springboot的接口,自动生成接口文档
  6. linux 串口 抓包工具下载,Device Monitoring Studio串口抓包工具使用教程
  7. 最强分布式锁工具:Redisson
  8. 天勤数据结构代码——排序
  9. pdf文件如何生成目录 wps_wps怎么制作pdf文档 wps快速制作pdf文档方法教程
  10. Gephi可视化人物关系图
  11. AR眼镜,离替代手机还有多远?
  12. Notes Sixth day-渗透攻击-红队-打入内网
  13. 基于莱维飞行和随机游动策略的灰狼算法-附代码
  14. 【Simulation】2 Elements of Probability-双样本均值方差的讨论
  15. 基于cPCI总线的嵌入式遥测前端处理器系统设计
  16. strace简单介绍
  17. 深度学习框架Deeplearning4j实战:文本智能抽取快速定位
  18. 生成二维码,再将二维码转成图片
  19. 半条命java版_《半条命》1.1.3版本mod
  20. 【惊爆】可牛公布360安全卫士刻意拦截证据(图)

热门文章

  1. 第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组解析
  2. 文墨绘学:培训机构如何做好招生培训
  3. Receptive Field Block Net for Accurate and Fast Object Detection(RFB)
  4. 前端面试:经典面试题Foo与getName()
  5. Windows双开或者多开微信的简单做法
  6. c语言将一个字符输出三遍,C语言字符相关部分内容小结
  7. 主流压缩软件压缩率实测(图文详解,揭秘你不知道的)
  8. [python] python模块graphviz使用入门
  9. Ineligible Devices 不被识别的设备
  10. 跑腿小程序需要服务器吗,小程序设置流程