diff --git a/workflows/terraform-plan.yaml.tpl b/workflows/terraform-plan.yaml.tpl
index 63f91c5..5d3d322 100644
--- a/workflows/terraform-plan.yaml.tpl
+++ b/workflows/terraform-plan.yaml.tpl
@@ -33,15 +33,22 @@ jobs:
- uses: CSVD/gh-actions-setup-terraform@v2
with:
terraform_version: $${{ vars.terraform_version }}
-
+
- name: Terraform Format
id: fmt
- continue-on-error: true
- %{ if directory != null }
- working-directory: ${directory}
- %{ endif }
run: |
- terraform fmt -check
+ terraform fmt
+ if ! git diff-index --quiet HEAD; then
+ git config --global user.name '${git_owner.name}'
+ git config --global user.email '${git_owner.email}'
+ git commit -am "Autoformatting TF Code"
+ git push
+ echo "auto_format=true" >> $GITHUB_ENV
+ fi
+
+ - name: Autoformat Halt
+ if: env.auto_format == 'true'
+ run: exit 1
- name: Terraform Init
id: init
@@ -65,60 +72,22 @@ jobs:
run: terraform plan
continue-on-error: true
- - uses: actions/github-script@v7
+ - name: Update Pull Request
+ uses: CSVD/gh-actions-github-script@v6
if: github.event_name == 'pull_request'
- env:
- PLAN: "terraform\n$${{ steps.plan.outputs.stdout }}"
with:
- github-token: $${{ secrets.GH_TOKEN }}
+ github-token: ${{ secrets.GH_TOKEN }}
script: |
- // 1. Retrieve existing bot comments for the PR
- const { data: comments } = await github.rest.issues.listComments({
+ const output = `#### Terraform Format and Style 🖌\`${{ steps.fmt.outcome }}\`
+ #### Terraform Initialization ⚙️\`${{ steps.init.outcome }}\`
+ #### Terraform Validation 🤖\`${{ steps.validate.outcome }}\`
+ #### Terraform Plan:
+ ${{ steps.plan.outcome }}
+ *Pushed by: @${{ github.actor }}, Action: \`${{ github.event_name }}\`*`;
+
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
- issue_number: context.issue.number,
- })
- const botComment = comments.find(comment => {
- return comment.user.type === 'Bot' && comment.body.includes('Terraform Format and Style')
- })
-
- // 2. Prepare format of the comment
- const output = `#### Terraform Format and Style 🖌\`$${{ steps.fmt.outcome }}\`
- #### Terraform Initialization ⚙️\`$${{ steps.init.outcome }}\`
- #### Terraform Validation 🤖\`$${{ steps.validate.outcome }}\`
- Validation Output
-
- \`\`\`\n
- $${{ steps.validate.outputs.stdout }}
- \`\`\`
-
-
-
- #### Terraform Plan 📖\`$${{ steps.plan.outcome }}\`
-
- Show Plan
-
- \`\`\`\n
- $${process.env.PLAN}
- \`\`\`
-
-
-
- *Pusher: @$${{ github.actor }}, Action: \`$${{ github.event_name }}\`, Working Directory: \`$${{ env.tf_actions_working_dir }}\`, Workflow: \`$${{ github.workflow }}\`*`;
-
- // 3. If we have a comment, update it, otherwise create a new one
- if (botComment) {
- github.rest.issues.updateComment({
- owner: context.repo.owner,
- repo: context.repo.repo,
- comment_id: botComment.id,
- body: output
- })
- } else {
- github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: output
- })
- }
\ No newline at end of file
+ body: output
+ })
\ No newline at end of file