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