From bda147eb4c7cfb181a4b8ffa0a0dd9fbd3a495f5 Mon Sep 17 00:00:00 2001 From: Harshit Kumar Date: Wed, 10 Sep 2025 14:21:10 +0530 Subject: [PATCH] github action version fixes and script fixes --- .github/workflows/reusable-cd-workflow.yaml | 2 +- .github/workflows/reusable-ci-workflow.yaml | 2 +- .github/workflows/sync-docs.yaml | 4 ++-- scripts/action-init-plan-apply.sh | 6 +++--- ...-variable.sh => replace-variable-linux.sh} | 0 scripts/replace-variable-macos.sh | 21 +++++++++++++++++++ 6 files changed, 28 insertions(+), 7 deletions(-) rename scripts/{replace-variable.sh => replace-variable-linux.sh} (100%) create mode 100644 scripts/replace-variable-macos.sh diff --git a/.github/workflows/reusable-cd-workflow.yaml b/.github/workflows/reusable-cd-workflow.yaml index cc2186b2..319cf38a 100644 --- a/.github/workflows/reusable-cd-workflow.yaml +++ b/.github/workflows/reusable-cd-workflow.yaml @@ -67,7 +67,7 @@ jobs: # Download tfplan artifact - name: Download tfplan - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: "${{ inputs.environment }}-${{ inputs.working_directory }}-${{ inputs.plan_id }}.tfplan" path: "terraform/${{ inputs.working_directory }}/" diff --git a/.github/workflows/reusable-ci-workflow.yaml b/.github/workflows/reusable-ci-workflow.yaml index a57b732d..f93be7b9 100644 --- a/.github/workflows/reusable-ci-workflow.yaml +++ b/.github/workflows/reusable-ci-workflow.yaml @@ -108,7 +108,7 @@ jobs: # publish plan to artifacts - name: Publish Terraform Plan if: ${{ inputs.publish_plan_artifact }} == true && ${{ steps.environment_plan.outcome}} == success() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: "${{ inputs.environment }}-${{inputs.working_directory}}-${{ steps.workflow_vars.outputs.plan_id }}.tfplan" path: "terraform/${{ inputs.working_directory }}/${{ inputs.environment }}-${{ inputs.working_directory }}-${{ steps.workflow_vars.outputs.plan_id }}.tfplan" diff --git a/.github/workflows/sync-docs.yaml b/.github/workflows/sync-docs.yaml index 2a45e3b5..d911995e 100644 --- a/.github/workflows/sync-docs.yaml +++ b/.github/workflows/sync-docs.yaml @@ -18,13 +18,13 @@ jobs: steps: - name: Checkout Terraform Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{env.GITHUB_TOKEN}} path: "./terraform/" - name: Checkout Docs Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{env.GITHUB_TOKEN}} repository: ${{env.DOCS_REPO}} diff --git a/scripts/action-init-plan-apply.sh b/scripts/action-init-plan-apply.sh index 96f062b0..c9c198d2 100644 --- a/scripts/action-init-plan-apply.sh +++ b/scripts/action-init-plan-apply.sh @@ -70,7 +70,7 @@ check_dir() { init () { cd terraform/$DIRECTORY - terraform init -backend-config config.hcl $EXTRA_ARGS + terraform init -backend-config config.$ENV.hcl $EXTRA_ARGS terraform workspace list } @@ -78,7 +78,7 @@ plan () { cd terraform/$DIRECTORY PLAN_FILENAME=$ENV-$(basename $DIRECTORY)-$plan_id.tfplan - terraform plan $EXTRA_ARGS -out $PLAN_FILENAME + terraform plan -var-file=$ENV.tfvars $EXTRA_ARGS -out $PLAN_FILENAME PLAN_OUTPUT=$(terraform show -no-color $PLAN_FILENAME) echo "
Terraform plan output for $DIRECTORY in $ENV" >> $ENV-plan-output.txt @@ -95,7 +95,7 @@ plan () { apply () { cd terraform/$DIRECTORY - terraform apply -auto-approve $EXTRA_ARGS $ENV-$DIRECTORY-$plan_id.tfplan + terraform apply -var-file=$ENV.tfvars -auto-approve $EXTRA_ARGS $ENV-$DIRECTORY-$plan_id.tfplan } diff --git a/scripts/replace-variable.sh b/scripts/replace-variable-linux.sh similarity index 100% rename from scripts/replace-variable.sh rename to scripts/replace-variable-linux.sh diff --git a/scripts/replace-variable-macos.sh b/scripts/replace-variable-macos.sh new file mode 100644 index 00000000..65d67b13 --- /dev/null +++ b/scripts/replace-variable-macos.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# Define new variable values +NEW_AWS_REGION="us-west-2" +NEW_NAMESPACE="sf-arc-saas" +NEW_ENVIRONMENT="dev" +DOMAIN="arc-saas.net" + +# Update .sh files (skip this script itself) +find . -type f -name "*.sh" ! -name "$(basename "$0")" -exec sed -i '' "s/AWS_REGION=.*/AWS_REGION=$NEW_AWS_REGION/g" {} + +find . -type f -name "*.sh" ! -name "$(basename "$0")" -exec sed -i '' "s/NAMESPACE=.*/NAMESPACE=$NEW_NAMESPACE/g" {} + +find . -type f -name "*.sh" ! -name "$(basename "$0")" -exec sed -i '' "s/ENVIRONMENT=.*/ENVIRONMENT=$NEW_ENVIRONMENT/g" {} + +find . -type f -name "*.sh" ! -name "$(basename "$0")" -exec sed -i '' "s/REGION=.*/REGION=$NEW_AWS_REGION/g" {} + + +# Update .tfvars files +find . -type f -name "*.tfvars" -exec sed -i '' "s/^[[:space:]]*region[[:space:]]*=.*/region = \"$NEW_AWS_REGION\"/g" {} + +find . -type f -name "*.tfvars" -exec sed -i '' "s/^[[:space:]]*namespace[[:space:]]*=.*/namespace = \"$NEW_NAMESPACE\"/g" {} + +find . -type f -name "*.tfvars" -exec sed -i '' "s/^[[:space:]]*environment[[:space:]]*=.*/environment = \"$NEW_ENVIRONMENT\"/g" {} + +find . -type f -name "*.tfvars" -exec sed -i '' "s/^[[:space:]]*domain_name[[:space:]]*=.*/domain_name = \"$DOMAIN\"/g" {} + + +echo "Variables replaced successfully." \ No newline at end of file