その他
    ホーム 技術発信 あぴらぼ式 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

    記事を共有