前面我們已經(jīng)安裝好 Gitlab CI 了。接下來安裝 Gitlab CI runner。
Gitlab CI runner 安裝指南 適配 Ubuntu 14.04 版本,用于連接到 GitLab CI 并在提交推送到分支時自動運行構(gòu)建任務(wù)。推薦的包基于 ruby 2.0 ,除了 postfix 以外。
Ruby2.0 是 默認的 Ruby 解釋器
1 2 3 4 5 6 7 8 | sudo rm /usr/bin/ruby /usr/bin/gem /usr/bin/irb /usr/bin/rdoc /usr/bin/erb sudo ln -s /usr/bin/ruby2 .0 /usr/bin/ruby sudo ln -s /usr/bin/gem2 .0 /usr/bin/gem sudo ln -s /usr/bin/irb2 .0 /usr/bin/irb sudo ln -s /usr/bin/rdoc2 .0 /usr/bin/rdoc sudo ln -s /usr/bin/erb2 .0 /usr/bin/erb sudo gem update --system sudo gem pristine --all |
bundler gem 安裝
GitLab CI runner 用戶創(chuàng)建
GitLab CI runner 代碼安裝在對應(yīng)用戶的主目錄:
CI 令牌從 Gitlab CI 的面板中獲取
用于訪問 runner 的權(quán)限:
使用 root 賬號來啟動守護進程:
GitLab CI 界面顯示 runner 已經(jīng)注冊:
假設(shè)上述步驟已經(jīng)在 Docker 容器中完成,可通過如下命令持久化到映像:
用來負責(zé)多個 runner:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $ docker run -- rm -t gitlab-runner \ su gitlab_ci_runner -c ' cd $HOME /gitlab-ci-runner ; \ CI_SERVER_URL=http: //workbench .dachary.org:8080 \ REGISTRATION_TOKEN=b14852619da392a \ bundle exec . /bin/setup ; bundle exec . /bin/runner ' Registering runner with registration token: 2619da3, url: http: //workbench .dachary.org:8080. Runner token: 35f9d40f2e072487870f987 Runner registered successfully. Feel free to start it! * Gitlab CI Runner started * Waiting for builds 2014-12-06 17:18:26 +0000 | Checking for builds...nothing 2014-12-06 17:20:27 +0000 | Checking for builds...received 2014-12-06 17:20:27 +0000 | Starting new build 6... 2014-12-06 17:20:27 +0000 | Build 6 started. 2014-12-06 17:20:32 +0000 | Submitting build 6 to coordinator...ok 2014-12-06 17:20:33 +0000 | Completed build 6, success. 2014-12-06 17:20:33 +0000 | Submitting build 6 to coordinator...aborted 2014-12-06 17:20:38 +0000 | Checking for builds...nothing ... |
當(dāng)容器停止時,runner 必須手工從 Gitlab CI 中移除。Gitlab CI 中的項目會因為在 runner 中消失而沖突,因此必須移除并重新添加,否則就沒有作業(yè)被重新調(diào)度。
在 Fedora 20 上安裝很簡單:
1 2 3 4 5 6 7 8 9 10 | sudo gem install bundler sudo useradd -c 'GitLab CI Runner' gitlab_ci_runner export PATH= /usr/local/bin :$PATH cd ~/ git clone https: //gitlab .com /gitlab-org/gitlab-ci-runner .git cd gitlab-ci-runner bundle install --deployment CI_SERVER_URL=http: //workbench .dachary.org:8080 \ REGISTRATION_TOKEN=XXXXX bundle exec . /bin/setup |