terraform plan
This commit is contained in:
parent
505aa2cc55
commit
5e7153204f
1 changed files with 28 additions and 14 deletions
42
.github/workflows/terraform-plan.yml
vendored
42
.github/workflows/terraform-plan.yml
vendored
|
|
@ -7,7 +7,7 @@ env:
|
||||||
TF_CLOUD_ORGANIZATION: "MealCraft"
|
TF_CLOUD_ORGANIZATION: "MealCraft"
|
||||||
TF_API_TOKEN: "${{ secrets.TF_API_TOKEN }}"
|
TF_API_TOKEN: "${{ secrets.TF_API_TOKEN }}"
|
||||||
TF_WORKSPACE: "production"
|
TF_WORKSPACE: "production"
|
||||||
CONFIG_DIRECTORY: "./"
|
CONFIG_DIRECTORY: ${{ github.workspace }}
|
||||||
TF_VAR_public_ip: "${{ secrets.PUBLIC_IP }}"
|
TF_VAR_public_ip: "${{ secrets.PUBLIC_IP }}"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
@ -19,7 +19,13 @@ jobs:
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y curl unzip jq ca-certificates
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
|
@ -51,35 +57,43 @@ jobs:
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
script: |
|
script: |
|
||||||
// 1. Retrieve existing bot comments for the PR
|
|
||||||
const { data: comments } = await github.rest.issues.listComments({
|
const { data: comments } = await github.rest.issues.listComments({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
});
|
});
|
||||||
|
|
||||||
const botComment = comments.find(comment => {
|
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
|
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.
|
Plan: ${{
|
||||||
\`\`\`
|
steps.plan-output.outputs.add
|
||||||
[Terraform Cloud Plan](${{ steps.plan-run.outputs.run_link }})
|
}} 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) {
|
if (botComment) {
|
||||||
github.rest.issues.deleteComment({
|
await github.rest.issues.deleteComment({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
comment_id: botComment.id,
|
comment_id: botComment.id,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
github.rest.issues.createComment({
|
|
||||||
|
await github.rest.issues.createComment({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
body: output
|
body: output,
|
||||||
})
|
});
|
||||||
|
|
||||||
- name: Print TF_VAR_public_ip
|
- 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