以前のブログ記事、Glide を使用した Go の依存関係管理では、Glide を使った依存関係管理を解説するためにシンプルな Go プロジェクトを使用しました。この記事では GitLab CI でプロジェクトをビルドしてみましょう。
はじめに
$GOPATH 以下に新しいプロジェクトを作成し、glide-example からすべてのファイルをコピーしておきました。含まれているものは以下の五つです。
- .gitignore
- glide.lock
- glide.yaml
- README.md(任意)
- vendor/
ローカルでビルドして実行できることを確かめておきましょう。
パイプラインをセットアップしよう
以下のパイプラインファイルをプロジェクトのルートフォルダに追加するところからスタートしましょう。
.gitlab-ci.yaml
|
|
新しい .gitlab-ci.yaml ファイルを gitlab にコミットしてプッシュしたら、 pipeline job をチェックします。
このエラーはビルドがベンダーパッケージを見つけることができなかったことを示しています。GitLab CI ジョブのプロジェクトチェックアウトパスが /builds/ykyuen/gitlab-ci-go-build で、$GOPATH の下になかったことが原因です。
ソリューション
ビルドエラーを修正するには、プロジェクトが $GOPATH の下にあることを確認しなければいけません。ビルドプロセスを開始する前に、シンボリックリンクを作成することでエラーを防ぐことができます。.gitlab-ci.yaml を更新してみましょう。
.gitlab-ci.yaml
|
|
コミットしてプッシュし、 pipeline job を再度試します。
まとめ
- Go プロジェクトは常に $GOPATH 以下になければいけない。
- vendor のフォルダを確認すれば、glide install コマンドを実行する必要がなくなり、パイプラインを簡略化できる。