1、gitlab中的项目页,设置-Runners-Specific runners:获得URL和token,用于步骤3
2、选择运行测试脚本或构建的主机,安装gitlab-ci-multi-runner
a、gitlab 本机
b、其他服务器主机
c、docker
官方文档 https://gitlab.com/gitlab-org/gitlab-ci-multi-runner#install-gitlab-runner
3、步骤2中的环境,绑定gitlab仓库, $: sudo gitlab-ci-multi-runner register 输入项目中的URL和token,输入执行方式:如doker,shell等等
4、gitlab项目的根目录,配置.gitlab-ci.yml
https://docs.gitlab.com/ee/ci/yaml/README.html
5、gitlab中push代码,自动执行.gitlab-ci.yml配置。
6、.gitlab-ci.yml 举例,执行shell
7、命令行
$ sudo gitlab-ci-multi-runner list
$ sudo gitlab-runner list
$ sudo gitlab-runner verify
$ sudo gitlab-runner unregister --name "name"
$ sudo gitlab-runner register
8、在docker中执行gitlabrunner的job
a、在自己的私有docker image中执行:
1)提交修改过的image到docker hub,比如https://hub.docker.com/r/huskar/unit/, 其tag:forphp
2)在执行job的机器上执行 $sudo gitlab-runner register,其中的executor 输入:docker,docker image输入docker hub上的 :image名称:Tag
流程:
1、push代码,触发runner
2、启动一个执行器,本地shell 或docker
3、将项目该分支代码 pull到执行器
4、执行项目根目录中的配置文件 .gitlab-ci.yml,如进行单元测试,打包,安卓真机测试
5、输出执行结果
遇到的问题:
1、注册runner后在gitlab中可看到,但不能联通,在runner的机器上执行
解决方法 $ gitlab-ci-multi-runner --debug run
2、使用mac作为runner机器时,重启机器后,gitlabrunner不能自动启动运行
解决方法,运行register时不要使用su do ,$ gitlab-runner register