Skip to content

update pipelines

update pipelines #2

name: Terraform Apply
on:
push:
branches:
- master
- main
- develop
pull_request:
branches:
- master
- main
- develop
workflow_dispatch:
# schedule:
# - cron: '0 0 * * 0'
jobs:
terraform-plan:
name: Terraform Plan
runs-on: ${{ matrix.environment }}
strategy:
matrix:
environment:
- ubuntu-latest
env:
DOTNET_NOLOGO: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
ACTIONS_RUNNER_DEBUG: true
TF_LOG: INFO
ARM_CLIENT_ID: ${{ secrets.TF_ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.TF_ARM_CLIENT_SECRET }}
ARM_SUBSCRIPTION_ID: ${{ secrets.TF_ARM_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.TF_ARM_TENANT_ID }}
WORKING_DIR: "./"
steps:
- name: Fetch Sources
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: latest
- name: Terraform Version
run: terraform -v
working-directory: ${{ env.WORKING_DIR }}
- name: Terraform Validate
run: |
terraform init -backend=false
terraform validate
terraform fmt -check
working-directory: ${{ env.WORKING_DIR }}
- name: Azure Login
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }} # keeps whole service principal json object
- name: Generate SAS Token
id: GenerateSASToken
shell: pwsh
run: |
$Date = (Get-Date).AddDays(1).ToString('yyyy-MM-dd')
$key = $( az storage account keys list --resource-group $(rgName) --account-name $(storageAccount) --query [0].value -o tsv )
$sas = $( az storage container generate-sas --name $(container) --expiry $Date --permissions "racwdli" --account-name $(storageAccount) --account-key "$key" )
$sas = $sas.Replace("`"","")
echo "::set-output name=sas_token::$sas"
env:
rgName: 'rg-tf-state102-uat02'
storageAccount: 'sttfstate259'
container: 'contstate'
outputs:
sas_token: ${{ steps.GenerateSASToken.outputs.sas_token }}