Skip to content

Update pwsh for API registration (#11) #11

Update pwsh for API registration (#11)

Update pwsh for API registration (#11) #11

Workflow file for this run

name: Azure Dev
on:
workflow_dispatch:
push:
# Run when commits are pushed to mainline branch (main or master)
# Set this to the mainline branch you are using
branches:
- main
paths:
- 'infra/**'
- 'dotnet/**'
- 'nodejs/**'
# GitHub Actions workflow to deploy to Azure using azd
# To configure required secrets for connecting to Azure, simply run `azd pipeline config`
# Set up permissions for deploying with secretless Azure federated credentials
# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication
permissions:
id-token: write
contents: read
jobs:
build-dotnet:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.x'
- name: Restore NuGet packages
shell: bash
run: |
dotnet restore ./dotnet
- name: Build .NET Apps
shell: bash
run: |
dotnet build ./dotnet -c Release
- name: Publish .NET Apps
shell: bash
run: |
dotnet publish ./dotnet/src/ApiApp -c Release -o ./dotnet/publish/ApiApp
dotnet publish ./dotnet/src/WebApp -c Release -o ./dotnet/publish/WebApp
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: dotnet
path: ./dotnet/publish
deploy-dotnet:
if: ${{ vars.AZURE_CLIENT_ID != '' }}
runs-on: ubuntu-latest
needs:
- build-dotnet
env:
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
with:
name: dotnet
path: ./dotnet/publish
- name: Install SWA CLI
shell: bash
run: |
npm install --global @azure/static-web-apps-cli@latest
- name: Login to Azure
uses: Azure/login@v2
with:
client-id: ${{ env.AZURE_CLIENT_ID }}
subscription-id: ${{ env.AZURE_SUBSCRIPTION_ID }}
tenant-id: ${{ env.AZURE_TENANT_ID }}
- name: Get API app name
id: get-apiapp-name
shell: bash
run: |
export AZURE_WEBAPP_NAME=$(az webapp list -g rg-${{ env.AZURE_ENV_NAME }} --query "[].name | [?contains(@, 'dotnet')]" -o tsv)
echo "AZURE_WEBAPP_NAME=$AZURE_WEBAPP_NAME" >> "$GITHUB_OUTPUT"
- name: Deploy to Azure - API app
uses: azure/webapps-deploy@v3
with:
app-name: ${{ steps.get-apiapp-name.outputs.AZURE_WEBAPP_NAME }}
package: ./dotnet/publish/ApiApp
- name: Get Static Web app name
id: get-sttapp-name
shell: bash
run: |
export AZURE_STTAPP_NAME=$(az staticwebapp list -g rg-${{ env.AZURE_ENV_NAME }} --query "[].name | [?contains(@, 'dotnet')]" -o tsv)
export AZURE_STTAPP_DEPLOYMENT_KEY=$(az staticwebapp secrets list -g rg-${{ env.AZURE_ENV_NAME }} -n $AZURE_STTAPP_NAME --query "properties.apiKey" -o tsv)
echo "AZURE_STTAPP_NAME=$AZURE_STTAPP_NAME" >> "$GITHUB_OUTPUT"
echo "::add-mask::$AZURE_STTAPP_DEPLOYMENT_KEY"
echo "AZURE_STTAPP_DEPLOYMENT_KEY=$AZURE_STTAPP_DEPLOYMENT_KEY" >> "$GITHUB_OUTPUT"
- name: Deploy to Azure - Static Web app
shell: bash
run: |
swa deploy ./dotnet/publish/WebApp/wwwroot --env production --deployment-token ${{ steps.get-sttapp-name.outputs.AZURE_STTAPP_DEPLOYMENT_KEY }}