terraform plan
This commit is contained in:
parent
c0b1a54156
commit
8022f78666
1 changed files with 21 additions and 36 deletions
57
.github/workflows/terraform-plan.yml
vendored
57
.github/workflows/terraform-plan.yml
vendored
|
|
@ -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"'
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue