Skip to content

Merge pull request #138 from TomaszKandula/dev #58

Merge pull request #138 from TomaszKandula/dev

Merge pull request #138 from TomaszKandula/dev #58

name: Build, test and publish (stage)
on:
push:
branches: [ stage ]
jobs:
backend-staging:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Variable substitution appsettings file for Staging (NET Core)
uses: TomaszKandula/variable-substitution@v1.0.1
with:
files: ${{ github.workspace }}/EmailSender.Configuration/appsettings.Staging.json
env:
DbConnect: "${{ secrets.DBCONNECT_STAGE }}"
AZ_Storage_ContainerName: "${{ secrets.STORAGE_CONTAINER_NAME_STAGE }}"
AZ_Storage_ConnectionString: "${{ secrets.STORAGE_CONNECTION_STRING }}"
- name: Staging | Build Docker (prepare)
uses: azure/docker-login@v1.0.1
with:
login-server: ${{ secrets.DOCKER_REGISTRY_SERVER_URL }}
username: ${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}
password: ${{ secrets.DOCKER_REGISTRY_SERVER_PASSWORD }}
- name: Staging | Build Docker (execute with tests)
run: docker build . -t ${{ secrets.DOCKER_REGISTRY_SERVER_URL }}/${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}:backend-staging-${{ github.sha }}
- name: Staging | Push Docker image (prepare)
uses: azure/docker-login@v1.0.1
with:
login-server: ${{ secrets.DOCKER_REGISTRY_SERVER_URL }}
username: ${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}
password: ${{ secrets.DOCKER_REGISTRY_SERVER_PASSWORD }}
- name: Staging | Push Docker image
run: docker push ${{ secrets.DOCKER_REGISTRY_SERVER_URL }}/${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}:backend-staging-${{ github.sha }}
# Note: due to a budget constraints, we use separate Azure App Service for staging as the separate slots
# are unavailable for B1, B2 and B3 pricing tiers
- name: Staging | Deploy to Azure Web App
uses: azure/webapps-deploy@v3
with:
app-name: emailsender-west-staging
slot-name: production
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE_BACKEND_STAGE }}
images: ${{ secrets.DOCKER_REGISTRY_SERVER_URL }}/${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}:backend-staging-${{ github.sha }}