GitLab CIならWindowsでのCIも簡単

WindowsでビルドやテストをするようなCIがGitLab CIで簡単に構成できるので紹介します。


簡単にわかるGitLab CIの仕組みで書いたように

GitLab RunnerはGitLab本体とは分離して別マシンや別コンテナに配置して、GitLabとGitLab Runner間はAPIで通信する仕組みになっています。

ということなので、ビルド環境のある物理WindowsマシンにGitLab Runnerを設置することでWindows版CI用Runnerを構築できます。

Install

GitLab RunnerはGolangで書かれておりシングルバイナリとして配布されており、インストールはバイナリを配置するだけokです。

  • x86: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-windows-386.exe
  • amd64: https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-windows-amd64.exe

使用しているWindowsに応じてダウンロードします。

配置する場所に制限はないので好きな場所に配置します。

この記事ではC:\GitLab-Runnerにamd64のバイナリを配置したとして進めていきます。

Setup

まず登録する際に入力する情報をGitLabで確認します。

「CIをするプロジェクトページ > Settings > Runners」を開くと"URL"と"token"が書いてあります。

URL & token

管理者権限でコマンドプロンプトを開き、先ほどバイナリを配置したフォルダに移動して登録していきます。

> cd C:\Gitlab-Runner
> gitlab-ci-multi-runner-windows-amd64.exe register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci):
{{確認したURL}}
Please enter the gitlab-ci token for this runner:
{{確認したtoken}}
Please enter the gitlab-ci description for this runner:
[<PC名>]: {{Runnerの説明}}
Please enter the gitlab-ci tags for this runner (comma separated):
{{Tag(任意)}}
Registering runner... succeeded                     runner=XXXXXX
Please enter the executor: virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

executerにはshellを選択してコマンドプロンプトでビルドするように指定しました。

次にユーザー名とパスワードを設定します。

この方のブログ記事にも書いてありますが、現状ユーザー名を指定するとうまく行きません。

パスワードの指定だけすると現在ログインしているユーザを自動で認識して設定するようなのでパスワードだけ指定します。

> gitlab-ci-multi-runner-windows-amd64.exe install --password ENTER-YOUR-PASSWORD
> gitlab-ci-multi-runner-windows-amd64.exe start

パスワードが正しく設定されていればstartできます。

startに成功していればGitLabのSettings>Runnersに登録したRunnerが表示されているはずです。

Note

Windowsにgitがインストールされていないとビルド時にgitがないのが原因で失敗してしまいます。
gitがインストールされていない場合は以下の記事を参考にgitをインストールすると良いです。
コマンドラインからGitを使う(for Windows) - Qiita
gitをインストールしたあとはRunnerをrestartさせる必要があります。

gitlab-ci-multi-runner-windows-amd64.exe restart

あとは.gitlab-ci.ymlを書いてpushすればCIが走ります。

Build

実際に動かした様子です。

.gitlab-ci.ymlのtagsを使えば複数環境でCIさせることが可能です、マルチプラットフォームでのCIが必要な場面に便利。

scriptでバッチファイルを起動するようにすれば手の込んだビルドもできそうなので今後試していく予定です。

参考記事

Show comments

Adsense

Share

  • このエントリーをはてなブックマークに追加

About

どこにでもいる平凡なプログラムを書く人間のログ。

Recently

Tags

Pages

-->