diff --git a/.github/workflows/aws-destroy.yml b/.github/workflows/aws-destroy.yml index 6b39bc4..c3669d9 100644 --- a/.github/workflows/aws-destroy.yml +++ b/.github/workflows/aws-destroy.yml @@ -1,4 +1,5 @@ name: "F5XC + NAP Destroy" + on: push: branches: @@ -7,6 +8,153 @@ on: jobs: + terraform_xc: + name: "F5XC WAAP" + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./xc + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Terraform + uses: hashicorp/setup-terraform@v2 + with: + cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }} + - name: Setup Terraform Backend + id: backend + run: | + cat > backend.tf << EOF + terraform { + cloud { + organization = "${{ secrets.TF_CLOUD_ORGANIZATION }}" + workspaces { + name = "${{ secrets.TF_CLOUD_WORKSPACE_XC }}" + } + } + } + EOF + echo "${{secrets.P12}}" | base64 -d > api.p12 + - name: Terraform Init + id: init + run: terraform init + + - name: Terraform Validate + id: validate + run: terraform validate -no-color + + - name: Terraform Plan + id: plan + if: github.event_name == 'pull_request' + run: terraform plan -no-color -input=false + continue-on-error: true + + - uses: actions/github-script@v6 + if: github.event_name == 'pull_request' + env: + PLAN: "terraform\n${{ steps.plan.outputs.stdout }}" + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const output = `#### Terraform Format and Style 🖌\`${{ steps.fmt.outcome }}\` + #### Terraform Initialization ⚙️\`${{ steps.init.outcome }}\` + #### Terraform Validation 🤖\`${{ steps.validate.outcome }}\` + #### Terraform Plan 📖\`${{ steps.plan.outcome }}\` +
Show Plan + \`\`\`\n + ${process.env.PLAN} + \`\`\` +
+ *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, + body: output + }) + - name: Terraform Plan Status + if: steps.plan.outcome == 'failure' + run: exit 1 + + - name: Terraform Destroy + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + run: terraform destroy -auto-approve -input=false + + terraform_arcadia: + name: "Arcadia WebApp" + runs-on: ubuntu-latest + needs: terraform_xc + defaults: + run: + working-directory: ./arcadia + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Terraform + uses: hashicorp/setup-terraform@v2 + with: + cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }} + + - name: Setup Terraform Backend + id: backend + run: | + cat > backend.tf << EOF + terraform { + cloud { + organization = "${{ secrets.TF_CLOUD_ORGANIZATION }}" + workspaces { + name = "${{ secrets.TF_CLOUD_WORKSPACE_ARCADIA }}" + } + } + } + EOF + - name: Terraform Init + id: init + run: terraform init + + - name: Terraform Validate + id: validate + run: terraform validate -no-color + + - name: Terraform Plan + id: plan + if: github.event_name == 'pull_request' + run: terraform plan -no-color -input=false + continue-on-error: true + + - uses: actions/github-script@v6 + if: github.event_name == 'pull_request' + env: + PLAN: "terraform\n${{ steps.plan.outputs.stdout }}" + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const output = `#### Terraform Format and Style 🖌\`${{ steps.fmt.outcome }}\` + #### Terraform Initialization ⚙️\`${{ steps.init.outcome }}\` + #### Terraform Validation 🤖\`${{ steps.validate.outcome }}\` + #### Terraform Plan 📖\`${{ steps.plan.outcome }}\` +
Show Plan + \`\`\`\n + ${process.env.PLAN} + \`\`\` +
+ *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, + body: output + }) + - name: Terraform Plan Status + if: steps.plan.outcome == 'failure' + run: exit 1 + + - name: Terraform Destroy + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + run: terraform destroy -auto-approve -input=false + terraform_nap: name: "NGINX App Protect" runs-on: ubuntu-latest