Github Actions で CloudRun をデプロイ

概要

GCR ( Google Container Registry ) にホストされている Image を Cloud Run にデプロイする。

自作コンテナは次回。

チュートリアル

Github Actions 用サービスアカウント作成

IAM -> サービスアカウントの作成より、以下の Role で作成。

  • Cloud Run 管理者
  • Cloud Run サービスエージェント
  • ストレージ管理者

作成したサービスアカウントを選択 -> キー -> 鍵を追加 -> JSON を選択し、ダウンロードしておく。 後で使う。

Github リポジトリ作成

ローカルの作業スペース。

mkdir test_github_actions

Github にリポジトリを作成し、以下までやっておく。

echo "# cloudrun-github-actions" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/runble1/cloudrun-github-actions.git
git push -u origin main

Github Actions 作成

GCP 公式 の Github Actions を参考にする。環境変数は 1 つ利用している。

  • GCP_SA_KEY

Github Actions 用の yaml 作成。

mkdir .github
mkdir .github/workflows
vi .github/workflows/deploy.yml

main ブランチに push すると hello-cloud-run という名前の CloudRun がデプロイされる。

name: Deploy

on: 
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:

    - name: Deploy to Cloud Run
      id: deploy
      uses: google-github-actions/deploy-cloudrun@v0
      with:
        image: gcr.io/cloudrun/hello
        service: hello-cloud-run
        credentials: ${{ secrets.GCP_SA_KEY }}

    - name: Show Output
      run: echo ${{ steps.deploy.outputs.url }}

Github リモートリポジトリに Secrets 登録

GCP_SA_KEY の Secrets を Github のリモートリポジトリに登録する。

  1. リポジトリの Setting
  2. 左サイドバー Secrets → Actions
  3. New repository secret
  4. Name に GCP_SA_KEY, Value に上でダウンロードしたサービスキーの Json

登録完了するとこんな感じ。

デプロイ

git push する。

git add .
git commit -m "Add github actions"
git push

確認

Github 上で Github Actions のワークフローが成功したか確認

  1. Github のリモートリポジトリの Actions
  2. 「Add github actions」

GCP 上で CloudRun がデプロイされたことを確認。

まとめ

Github Actions を利用して Cloud Run をデプロイする体験を得た。

コードは Github に。

GitHub - runble1/cloudrun-github-actions
Contribute to runble1/cloudrun-github-actions development by creating an account on GitHub.

自作コンテナの場合はこちら。

Github Actions で自作コンテナを CloudRun にデプロイ
概要 前回 GCR 上にホストされているイメージを CloudRun へデプロイした。 今回は自作コンテナをデプロイする。 チュートリアル Github 用サービスアカウント作成 ワークロード ID フェデレーションが推奨されているが、今回...

参考

GitHub - google-github-actions/deploy-cloudrun: A GitHub Action for deploying services to Google Cloud Run.
A GitHub Action for deploying services to Google Cloud Run. - google-github-actions/deploy-cloudrun
Cloud RunとGitHub Actionsでコンテナアプリケーションのデプロイを自動化する

コメント

タイトルとURLをコピーしました