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谈逻辑漏洞》
「阅读原文」看交流实录,你想知道的都在这里
Jenkins 与 GitLab 的自动化构建之旅相关推荐
- Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署
一.环境需求 本帖针对的是Linux环境,Windows或其他系统也可借鉴.具体只讲述Jenkins配置以及整个流程的实现. 1.JDK(或JRE)及Java环境变量配置,我用的是JDK1.8.0_1 ...
- Jenkins集成GitLab Webhooks自动化构建
Jenkins+GitLab Webhooks自动构建项目 1 构建步骤 1.1 Jenkins中设置构建触发器 1.2 Build Authorization Token Root插件安装 1.3 ...
- jenkins和docker实现自动化构建部署
应用场景 程序员开发应用,开发后需要提交gitlub,然后从gitlab拉取代码,进行构建,发布到tomcat中然后发布看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把 ...
- centos+jenkins+nginx+gitlab前端自动化部署全记录
0. 前言 我们在开发一个新的项目时,总是需要将前端部署到测试服务器上,给测试或者产品访问.简单的来说,如果想部署前端到服务器,服务器需要提供一个服务来访问前端.如果我们在开发中没有涉及Node.js ...
- Jenkins+Ant+TestNG+Testlink自动化构建集成
这段时间折腾自动化测试,之前都是在Eclipse工程里面手工执行自动化测试脚本,调用Testlink API执行测试用例,目前搭建Jenkins自动化构建测试的方式,实现持续构建,执行自动化测试. 硬 ...
- Jenkins快速介绍及自动化构建实战
文章目录 Jenkins是什么 Jenkins基本功能 Jenkins下载与安装: 创建自动化构建任务 Jenkins关闭和重启 Jenkins是什么 Jenkins是开源的CI(持续集成)和CD(持 ...
- 持续集成[代码流水线管理及Jenkins和gitlab集成]-自动化部署05
安装sonar Scanner 打开http://www.sonarqube.org/官网 找到下面扫描器 通过这个扫描器可以分析代码分析 因此你也的安装这个扫描器 上传sonar-scanner-2 ...
- 使用Jenkins配置SpringBoot的自动化构建
相关阅读 1.使用Jenkins配置Git+Maven的自动化构建 2.Jenkins部署Maven多环境项目(dev.beta.prod)的参数设置 3.使用Generic Webhook Trig ...
- Jenkins集成Gitlab实现自动化部署
目录 一.环境准备 1.配置无密码登录 (1)Jenkins 服务器上生成一对公钥.私钥 (2)获取公钥信息 (3)获取私钥信息 (4)复制公钥到应用服务器 二.配置 Gitlab 1.创建示例项目 ...
最新文章
- 释放CPU,算力经济下DPU芯片的发展机遇
- 【完整版】当大师遇到了理工男,只能吐血了...
- 【渝粤题库】国家开放大学2021春2038财务管理题目
- python字典遍历的几种方法(转)
- 22.案例实战:把springboot的接口,自动生成接口文档
- linux 串口 抓包工具下载,Device Monitoring Studio串口抓包工具使用教程
- 最强分布式锁工具:Redisson
- 天勤数据结构代码——排序
- pdf文件如何生成目录 wps_wps怎么制作pdf文档 wps快速制作pdf文档方法教程
- Gephi可视化人物关系图
- AR眼镜,离替代手机还有多远?
- Notes Sixth day-渗透攻击-红队-打入内网
- 基于莱维飞行和随机游动策略的灰狼算法-附代码
- 【Simulation】2 Elements of Probability-双样本均值方差的讨论
- 基于cPCI总线的嵌入式遥测前端处理器系统设计
- strace简单介绍
- 深度学习框架Deeplearning4j实战:文本智能抽取快速定位
- 生成二维码,再将二维码转成图片
- 半条命java版_《半条命》1.1.3版本mod
- 【惊爆】可牛公布360安全卫士刻意拦截证据(图)
热门文章
- 第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组解析
- 文墨绘学:培训机构如何做好招生培训
- Receptive Field Block Net for Accurate and Fast Object Detection(RFB)
- 前端面试:经典面试题Foo与getName()
- Windows双开或者多开微信的简单做法
- c语言将一个字符输出三遍,C语言字符相关部分内容小结
- 主流压缩软件压缩率实测(图文详解,揭秘你不知道的)
- [python] python模块graphviz使用入门
- Ineligible Devices 不被识别的设备
- 跑腿小程序需要服务器吗,小程序设置流程