利用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。