Open7
PRプレビューのための cloud run by CLI
deploy
SERVICE_NAME=hoge
SECRET=hoge-secret
REGION=asia-northeast1
gcloud run deploy $SERVICE_NAME \
--image=asia-northeast1-docker.pkg.dev/$PROJECT_ID/$ARTIFACT_REGISTORY/$SERVICE_NAME:1 \
--set-secrets=/code/secret/.env=$SERCRET:latest \
--region=$REGION \
--allow-unauthenticated \
--port=80 \
--project=$PROJECT_ID \
&& gcloud run services update-traffic $SERVICE_NAME --to-latest --region $REGION
削除
SERVICE_NAME=hoge
gcloud run services delete $SERVICE_NAME --region asia-northeast1 --quiet
-
--quiet
つけないとほんとに消していい?って聞かれる。
PRプレビューは
SERVICE_NAME="$SERVICE_NAME-pr-preview-${pr-number}"
になるようにして
- PR作成時 or 更新時に deploy
- PR Close時に delete
すればよさそう
URLの取得
- service listコマンド
- filterについて
一覧取得
gcloud run services list
指定したサービス名でフィルタ
SERVICE_NAME=hoge
gcloud run services list --filter "SERVICE:$SERVICE_NAME"
指定したフィールドのみ
以下ではURLのみ取得している。
SERVICE_NAME=hoge
gcloud run services list --filter SERVICE:$SERVICE_NAME --format='value(URL)'
PR作成時
- PRプレビューを作成する
PRプレビューの作成
PR_NUMBER=PullRequestのnumber
SERVICE_NAME="xxx-pr-preview$PR_NUMBER"
SECRET=xxx-secret
REGION=asia-northeast1
COMMIT=コミットID
gcloud run deploy $SERVICE_NAME \
--image=asia-northeast1-docker.pkg.dev/$PROJECT_ID/$ARTIFACT_REGISTORY/$SERVICE_NAME:$COMMIT \
--set-secrets=/code/secret/.env=$SERCRET:latest \
--region=$REGION \
--allow-unauthenticated \
--port=80 \
--project=$PROJECT_ID \
&& gcloud run services update-traffic $SERVICE_NAME --to-latest --region $REGION
- プレビューURLを出力する
URLの取得
gcloud run services list --filter SERVICE:$SERVICE_NAME --format='value(URL)'
取得したURLをPRにコメントする
- 適宜Preview環境用の環境変数やシークレットも整える
PRClose時
PRプレビューを削除する
PR_NUMBER=PullRequestのnumber
SERVICE_NAME="xxx-pr-preview$PR_NUMBER"
gcloud run services delete $SERVICE_NAME --region asia-northeast1 --quiet