name: Podcast Hub CICD - Staging on: pull_request: branches: [ main ] paths: - 'src/Services/ListenTogether/**' - 'deploy/Services/hub.bicep' - '.github/workflows/podcast-hub-pr.yml' workflow_dispatch: jobs: build: if: ${{ github.event_name == 'pull_request'}} runs-on: ubuntu-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 run: dotnet build --configuration Release src/Services/ListenTogether/ListenTogether.Hub - name: Publish run: dotnet publish --configuration Release src/Services/ListenTogether/ListenTogether.Hub --output hub - uses: actions/upload-artifact@master with: name: drop path: hub deploy: needs: build environment: name: staging runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} enable-AzPSSession: true - name: Bicep template uses: azure/powershell@v1 with: azPSVersion: '3.1.0' inlineScript: | az extension add --name containerapp $STORAGEKEY=$(az storage account keys list -g ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} -n ${{secrets.STORAGE_NAME}} --query [0].value -o tsv) $PODCAST_API_URL ="https://"+$(az containerapp show -g ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} -n podcastapica -o tsv --query properties.configuration.ingress.fqdn)+"/" az deployment group create -n ghactionlistentogether${{ github.sha }} -g ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} --template-file deploy/Services/hub.bicep --parameters webAppName=${{secrets.HUB_WEBAPP_NAME}} servicePlanName=${{secrets.SERVICE_PLAN_NAME}} podcastApiUrl=$PODCAST_API_URL storageAccountKey=$STORAGEKEY storageAccountName=${{secrets.STORAGE_NAME}} administratorLogin=${{secrets.PODCASTDB_USER_LOGIN}} administratorLoginPassword=${{secrets.PODCASTDB_USER_PASSWORD}} serverName=${{secrets.PODCASTDB_SERVER_NAME}} - uses: actions/download-artifact@master with: name: drop path: hub - name: Azure WebApp uses: Azure/webapps-deploy@v2 with: app-name: ${{ secrets.HUB_WEBAPP_NAME }} package: hub