From ab32a9e825b950d06d21dfe1919888f5033ea862 Mon Sep 17 00:00:00 2001 From: "ry.yamafuji" Date: Fri, 5 Dec 2025 22:32:50 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=83=B3=E3=81=BE=E3=81=A7?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy_to_gcp.yml | 9 ++++++++- scripts/deploy/build_image_to_gar.sh | 3 +-- scripts/deploy/plan_terraform.sh | 24 ++++++++++++++++++++++++ terraform/dev.tfvars | 12 ++++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100755 scripts/deploy/plan_terraform.sh create mode 100644 terraform/dev.tfvars 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" + +