Docker 版本持續(xù)集成之 GitLab CI 實(shí)踐記錄

引言

原來團(tuán)隊(duì)使用Jenkins進(jìn)行持續(xù)集成,工作的也不錯。但是想要類似Github上使用TravisCI的效果,在內(nèi)部使用的GitLab上直觀的看到持續(xù)集成的過程。雖然已經(jīng)將Jenkins持續(xù)集成的結(jié)果和GitLab打通,但是效果不理想。最終還是考慮使用GitLab CI的功能進(jìn)行持續(xù)集成的方案。

實(shí)現(xiàn)目標(biāo)

  1. 可以直接使用Docker容器進(jìn)行編譯。
  2. 可以直接編譯安卓平臺的SDK和NDK。
  3. 能發(fā)布編譯后的結(jié)果到GitLab。

安裝 GitLab Runner

因?yàn)槲覀儸F(xiàn)有的服務(wù)器已經(jīng)有了Docker所以我選擇的方案是Install as a Docker service。關(guān)于Docker安裝的文章已經(jīng)很多了,可以搜索下或是按照官網(wǎng)的來操作也行。
執(zhí)行文檔里面提供的命令行:

docker run -d --name gitlab-runner --restart always \
      -v /srv/gitlab-runner/config:/etc/gitlab-runner \
      -v /var/run/docker.sock:/var/run/docker.sock \
      gitlab/gitlab-runner:latest

運(yùn)行成功后執(zhí)行 docker ps 命令進(jìn)行查看,是否一個叫 gitlab-runner 的容器正在運(yùn)行,不出意外應(yīng)該是已經(jīng)有了。
docker ps 命令的結(jié)果看到你的容器的CONTAINER ID,類似這樣 3e8077e209f5。有了ID我們進(jìn)入下一步注冊Runner。

image.png

注冊GitLabRunner

因?yàn)槲覀兡繕?biāo)是要使用Docker鏡像來跑CI所以我們使用gitlab-ci-multi-runner 進(jìn)行注冊。
這時候上一步的ID該啟作用了。我們需要進(jìn)入到已經(jīng)啟動的容器內(nèi)部。

  docker exec -it 3e8077e209f5 /bin/bash

這是id 3e8077e209f5是示例記得修改成自己的實(shí)際值。
執(zhí)行后我們就進(jìn)入到了容器的內(nèi)部。
執(zhí)行如下命令進(jìn)行注冊

gitlab-ci-multi-runner register \
      --url "http://sample.gitlab.com/ci" \
      --registration-token "3wvP7pfSWhqEgjzyHx2q" \
      --description "docker for andorid" \
      --executor "docker" \
      --docker-image javan/android-docker:latest 

這時候我們還缺少3個物料,url、registration-token、docker-image。
前面兩個簡單,打開任意一個GitLab項(xiàng)目

image.png

在Specific Runners 可以看到。
剩下是鏡像的問題,如果自己沒有特殊需求可以直接使用網(wǎng)上其他人已經(jīng)編譯好的Docker鏡像,這里發(fā)現(xiàn)一個不錯的現(xiàn)成安卓鏡像 gitlab-ci-android
docker-image 配置的知識默認(rèn)鏡像實(shí)際中還可以通過 GitLab CI 的.gitlab-ci.yml 文件進(jìn)行修改。

注冊完成之后刷新項(xiàng)目的頁面:

image.png

出現(xiàn)一個處于工作狀態(tài)的Runner說明你已經(jīng)配置好了。
剩下的工作就是給你的代碼倉庫配置.gitlab-ci.yml
這個還是要具體學(xué)習(xí)。這個不是本文的重點(diǎn)就不在此擴(kuò)展。

定制Docker Image 支持 SDK和NDK

使用我定制好的DockerImage https://github.com/javanyou/gitlab-ci-android

發(fā)布編譯結(jié)果

job artifacts
artifacts 后面補(bǔ)上我自己的配置范例。

參考文檔

  1. CI官方文檔
  2. 安裝GitLab Runner文檔索引
  3. Install Docker
  4. .gitlab-ci.ym 配置
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容