name: Build-Deploy-WebApp on: workflow_dispatch env: # Modify values with your resources AZURE_WEBAPP_NAME: loadtestingweb AZURE_WEBAPP_PACKAGE_PATH: '.' LOAD_TEST_RESOURCE_GROUP: 'LoadTestingSample' LOAD_TEST_RESOURCE: 'LoadTestingWebApp' DOTNET_VERSION: '7.0.x' jobs: Build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up .NET uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Build with dotnet working-directory: LoadTestingWebApp run: dotnet build --configuration Release - name: dotnet publish working-directory: LoadTestingWebApp run: dotnet publish -c Release -o ${{env.AZURE_WEBAPP_PACKAGE_PATH}}/myapp - name: Upload artifact for deployment job uses: actions/upload-artifact@v3 with: name: .net-app path: ${{env.AZURE_WEBAPP_PACKAGE_PATH}}/LoadTestingWebApp/myapp Deploy: runs-on: ubuntu-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@v3 with: name: .net-app - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@v1 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_WEBAPP_SECRET }} package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} LoadTest: name: LoadTest needs: Deploy runs-on: ubuntu-latest steps: - uses: actions/checkout@main - name: Login to Azure uses: azure/login@v1 continue-on-error: false with: creds: ${{ secrets.AZURE_CREDENTIALS }} # Add an Azure Credential in GitHub Secrets to connect with Azure Load Testing - name: 'Azure Load Testing' uses: azure/load-testing@v1 with: loadTestConfigFile: 'LoadTestingConfig.yaml' loadTestResource: ${{ env.LOAD_TEST_RESOURCE }} resourceGroup: ${{ env.LOAD_TEST_RESOURCE_GROUP }} env: | [ { "name": "webapp", "value": "${{ env.AZURE_WEBAPP_NAME }}.azurewebsites.net" } ] - uses: actions/upload-artifact@v2 with: name: loadTestResults path: ${{ github.workspace }}/LoadTest