ホーム あぴらぼ式 Cloud BuildでGAE/Goデプロイ by Slack vol.3
Cloud BuildでGAE/Goデプロイ by Slack vol.3
 

Cloud BuildでGAE/Goデプロイ by Slack vol.3

Information

この記事はアピリッツの技術ブログ「あぴらぼ式」から移行した記事です。情報が古い可能性がありますのでご注意ください。

前回 Cloud BuildでGAE/Goデプロイ by Slack vol.2

Cloud Source RepositoriesのコミットとCloud Buildとの連携

Cloud BuildでGAE/Goデプロイ by Slack vol.3ということで、
今回はCloud Buildをフックする部分について、実施したいと思います。

前回までで、Cloud Source Repositoriesへのマージの連携までできていますので、
このマージをフックしてCloud Build を起動する流れとなります。

Cloud Build の起動設定

Cloud Buildはvol.1でもお伝えした通り、
デフォルトで、Cloud Source Repositoriesとの連携に対応していますので、
連携の設定自体は簡単です。

トリガーの作成画面 に行くと、以下のようなボタンが出てくるので、

トリガーを作成をクリックします。

Cloud Source Repositoriesを選択して続行をクリックします。

前回の手順で設定したリポジトリが出てくるので、選択して続行をクリックすると以下のような画面になります。
ここの設定を終えれば、完了なのであとちょいです。

たくさん項目がありますが、
今回必要なのは、

  • 名前(任意)
    • わかりやすい名前であればなんでも構いません
  • ブランチ(正規表現)
    • masterを入力します。
    • すでにmasterブランチがBitBucketにあれば、一致するブランチとして出てきます
  • ビルド設定
    • cloudbuild.yamlを選択します

上記設定が終わったら、
トリガーを作成ボタンをクリックします。

以上でトリガーの作成は完了です。

では、masterブランチにpushして、処理が起動するか確かめたいと思います。

以下のような内容で、ルートディレクトリに、cloudbuild.yamlという名前のファイルを作ります。

steps:
- name: 'ubuntu'
  args: ['ls', '-lR', '/workspace']

これはubuntuコンテナを使って、/workspaceのls結果を表示するというタスクを意味します。

Cloud Buildでタスクを定義する際、cloudbuild.yamlに1つ以上のstepを定義することで、
実行したいタスクを定義できます。
nameには、GCPがデフォルトで用意しているコンテナを使用することも、
Docker Hubの公開イメージを使用することも、
独自のDockerイメージをGCRなどに登録して使用することもできます。
argsには、実行するコマンドを記述します。

[blogcard url=”https://medium.com/veltra-engineering/be-careful-when-deploying-golang-app-with-vendor-to-gae-4a12ad12b65f”]

ここでは、Docker Hubで用意されているubuntuの最新バージョンのコンテナを使用して、
/workspace配下に対して、lsコマンドを実行する、ということになります。

なお、Cloud Buildが実行されると、/workspace配下に、ブランチの内容が展開されます。

上記の内容で、masterブランチにpushすると、
ビルド履歴に、ビルド結果が表示されます。

starting build "54d09adf-f483-40e9-9fde-9736c3e3b61b"

FETCHSOURCE
Initialized empty Git repository in /workspace/.git/
From https://source.developers.google.com/p/bitbucket-build/r/bitbucket-source-repo
* branch 19a70a0da7a6c0ddfd32b2ebadff3ffbdeff7561 -> FETCH_HEAD
HEAD is now at 19a70a0 cloudbuild.yaml追加
BUILD
Already have image (with digest): ubuntu
/workspace:
total 4
-rw-r--r-- 1 root root 60 Aug 13 10:41 cloudbuild.yaml
PUSH
DONE

/workspace配下に、ブランチの内容が反映されているのが確認できるかと思います。

終わりに

これで、リポジトリの反映をフックして、Cloud Buildの処理を起動することができるようになりました。
ここでは、pushを契機に設定していますが、手動/CLIなどで実行することも可能ですし、
処理の内容も、設定次第で様々なユースケースに対応できるかと思います。

次回はいよいよ、GAE/Goのアプリをデプロイする設定をしたいと思います。

次回 Cloud BuildでGAE/Goデプロイ by Slack vol.4

記事を共有

最近人気な記事