Azure Terraform Provision and Deploy #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Azure Terraform Provision and Deploy | |
on: workflow_dispatch | |
env: | |
RESOURCE_GROUP_NAME: helloworld-services | |
STATIC_WEB_APP_NAME: azure-static-web-apps-001 | |
jobs: | |
#====== Provision and Deploy ======# | |
provision_and_deploy: | |
name: "Provision and Deploy" | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout repository | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
# Login to Azure | |
- name: Login to Azure | |
uses: azure/login@v2 | |
with: | |
creds: ${{ secrets.AZURE_CREDENTIALS }} | |
# Set up Terraform | |
- name: Set up Terraform | |
uses: hashicorp/setup-terraform@v3 | |
# Initialize Terraform | |
- name: Terraform Init | |
run: terraform init | |
working-directory: ./infra | |
# Import existing resources | |
- name: Import Static Web App | |
run: terraform import -var="resource_group_name=${{ env.RESOURCE_GROUP_NAME }}" azurerm_static_web_app.example /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/${{ env.RESOURCE_GROUP_NAME }}/providers/Microsoft.Web/staticSites/${{ env.STATIC_WEB_APP_NAME }} | |
working-directory: ./infra | |
# Apply Terraform | |
- name: Terraform Apply | |
run: terraform apply -auto-approve -var "staticSites_name=${{ env.STATIC_WEB_APP_NAME }}" -var "resource_group_name=${{ env.RESOURCE_GROUP_NAME }}" | |
working-directory: ./infra | |
# Get Azure Static Web App deployment token | |
- name: Get Azure Static Web App deployment token | |
id: get-token | |
run: | | |
TOKEN=$(az staticwebapp secrets list --name ${{ env.STATIC_WEB_APP_NAME }} --resource-group ${{ env.RESOURCE_GROUP_NAME }} --query "properties.apiKey" -o tsv) | |
echo "STATIC_WEB_APP_TOKEN=$TOKEN" >> $GITHUB_ENV | |
# Logout of Azure | |
- name: Logout of Azure | |
run: az logout | |
# Deploy to Azure Static Web Apps | |
- name: Deploy | |
id: builddeploy | |
uses: Azure/static-web-apps-deploy@v1 | |
with: | |
azure_static_web_apps_api_token: ${{ env.STATIC_WEB_APP_TOKEN }} | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
action: 'upload' | |
app_location: '/src/AspNet.Core.Blazor.WebAssembly' | |
output_location: 'wwwroot' |