From 8022f78666a237f8e0471ecbeb32e440cca8fb53 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Sat, 6 Dec 2025 17:15:03 +0000 Subject: [PATCH] terraform plan --- .github/workflows/terraform-plan.yml | 57 ++++++++++------------------ 1 file changed, 21 insertions(+), 36 deletions(-) diff --git a/.github/workflows/terraform-plan.yml b/.github/workflows/terraform-plan.yml index c44ef2a..fa0b645 100644 --- a/.github/workflows/terraform-plan.yml +++ b/.github/workflows/terraform-plan.yml @@ -1,4 +1,4 @@ -dname: "Terraform Plan" +name: "Terraform Plan" on: pull_request: @@ -7,7 +7,7 @@ env: TF_CLOUD_ORGANIZATION: "MealCraft" TF_API_TOKEN: "${{ secrets.TF_API_TOKEN }}" TF_WORKSPACE: "production" - CONFIG_DIRECTORY: ${{ github.workspace }} + CONFIG_DIRECTORY: "./" TF_VAR_public_ip: "${{ secrets.PUBLIC_IP }}" jobs: @@ -15,17 +15,12 @@ jobs: if: github.repository != 'hashicorp-education/learn-terraform-github-actions' name: "Terraform Plan" runs-on: mealcraft-runners - container: ubuntu:22.04 + containers: + image: ghcr.io/catthehacker/ubuntu:runner-22.04 permissions: contents: read pull-requests: write - steps: - - name: Install dependencies - run: | - apt-get update - apt-get install -y curl unzip jq ca-certificates - - name: Checkout uses: actions/checkout@v3 @@ -57,45 +52,35 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | - const add = "${{ steps.plan-output.outputs.add }}"; - const change = "${{ steps.plan-output.outputs.change }}"; - const destroy = "${{ steps.plan-output.outputs.destroy }}"; - const runLink = "${{ steps.plan-run.outputs.run_link }}"; - - const output = ` -#### Terraform Cloud Plan Output - -\`\`\` -Plan: ${add} to add, ${change} to change, ${destroy} to destroy. -\`\`\` - -[Terraform Cloud Plan](${runLink}) -`; - + // 1. Retrieve existing bot comments for the PR const { data: comments } = await github.rest.issues.listComments({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, }); - - const botComment = comments.find(c => - c.user.type === "Bot" && c.body.includes("Terraform Cloud Plan Output") - ); - + const botComment = comments.find(comment => { + return comment.user.type === 'Bot' && comment.body.includes('Terraform Cloud Plan Output') + }); + const output = `#### Terraform Cloud Plan Output + \`\`\` + Plan: ${{ steps.plan-output.outputs.add }} to add, ${{ steps.plan-output.outputs.change }} to change, ${{ steps.plan-output.outputs.destroy }} to destroy. + \`\`\` + [Terraform Cloud Plan](${{ steps.plan-run.outputs.run_link }}) + `; if (botComment) { - await github.rest.issues.deleteComment({ + github.rest.issues.deleteComment({ owner: context.repo.owner, repo: context.repo.repo, comment_id: botComment.id, }); } - - await github.rest.issues.createComment({ + github.rest.issues.createComment({ + issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, - issue_number: context.issue.number, - body: output, - }); + body: output + }) - name: Print TF_VAR_public_ip - run: echo "📡 Public IP used by Terraform: $TF_VAR_public_ip" + run: 'echo "📡 Public IP used by Terraform: $TF_VAR_public_ip"' +