diff --git a/.github/workflows/terraform-plan.yml b/.github/workflows/terraform-plan.yml index 186010c..2e557fa 100644 --- a/.github/workflows/terraform-plan.yml +++ b/.github/workflows/terraform-plan.yml @@ -7,7 +7,7 @@ env: TF_CLOUD_ORGANIZATION: "MealCraft" TF_API_TOKEN: "${{ secrets.TF_API_TOKEN }}" TF_WORKSPACE: "production" - CONFIG_DIRECTORY: "./" + CONFIG_DIRECTORY: ${{ github.workspace }} TF_VAR_public_ip: "${{ secrets.PUBLIC_IP }}" jobs: @@ -19,7 +19,13 @@ jobs: 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 @@ -51,35 +57,43 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | - // 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(comment => { - return comment.user.type === 'Bot' && comment.body.includes('Terraform Cloud Plan Output') + 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 }}) - `; +\`\`\` +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) { - github.rest.issues.deleteComment({ + await github.rest.issues.deleteComment({ owner: context.repo.owner, repo: context.repo.repo, comment_id: botComment.id, }); } - github.rest.issues.createComment({ + + await github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, - 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"