利用gitlab-ci搭建ci环境分为两个步骤:
①添加.gitlab-ci.yml配置文件,名称是固定的(配置文件写法参考官方文档:https://docs.gitlab.com/ee/ci/yaml/README.html)
②配置一个gitlab Runner
当首次添加配置文件后,gitlab-ci就会开始运行,但是由于没有配置Runner,状态会显示为pedding,可以在CI/CD->Pipelines中查看到本次自动化测试的运行状态,如图:
首次进入应该显示为pending状态。点进去会看到提示:没有一个active Runner,所以接下来配置一个Runner。
gitlab-ci的Runner可以在很多环境下配置,windows、linux、虚拟机、docker、甚至集群等等。用docker的方便之处是不用安装gitlab-runner,因为docker用镜像嘛,直接启动一个容器就好了。这里先用docker进行实现。其他平台的安装方法可以参考官方教程:https://docs.gitlab.com/runner/install/,安装之后的配置参考:https://docs.gitlab.com/runner/register/
因为docker无需安装,可直接进行配置(配置的前提是运行Runner的服务器有权限访问gitlab服务器):
①启动gitlab-runner容器:
docker run -d --name gitlab-runner --restart always -v /var/run/docker.sock:/var/run/docker.sock -v path to config(/home/xxx/config):/etc/gitlab-runner gitlab/gitlab-runner:latest
可以通过docker ps查看是否启动成功。
②注册一个Runner
docker exec -it gitlab-runner gitlab-runner register
其中 -it 后面的第一个gitlab-runner是容器名,第二个gitlab-runner是镜像名,其中容器名要根据前面的设置进行修改,如果你的容器名不叫gitlab-runner。
然后会出现一些配置让你去添加:1.gitlab地址 2.token 3.Runner的描述 4.Runner的tags 5.运行的executor,即docker 6.使用的镜像,全部添加,成功后会显示:Runner registered successfully. 这样就注册成功了。
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): Please enter the gitlab-ci token for this runner: Please enter the gitlab-ci description for this runner: Please enter the gitlab-ci tags for this runner (comma separated): Registering runner... succeeded runner=AzzcSohr Please enter the executor: docker, parallels, shell, ssh, virtualbox, docker-ssh, docker+ne, docker-ssh+machine, kubernetes: docker Please enter the default Docker image (e.g. ruby:2.1): Runner registered successfully. Feel free to start it, but if it's running already the coshould be automatically reloaded!
其中使用的token可以在Setting->CI/CD的Runners中看到,如图:
成功之后可以去gitlab的Setting->CI/CD下查看注册的Runner,如图:
图中这几项应该和刚才添加的保持一致(除了token)。另外会自动在前面的 path to config路径下生成一份config.toml文件(修改该文件,配置会自动生效的,如果不放心可以重启下docker)
这样就顺利注册了一个Runner,在使用的时候一定注意,.gitlab-ci.yml文件中每个测试都要指定一个tags,这个tags和注册Runner使用的tags要保持一致,因为gitlab-ci就是通过这个tags来决定调用哪个runner的。另外可以反复执行:docker exec -it gitlab-runner gitlab-runner register,
来注册多个Runners,就可以在.gitlab-ci.yml中通过tags选用不同的Runner。