diff --git a/.github/workflows/deploy_to_gcp.yml b/.github/workflows/deploy_to_gcp.yml index 6bd2a46..7126f44 100644 --- a/.github/workflows/deploy_to_gcp.yml +++ b/.github/workflows/deploy_to_gcp.yml @@ -15,6 +15,7 @@ jobs: GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }} GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }} REPO_NAME: ${{ github.repository }} + HASH_SUFFIX: ${{ github.sha }} steps: - name: Checkout code uses: actions/checkout@v3 @@ -41,13 +42,12 @@ jobs: - name: Exec Terraform init shell run: | - ls -la ${HOME} - echo "$REPO_NAME" - echo "HOME: ${HOME}" - printf '%s' "$GCP_SA_KEY" > $HOME/sa.json export GOOGLE_APPLICATION_CREDENTIALS="$HOME/sa.json" ./scripts/deploy/init_terraform.sh - + - name: Exec Container Image Push to Artifact Registry + run: | + export GOOGLE_APPLICATION_CREDENTIALS="$HOME/sa.json" + ./scripts/deploy/build_image_to_gar.sh diff --git a/scripts/deploy/build_image_to_gar.sh b/scripts/deploy/build_image_to_gar.sh new file mode 100644 index 0000000..376c717 --- /dev/null +++ b/scripts/deploy/build_image_to_gar.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Google Container RegistryへDockerイメージをビルドしてプッシュするスクリプト +set -euo pipefail + +# 環境変数の設定 +REGION=${REGION:-asia-northeast1} +ENV=${ENV:-dev} +JOB_NAME=${JOB_NAME} +AR_REPO_NAME="cicd-repo-${ENV}" +HASH_SUFFIX=${HASH_SUFFIX:-$(date +%s)} + +# IMAGE_URIの設定 +# ローカル実行時は epoch 秒で自動採番。 +IMAGE_URI="${REGION}-docker.pkg.dev/${GCP_PROJECT_ID}/${AR_REPO_NAME}/run-job-${JOB_NAME}-image:${HASH_SUFFIX}" + +echo "REGION : ${REGION}" +echo "ENV : ${ENV}" +echo "JOB_NAME : ${JOB_NAME}" +echo "HASH_SUFFIX : ${HASH_SUFFIX}" +echo "IMAGE_URI : ${IMAGE_URI}" + +# Artifact Registry への認証設定 +gcloud auth configure-docker "${REGION}-docker.pkg.dev" + +# GARへDockerイメージをビルドしてプッシュ +gcloud builds submit --tag "${IMAGE_URI}" . + + + + + + + + +