diff --git a/.github/workflows/deploy_to_gcp.yml b/.github/workflows/deploy_to_gcp.yml index d488c6a..680d73f 100644 --- a/.github/workflows/deploy_to_gcp.yml +++ b/.github/workflows/deploy_to_gcp.yml @@ -17,6 +17,7 @@ jobs: REPO_NAME: ${{ github.repository }} HASH_SUFFIX: ${{ github.sha }} JOB_NAME: ${{ vars.JOB_NAME }} + HASH_SUFFIX: ${{ github.sha }} steps: - name: Checkout code uses: actions/checkout@v3 @@ -27,7 +28,7 @@ jobs: echo "Checking gcloud and terraform versions..." gcloud --version terraform --version - + - name: Check Gcloud auth run: | echo "HOME: ${HOME}" @@ -45,11 +46,17 @@ jobs: run: | 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 + - name: Exec Terraform init shell + run: | + export GOOGLE_APPLICATION_CREDENTIALS="$HOME/sa.json" + ./scripts/deploy/plan_terraform.sh + # steps: diff --git a/scripts/deploy/build_image_to_gar.sh b/scripts/deploy/build_image_to_gar.sh index 376c717..0a94374 100755 --- a/scripts/deploy/build_image_to_gar.sh +++ b/scripts/deploy/build_image_to_gar.sh @@ -7,7 +7,7 @@ REGION=${REGION:-asia-northeast1} ENV=${ENV:-dev} JOB_NAME=${JOB_NAME} AR_REPO_NAME="cicd-repo-${ENV}" -HASH_SUFFIX=${HASH_SUFFIX:-$(date +%s)} +HASH_SUFFIX=${HASH_SUFFIX} # IMAGE_URIの設定 # ローカル実行時は epoch 秒で自動採番。 @@ -32,4 +32,3 @@ gcloud builds submit --tag "${IMAGE_URI}" . - diff --git a/scripts/deploy/plan_terraform.sh b/scripts/deploy/plan_terraform.sh new file mode 100755 index 0000000..0fba502 --- /dev/null +++ b/scripts/deploy/plan_terraform.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Safe mode(when error,kill script) +set -euo pipefail + +# 変数の設定({HOME}/hash.txt からハッシュ値を取得) +HASH_SUFFIX=${HASH_SUFFIX} + +TF_DIR=${TF_DIR:-terraform} +ENV=${ENV:-dev} + +cd "$TF_DIR" + +if [ -f "${ENV}.tfvars" ]; then + terraform plan \ + -out=tfplan \ + -var-file="${ENV}.tfvars" \ + -var="hash_suffix=${HASH_SUFFIX}" + +else + # error raise + echo "ERROR: ${ENV}.tfvars not found in $(pwd)" >&2 + exit 1 +fi \ No newline at end of file diff --git a/terraform/dev.tfvars b/terraform/dev.tfvars new file mode 100644 index 0000000..72900c2 --- /dev/null +++ b/terraform/dev.tfvars @@ -0,0 +1,12 @@ +project_id = "gcp-devel-project" +region = "asia-northeast1" +env_name = "dev" + +job_name = "base" +# コンテナイメージ(CI/CDから渡される想定) + +cpu_limit = "1" +memory_limit = "512Mi" +timeout = "1800s" + +