# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and Deploy ASP.Net Core app to Azure Web app

on:
  push:
    paths:
      - 'src/ServerManager.WebApplication/**'
      - '.github/workflows/webapi.yml'
  workflow_dispatch:

jobs:
  build:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v2

      - name: Set up .NET Core
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: '6.0.x'
          include-prerelease: true

      - name: Build with dotnet
        run: dotnet build ./src/ServerManager.WebApplication/ServerManager.WebApplication.csproj --configuration Release

      - name: dotnet publish
        run: dotnet publish ./src/ServerManager.WebApplication/ServerManager.WebApplication.csproj -c Release -o ${{env.DOTNET_ROOT}}/webapi

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v2
        with:
          name: .net-app
          path: ${{env.DOTNET_ROOT}}/webapi

  deploy:
    if: contains(github.ref, 'source')
    runs-on: windows-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v2
        with:
          name: .net-app

      - name: Deploy to Azure Web App
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v2
        with:
          app-name: 'servermanagers'
          slot-name: 'Production'
          publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_79D9F7C17C684A9F9789102CFD05755B }}
          package: .
