Skip to content

Upgrading Auth.Svc to .NET 9 #21

Upgrading Auth.Svc to .NET 9

Upgrading Auth.Svc to .NET 9 #21

name: Deploy Auth Service
on:
pull_request:
branches:
- main
paths:
- 'infra/apps/auth-service/*'
- 'src/Biotrackr.Auth.Svc/*'
permissions:
contents: read
id-token: write
pull-requests: write
env:
DOTNET_VERSION: 9.0.x
COVERAGE_PATH: ${{ github.workspace }}/coverage
jobs:
env-setup:
name: Setup Environment
runs-on: ubuntu-latest
outputs:
dotnet-version: ${{ steps.set-output-defaults.outputs.dotnet-version }}
coverage-path: ${{ steps.set-output-defaults.outputs.coverage-path }}
steps:
- name: set outputs with default values
id: set-output-defaults
run: |
echo "dotnet-version=${{ env.DOTNET_VERSION }}" >> "$GITHUB_OUTPUT"
echo "coverage-path=${{ env.COVERAGE_PATH }}" >> "$GITHUB_OUTPUT"
run-unit-tests:
name: Run Unit Tests
needs: env-setup
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-unit-tests.yml@main
with:
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
working-directory: ./src/Biotrackr.Auth.Svc
coverage-path: ${{ needs.env-setup.outputs.coverage-path }}
build-container-image-dev:
name: Build and Push Container Image
needs: run-unit-tests
uses: willvelida/biotrackr/.github/workflows/template-acr-push-image.yml@main
with:
working-directory: ./src/Biotrackr.Auth.Svc
app-name: biotrackr-auth-svc
secrets:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
resource-group-name: ${{ secrets.AZURE_RG_NAME_DEV }}
retrieve-container-image-dev:
name: Retrieve Container Image
needs: build-container-image-dev
runs-on: ubuntu-latest
outputs:
loginServer: ${{ steps.get-acr-server.outputs.loginServer }}
steps:
- name: Azure login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Get ACR server
id: get-acr-server
run: |
loginServer=$(az acr list --resource-group ${{ secrets.AZURE_RG_NAME_DEV }} --query "[0].loginServer" -o tsv)
echo "loginServer=$loginServer" > "$GITHUB_OUTPUT"
lint:
name: Run Bicep Linter
needs: retrieve-container-image-dev
uses: willvelida/biotrackr/.github/workflows/template-bicep-linter.yml@main
with:
template-file: './infra/apps/auth-service/main.bicep'
validate:
needs: [lint, retrieve-container-image-dev]
name: Validate Template
uses: willvelida/biotrackr/.github/workflows/template-bicep-validate.yml@main
with:
template-file: './infra/apps/auth-service/main.bicep'
parameters-file: ./infra/apps/auth-service/main.dev.bicepparam imageName=${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-auth-svc:${{ github.sha }}
scope: resourcegroup
secrets:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
resource-group-name: ${{ secrets.AZURE_RG_NAME_DEV }}
preview:
needs: [validate, retrieve-container-image-dev]
name: Preview Changes
uses: willvelida/biotrackr/.github/workflows/template-bicep-whatif.yml@main
with:
template-file: './infra/apps/auth-service/main.bicep'
parameters-file: ./infra/apps/auth-service/main.dev.bicepparam imageName=${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-auth-svc:${{ github.sha }}
secrets:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
resource-group-name: ${{ secrets.AZURE_RG_NAME_DEV }}
deploy-dev:
needs: [preview, retrieve-container-image-dev]
name: Deploy Template to Dev
uses: willvelida/biotrackr/.github/workflows/template-bicep-deploy.yml@main
with:
template-file: './infra/apps/auth-service/main.bicep'
parameters-file: ./infra/apps/auth-service/main.dev.bicepparam imageName=${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-auth-svc:${{ github.sha }}
scope: resourcegroup
environment: dev
secrets:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
resource-group-name: ${{ secrets.AZURE_RG_NAME_DEV }}