Skip to content

Workflow file for this run

name: Build and deploy JAR app to Azure Container Instances - hilfling-backend
on:
push:
branches:
- feature/fg-137
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Azure CLI Login
uses: azure/login@v2
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
# - name: Log in to Azure Container Registry
# uses: azure/docker-login@v1
# with:
# login-server: ${{ secrets.ACR_LOGIN_SERVER }}
# username: ${{ secrets.ACR_USERNAME }}
# password: ${{ secrets.ACR_PASSWORD }}
#
# - name: Build and push Docker image to ACR
# run: |
# docker build -t ${{ secrets.ACR_LOGIN_SERVER }}/hilfling-backend:${{ github.sha }} .
# docker push ${{ secrets.ACR_LOGIN_SERVER }}/hilfling-backend:${{ github.sha }}
#
# - name: Delete existing container instances
# run: |
# for i in 1 2 3; do
# az container delete \
# --name hilfling-backend${i} \
# --resource-group hilfling-backend_group \
# --yes || true
# done
#
# - name: Deploy new container instances
# run: |
# for i in 1 2 3; do
# az container create \
# --name hilfling-backend${i} \
# --resource-group hilfling-backend_group \
# --registry-username ${{ secrets.ACR_USERNAME }} \
# --registry-password ${{ secrets.ACR_PASSWORD }} \
# --image ${{ secrets.ACR_LOGIN_SERVER }}/hilfling-backend:${{ github.sha }} \
# --cpu 1 --memory 2 \
# --environment-variables DATABASE_USERNAME=${{ secrets.HILFLINGDB_USERNAME }} \
# DATABASE_URL=${{ secrets.HILFLINGDB_URL_DEV }} \
# DATABASE_PASSWORD=${{ secrets.HILFLINGDB_PASSWORD }} \
# --ports 8000 \
# --dns-name-label hilfling-backend${i}-dns \
# --location norwayeast
# done
#
- name: Check and Create Application Gateway if it does not exist
run: |
if ! az network application-gateway show --name hilfling-gateway --resource-group hilfling-backend_group &>/dev/null; then
az network application-gateway create \
--name hilfling-gateway \
--resource-group hilfling-backend_group \
--location norwayeast \
--sku Standard_v2 \
--capacity 2 \
--frontend-port 80 \
--http-settings-port 8000 \
--http-settings-protocol Http \
--public-ip-address hilfling-backend-ip \
--routing-rule-type Basic \
--servers hilfling-backend1-dns.norwayeast.azurecontainer.io hilfling-backend2-dns.norwayeast.azurecontainer.io hilfling-backend3-dns.norwayeast.azurecontainer.io
--priority 1
fi
- name: Update Application Gateway Backend Pool
run: |
az network application-gateway address-pool delete \
--gateway-name hilfling-gateway \
--resource-group hilfling-backend_group \
--name hilfling-backend-pool || true
az network application-gateway address-pool create \
--gateway-name hilfling-gateway \
--resource-group hilfling-backend_group \
--name hilfling-backend-pool \
--servers hilfling-backend1-dns.norwayeast.azurecontainer.io hilfling-backend2-dns.norwayeast.azurecontainer.io hilfling-backend3-dns.norwayeast.azurecontainer.io
- name: Update Application Gateway Routing Rule
run: |
az network application-gateway rule update \
--gateway-name hilfling-gateway \
--resource-group hilfling-backend_group \
--name hilfling-backend-rule \
--address-pool hilfling-backend-pool
--priority 1 # Ensure the routing rule has a defined priority
- name: Delete Docker image from ACR
run: |
az acr repository delete \
--name ${{ secrets.ACR_LOGIN_SERVER }} \
--repository hilfling-backend \
--tag ${{ github.sha }} \
--yes