はじめに
GitLab CIの動作検証のため何回もコミットしていると以下の問題が発生すると思います。
- コミットが汚れる
- runnerの待ち時間が長く、素早く改善できない
- gitlabのプランによっては使用時間に制限があり、気軽に試せない
1のコミットに関しては、最悪mainにマージするタイミングでsquashすれば良いですが 2,3番目は開発に影響を与えかねません。
そのためこの記事ではGitLab Runner構築のススメ - GitLab blogを参考に
runnerのみをローカル環境で実行し、気軽に検証できる環境を構築します。
環境
| バージョン |
---|
MacBook Pro M1 | Ventura 13.2.1 |
Homebrew | 4.0.13 |
GitLab | Enterprise Edition 15.11.0-pre |
Gitlab Runnerをインストールする
検証端末はMacBookなので、Homebrewでインストールします。
gitlab-runnerをインストールすると、~/Library/LaunchAgents/homebrew.mxcl.gitlab-runner.plist
ができます。
空のリポジトリを作成する
https://gitlab.com/users/sign_in からGitLabにサインインします。
新規にprojectを作成します。
今回はlocal-runner
というproject名にします。
Shared runnersはオフにします。後ほどregistration tokenを使用するので、この画面はそのままにしておいてください
gitlab-runnerのコマンド一覧
gitlab-runnerを登録する
gitlab-runner register
コマンドを実行します。
質問 | 入力 |
---|
Enter the GitLab instance URL (for example, https://gitlab.com/): | https://gitlab.com/ |
Enter the registration token: | 空のリポジトリを作成するで確認した、registration token |
Enter a description for the runner: | そのままEnter |
Enter tags for the runner (comma-separated): | そのままEnter |
Enter optional maintenance note for the runner: | そのままEnter |
Enter an executor: ssh, virtualbox, docker-ssh+machine, custom, docker-ssh, shell, docker+machine, instance, kubernetes, docker, parallels: | shell |
Runner registered successfully.
が出たらGitLabのページに戻って、runnerが登録されたことを確認します。
無事にrunnerが登録されていることが確認できました!
gitlab-runnerのconfig.tomlを確認する
gitlab-runner register
でrunnerの登録が完了したらconfigファイルを確認してみます。
.gitlab-ci.ymlを設定する
それでは実際にgitlab runnerを動かしてみましょう。
CI/CD > Editor > Configure pipeline
をクリックします。
CI/CD > Editor > Configure pipeline
をクリックすると、.gitlab-ci.yml
の設定が出てるのでそのままCommit changes
ボタンをクリックします。
無事に完了していますね。
ちなみにビルドはPCの~/builds
で実行されます。
ローカルで実行できるコマンドをrunnerから実行する
筆者のPCでは、nodeが使える状態です。
yamlにscriptを書いて実行してみます。
(asdf を使ってバージョン管理しているため、
. /opt/homebrew/opt/asdf/libexec/asdf.sh
というコマンドを入れています。)
今度はbrewコマンドを実行してみます。
runnerの登録を解除する
runnerの登録を解除します。
まとめ
Homebrewを使うことで、簡単に自分だけのCI環境を構築しました。これにより実行時間の制限を気にせず、すぐにCIの結果を受け取れるようになりました。
参考