4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CloudBuildを利用してGAEへのデプロイを自動化

Last updated at Posted at 2019-04-30

普段、GitLabを利用してソースの管理をすることが多いので、今まではGitLabCIを利用して色々CI/CD周りを作ることが多かったのですが、最近、GCPをメインで使っているので、CloudBuildで出来ないかなと言う事で実験して見ました。
今回、作成した構成は、以下の通りです。自分の為のメモ書きです。

構成図

スクリーンショット 2019-05-01 2.08.44.png

GitLab->CloudSourceRepositories間の連携

下記記事を参考に設定しました。
https://qiita.com/tarosaiba/items/850042d6383ac5b7ef47

CloudBuildの設定

ここに関しては、UIに表示された通りに選択する事で基本的に詰まる事はありませんでした。
リポジトリの直下に専用のフォルダ(hogehoge)を作成してあったので、各コマンド実行時にcd してから実行しています。
gaeの古いバージョンを定期的にけさいないと上限までいってしまうので、一つ前のバージョン以外は削除するようにしました。

steps:
- name: 'gcr.io/cloud-builders/yarn'
  entrypoint: '/bin/bash'
  args: [ '-c',
          'cd hogehoge/ && yarn install'
        ]
- name: 'gcr.io/cloud-builders/yarn'
  entrypoint: '/bin/bash'
  args: [ '-c',
          'cd hogehoge/ && yarn run build'
        ]
- name: 'gcr.io/cloud-builders/gcloud'
  entrypoint: '/bin/bash'
  args: [
    '-c',
    "cd hogehoge && gcloud app versions list --service=default | grep default | sort -rk 4,4 | awk '{print $2}' | tail -n +2 | xargs -I {} gcloud app versions delete {}",
  ]
- name: 'gcr.io/cloud-builders/gcloud'
  entrypoint: '/bin/bash'
  args: [
    '-c',
    "cd hogehoge && yes | gcloud app deploy",
    ]                                                                                                                                                                                         

CloudBuildからGAEへデプロイ

CloudBuildのサービスアカウントにGAEのデプロイ担当、サービス担当を追加しないとデプロイが出来ずCloudBuildでエラーとなるので、必要な役割はデプロイ先に応じて変更が必要なようです。

まとめ

実際、設定して見るとそこまで難しくはなかったのですが、GitLabとCloudSourceRepositoriesの連携でかなり手間取りました(^.^)

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?