Skip to content

feat: update tf modules #27

feat: update tf modules

feat: update tf modules #27

name: Build, Release, and Check Compliance
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
permissions:
contents: read
jobs:
build-privateer:
runs-on: ubuntu-latest
steps:
- name: Checkout Privateer repository
uses: actions/checkout@v3
with:
repository: privateerproj/privateer
path: privateer
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.22
- name: Install dependencies
run: |
cd privateer
go mod download
- name: Run make release
run: |
cd privateer
make release
ls
- name: Run privateer help command
run: |
cd privateer/
# Assuming the binary is named 'privateer'. Adjust if it's named differently.
./privateer help
- name: 'Tar files'
run: tar -cvf test_harness.tar privateer
working-directory: privateer
- name: Archive release artifacts
uses: actions/upload-artifact@v3
with:
name: release-artifacts
path: test_harness.tar
build-azure-blob-storage:
runs-on: ubuntu-latest
steps:
- name: Checkout Azure Blob Storage repository
uses: actions/checkout@v3
with:
# repository: eddie-knight/raid-azure-blob-storage
repository: krumio/raid-azure-blob-storage
path: raid-azure-blob-storage
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.22
- name: RUN ls
run: |
ls
- name: Install dependencies
run: |
cd raid-azure-blob-storage
go mod download
- name: Run make release
run: |
cd raid-azure-blob-storage
make release
ls
- name: 'Tar files'
run: tar -cvf azure_blob.tar ABS
working-directory: raid-azure-blob-storage
- name: Archive release artifacts
uses: actions/upload-artifact@v3
with:
name: release-artifacts
path: azure_blob.tar
terraform:
if: github.repository == 'octo-org/octo-repo-prod'
name: 'Terraform'
env:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
TF_LOG: INFO
runs-on: ubuntu-latest
environment: production
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest
defaults:
run:
shell: bash
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout
uses: actions/checkout@v3
# Install the latest version of Terraform CLI
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
- name: cd into examples/basic directory
run: |
cd examples/basic
# run ls command
ls
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: Terraform Init
run: terraform init -reconfigure
working-directory: examples/basic
# Checks that all Terraform configuration files adhere to a canonical format
- name: Terraform Format
run: terraform fmt -check
working-directory: examples/basic
# Generates an execution plan for Terraform
- name: Terraform Plan
run: terraform plan -input=false
working-directory: examples/basic
# On push to "master", build or change infrastructure according to Terraform configuration files
- name: Terraform Apply
# if: github.ref == 'refs/heads/"main"' && github.event_name == 'push'
run: terraform apply -auto-approve -input=false
working-directory: examples/basic
- name: Terraform Destroy
run: terraform destroy -auto-approve -input=false
working-directory: examples/basic
check-compliance:
needs: [build-privateer, build-azure-blob-storage]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: release-artifacts
path: test_harness.tar
- uses: actions/download-artifact@v3
with:
name: release-artifacts
path: azure_blob.tar
- name: RUN ls
run: |
ls -al
tar -xf test_harness.tar
tar -xf azure_blob.tar
ls -al
- name: RUN sally command
run: |
./privateer sally ./ABS -c config.yml