利用gitlab-ci搭建ci环境分为两个步骤:html
①添加.gitlab-ci.yml配置文件,名称是固定的(配置文件写法参考官方文档:https://docs.gitlab.com/ee/ci/yaml/README.html)linux
②配置一个gitlab Runnergit
当首次添加配置文件后,gitlab-ci就会开始运行,可是因为没有配置Runner,状态会显示为pedding,能够在CI/CD->Pipelines中查看到本次自动化测试的运行状态,如图:docker
首次进入应该显示为pending状态。点进去会看到提示:没有一个active Runner,因此接下来配置一个Runner。shell
gitlab-ci的Runner能够在不少环境下配置,windows、linux、虚拟机、docker、甚至集群等等。用docker的方便之处是不用安装gitlab-runner,由于docker用镜像嘛,直接启动一个容器就行了。这里先用docker进行实现。其余平台的安装方法能够参考官方教程:https://docs.gitlab.com/runner/install/,安装以后的配置参考:https://docs.gitlab.com/runner/register/windows
由于docker无需安装,可直接进行配置(配置的前提是运行Runner的服务器有权限访问gitlab服务器):ruby
①启动gitlab-runner容器:bash
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查看是否启动成功。服务器
②注册一个Runnerssh
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。