2018-09-26

关键字:gitlab ci runner yml pipelines sudo Mac

基本概念

  • yml文件,添加该文件在git根目标即代表将该Project纳入CI管理,yml文件即为自动化时在runner上拉下代码后执行的脚本,用以驱动runner上的其他脚本或者操作。
  • gitlab自带的CI系统 称为Pipelines
  • runner即为自动化的服务器,通过gitlab的主url和添加yml后生成的project的token来和Project绑定,可以添加多个runner,我们要打iOS包,所以本文以在mac上添加runner为例。

两个坑

  • 在mac上添加runner,只有安装runner服务的时候用sudo,其余在配置runner的时候不可使用sudo(会有warning),不然会因为用户权限的原因,导致在gitlab上看到的runner会有new runer. Has not connected yet的字样。
  • 在mac配置runner,并没有Run untagged jobs选项,所以需要在配置完成后在gitlab上修改runner配置,将该选项勾选,不然会一直处于pending(等待中)状态,如下图。

<code>Run untagged jobs</code>

为什么选择gitlab ci(官方标准答案)

  • 更易于使用
  • 更快速
  • 更经济和安全(分布runner机制,按需添加)

在mac上添加runner的具体流程

下载安装二进制包(注意有sudo)

sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64

修改权限(注意有sudo)

sudo chmod +x /usr/local/bin/gitlab-runner

注册runner(注意此处没有sudo)

gitlab-runner register

输入giblab的根url,注意不是具体的项目url,可以在setting中的Pipelines栏找到具体的url,包括token,如下图

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.com

输入token

Please enter the gitlab-ci token for this runner
******

输入描述(支持中文)

Please enter the gitlab-ci description for this runner
[hostame] 这是个神奇的机器

输入tag

Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag

输入执行方式(按需选择,此处选择shell)

Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell

选择一个目录作为workspace(将在此目录下进行代码拉取同步,执行脚本等操作)

mkdir ~/Documents/gitlabci
cd ~/Documents/gitlabci
gitlab-runner install
gitlab-runner start

以上配置runner就可以了,当配置了yml的分支有新变化时,runner就会更新并执行yml中的命令(打包,分发等)。

标签: Mac, gitlab ci, runner, yml, pipelines, sudo

添加新评论