Jenkins
来源:互联网 发布:js定时跳转action 编辑:程序博客网 时间:2024/04/27 12:53
http://geek.csdn.net/news/detail/100596
基于openstack开发一款企业级的云管理平台
目前我们比较成熟的套路是git+gerrit+jenkins
Gitlab用于代码托管,gerrit主要是代码的评审,jenkins用于打包和单元测试
Gitlab是一个集代码管理,测试,部署于一体的开源应用程序。
它包括一个有非常好的权限控制的Git版本管理系统,代码评审系统,问题跟踪系统,活动反馈系统,wiki,持续集成CI系统等。
今天docker盛行,跑个docker实例给大家演示一下。用docker跑gitlab就一个命令
假设我们的服务器IP是47.88.21.77
sudo docker run --detach --hostname gitlab.example.com --env GITLAB_OMNIBUS_CONFIG="external_url 'http://47.88.21.77/';gitlab_rails['lfs_enable']=true;" --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --restart always --volume /src/gitlab/config:etc/gitlab --volume /src/gitlab/logs:var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
服务启动后,浏览器进入http://47.88.21.77/.首次进入可以设置root的密码,注册用户即可进入系统,这里我们演示时使用的用户名是cjzhao
使用GitLab评审代码
在这里可以创建组织,项目,基本概念和Github一样,我们直接创建我们要演示的项目ios_ci_demo
创建完成后,进入项目首页,可以看到黄色的提示信息,为了能从远程把代码推送到服务器,需要配置一个ssh公钥,点击add an ssh key把你自己的公钥添加完成,就可以把代码上传上去了
我们根据第三种方法把现有的代码上传到gitlab,即执行下面的代码
Cd existing_folder
Git init
git remoteadd origin git@47.88.21.77:cjzhao/ios_ci_demo.git
gitadd .
Git commit
gitpush -u origin master
Gitlab中完成持续集成CI包括两个操作
1,配置一个Runner(用来编译,测试,打包的服务器节点)
2,在项目根目录增加yaml格式的CI脚本文件.gitlab-ci.yml
我们首先来为我们的项目配置一个Runner,由于我们的项目是iOS的,因此需要在安装了MacOS操作系统和Xcode的环境下才能编译、打包我们的APP,因此我们需要将一台Mac计算机配置成我们的一个Runner,基本原理就是在Mac上安装一个代理程序gitlab-ci-multi-runner,然后将Mac注册到GitLab服务器端,然后这台Mac机器就能接收到GitLab服务器下发的CI任务,完成相应的编译、测试、打包等工作,然后将结果反馈给GitLab服务器。
在一台Mac机器上执行如下命令安装gitlab-ci-multi-runner(可能需要翻墙才能装):
sudo curl--output /usr/local/bin/gitlab-ci-multi-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-darwin-amd64sudo chmod +x /usr/local/bin/gitlab-ci-multi-runner
在Mac机器上执行如下命令,将这台Mac注册到gitlab并绑定到我们示例项目
gitlab-ci-multi-runner register
我们的Mac机器就注册成为一个runner了,查看项目的runner页面
接下来就可以编写CI的脚本文件.gitlab-ci.yml
Stages:
- build
- archive
Build_project:
stage: build script:
- xctool -project ioscidemo.xcodeproj -scheme ioscidemo clean
- xctool -project ioscidemo.xcodeproj -scheme ioscidemo test -test-sdk iphonesimulator9.3
Archive_project:
stage: archive script:
- xctool -project ioscidemo.xcodeproj -scheme ioscidemo archive -archivePath build/ioscidemo
- xcodebuild -exportArchive -exportFormat ipa -archivePath "build/ioscidemo.xcarchive" -exportPath "build/ioscidemo.ipa"
Only:
- master
Artifacts:
Paths:
- build/ioscidemo.ipa
- jenkins
- Jenkins
- jenkins
- Jenkins
- Jenkins
- Jenkins
- jenkins
- Jenkins
- jenkins
- jenkins
- Jenkins
- Jenkins
- Jenkins
- Jenkins
- jenkins
- jenkins
- jenkins
- Jenkins
- Tsung笔记之压测端资源限制篇
- 关于Alipay支付宝接口--java
- Android Studio 新建项目超级慢的解决方案
- 利用Rsync同步工具上传、删除目标文件
- 机器学习(一)——线性回归、分类与逻辑回归
- Jenkins
- 检测是否是json格式
- BS版ERP怎样在桌面步骤网路视频
- 关于LeetCode中Integer Replacement一题的理解
- Tsung笔记之分布式增强跳出SSH羁绊篇
- Hyper-V Console vs SCVMM,一些事情只能通过SCVMM来做,不能通过Hyper-V管理控制台来做
- LeafChart(4)-绘制动画曲线图
- Netty系列之Netty高性能之道
- 学习windows 应用层 inline hook 原理总结