iOS 持续集成

基础环境准备

安装更新 Docker

1
2
3
$ curl -sSL https://get.docker.com/ubuntu/ | sudo sh
# Docker version 1.7.0, build 0baf609

安装 Jenkins

1
$ sudo docker pull jenkins

statr script

1
init

安装 MySQL

https://registry.hub.docker.com/_/mysql/

1
$ sudo docker pull mysql

statr script

1
2
3
4
5
6
7
8
9
10
11
sudo docker run --name=gitlab711 -d -h git.lantop.com \
--env='GITLAB_PORT=80' --env='GITLAB_SSH_PORT=10022' \
--publish=10022:22 --publish=80:80 \
--link=redis-gitlab:redisio \
--volume=/opt/gitlab/data:/home/git/data \
--env='DB_TYPE=mysql' --env='DB_HOST=192.168.1.1' --env='DB_NAME=gitlabhq_production' \
--env='DB_USER=gitlab' --env='DB_PASS=password' \
--env='GITLAB_HOST=git.lanvige.com' \
--env='GITLAB_EMAIL=git@example.com' \
--env='SMTP_USER=git@example.com' --env='SMTP_PASS=password' \
sameersbn/gitlab:latest

配置 Jenkins

https://registry.hub.docker.com/_/jenkins/

安装插件

在系统管理->管理插件中可安装必要的插件。

我们需要安装git插件Git Client Plugin、Git Server Plugin, Xcode插件Xcode integration。

1
```

下载 jenkins docker image

$ sudo docker pull jenkins

启动

$ sudo docker run –name jenkins1 -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_data jenkins

$ sudo mkdir /var/jenkins_home
$ sudo docker run –name myjenkins1 -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins

1
2
3
4
5
6
7
8
9
10
## 配置 Jenkins iOS Build Agent
如果 Plugin Available 为空,请更新:
Manage Jenkins > Updates > Check now
Xcode Integration
GIT plugin

$

1
2
查看进程

查看 gitlab711 Container 是否启动成功

$ sudo docker ps

查看 Container 运行日志

$ sudo docker logs gitlab711

1
2
测试

$ ssh -p 10022 -vvv git@git.lanvige.com
`

分支环境对应

Develop 分支,dev 环境
Release 分支,test 环境
Master 分支, production 环境

如何打版本号分发。

检测 Build number。如果更新,就分发到 MIS。

哦。我想写一个自动的。有 build number 更新时,进行分发,不然不分发。只跑 build & test。

buildNumber=$(git rev-list HEAD | wc -l | tr -d ‘ ‘)
/usr/libexec/PlistBuddy -c “Set :CFBundleVersion ${buildNumber}” “${TARGET_BUILD_DIR}/${INFOPLIST_PATH}”

Jenkins 配置 Slave

https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines

REF::

Xcode Server

Solution