GitLabRunnerを登録してGitLabCIを動かしてみる
とりあえずGitLabCIを動かせるようにする。
こんなかんじで進める。
- GitLabRunnerのインストール
- GitLabRunnerの登録
- .gitlab-ci.ymlの作成
- CIを動かしてみる
CentOS7で実行。
1. GitLabRunnerのインストール
公式を見れば簡単。
docs.gitlab.com
・リポジトリの追加
# curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
・yumでインストール
# yum install gitlab-runner
これで完了。
インストールまではすごく簡単。
2. GitLabRunnerの登録
続いて、Runnerを登録する。
これも公式ドキュメントを参考に進める。
docs.gitlab.com
登録にあたってGitLabが発行するtokenが必要になるので調べておく。
そのプロジェクトのSettings → CI/CD → Runners settings
赤枠で囲われたところをメモっておく。
では実際に登録してみる。
# gitlab-runner register Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): http://hogepiyo.com/ //GitLabのURLを入力 Please enter the gitlab-ci token for this runner: AssukefCjhvHwAJXF3C7 //先ほど調べたtokenを入力 Please enter the gitlab-ci description for this runner: [localhost.localdomain]: shell-runner //Runnerの詳細。後からも編集可能。 Please enter the gitlab-ci tags for this runner (comma separated): shell //このRunnerに付けるタグ。後からも編集可能。 Whether to run untagged builds [true/false]: [false]: //タグのないジョブを実行するかどうか。デフォルトfalse。後からも編集可能。 Whether to lock the Runner to current project [true/false]: [true]: //他のプロジェクトからこのRunnerを使えないようにするかどうか。デフォルトtrue。後からも編集可能。 Registering runner... succeeded runner=AssukefC Please enter the executor: docker+machine, docker-ssh+machine, kubernetes, docker-ssh, parallels, shell, virtualbox, docker, ssh: shell //ビルドの実行方法 Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
おっけー。
登録完了。
最初にtokenを確認したページに行くとRunnerが登録されているのが確認できる。
Settings → CI/CD → Runners settings
3. .gitlab-ci.ymlの作成
ビルドやテストの手順は.gitlab-ci.ymlに記載して、
そのプロジェクトのルートディレクトリに配置する。
今回はCIを試しに動かせるようになることが目的なので簡単な内容でテストする。
GitLabのエディタから.gitlab-ci.ymlファイルを作成してみる。
プロジェクトのRepository → New fileで。
stages: - runner-test ipaddress_job: stage: runner-test script: - ip a tags: - shell only: - master
これは、
runner-testというステージを定義して、
ipaddress_jobというジョブを定義して、
shellというタグが付いたランナーを対象にして、
ブランチはmasterだけを対象として、
RunnerサーバーのIPアドレスを表示する、ということを行っている。
これをそのままGitLabのエディタからコミットするとCIが動き出す。
4. CIを動かしてみる
コミットした時点ですでにCIが動いているはずなので確認してみる。
そのプロジェクトのCI/CD → Pipelines
成功してたら緑でpassedってなってる模様。
失敗してたらfailed,
なんらかの理由で止まってたらpendingとかになっている。
最初、「タグなしのジョブは実行しない」でRunnerの設定をしていたためここがずっとpendingで止まってて小一時間ハマった。
そのpassedをクリックして中に入るとipaddress_jobというジョブがあるので、
そこをクリックすると黒い画面の中にIPアドレスが表示されている。
たしかにgitlab-ci.ymlに記載したip aが実行されている。
一通りの流れは成功した。
あとは実践に近い形に持っていけるか。
ビルドして、テストして、デプロイして・・・。
docker上でいろいろやるらしいのだがdockerの知識がなくてわからん。
そういえばいつの間にかGitLabの書籍が出てた模様。
試しに買って勉強してみるかなー。
でもdockerもやらないとなー。
GitLab実践ガイド (impress top gear)
- 作者: 北山晋吾
- 出版社/メーカー: インプレス
- 発売日: 2018/02/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る