@@ -2,46 +2,47 @@ name: Production pipeline
22
33on :
44 workflow_dispatch : # Allows manual execution
5-
65jobs :
7- build-and-deploy :
8- runs-on : ubuntu-latest
9- steps :
10- - name : ' Checkout GitHub Action'
11- uses : actions/checkout@main
12-
13- - name : ' Login via Azure CLI'
14- uses : azure/login@v1
15- with :
16- creds : ${{ secrets.AZURE_CREDENTIALS }}
17-
18- - name : ' Set up Kubernetes'
19- uses : azure/aks-set-context@v2
20- with :
21- creds : ${{ secrets.AZURE_CREDENTIALS }}
22- cluster-name : ${{ secrets.AKS_CLUSTER_NAME }}
23- resource-group : ${{ secrets.AKS_RESOURCE_GROUP }}
24-
25- - name : ' Build and push image'
26- uses : azure/docker-login@v1
27- with :
28- login-server : ${{ secrets.REGISTRY_LOGIN_SERVER }}
29- username : ${{ secrets.REGISTRY_USERNAME }}
30- password : ${{ secrets.REGISTRY_PASSWORD }}
31- - run : |
32- docker build -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:${{ github.sha }} -f ./docker/Dockerfile .
33- docker tag ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:${{ github.sha }} ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:latest
34-
35- docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:${{ github.sha }}
36- docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:latest
37- - name : ' Copy production values files'
38- run : |
39- cp ./helm-chart/values-production.yaml ./helm-chart/values.yaml
40-
41- - name : ' Deploy to AKS with Helm'
42- run : |
43- helm upgrade --install whatnow ./helm-chart \
44- --namespace ${{ secrets.AKS_CLUSTER_NAMESPACE }} \
45- --create-namespace
46-
47-
6+ build-and-deploy :
7+ runs-on : ubuntu-latest
8+ steps :
9+ - name : ' Checkout GitHub Action'
10+ uses : actions/checkout@main
11+
12+ - name : ' Login via Azure CLI'
13+ uses : azure/login@v1
14+ with :
15+ creds : ${{ secrets.AZURE_CREDENTIALS }}
16+
17+ - name : ' Set up Kubernetes'
18+ uses : azure/aks-set-context@v2
19+ with :
20+ creds : ${{ secrets.AZURE_CREDENTIALS }}
21+ cluster-name : ${{ secrets.AKS_CLUSTER_NAME }}
22+ resource-group : ${{ secrets.AKS_RESOURCE_GROUP }}
23+
24+ - name : ' Build and push image'
25+ uses : azure/docker-login@v1
26+ with :
27+ login-server : ${{ secrets.REGISTRY_LOGIN_SERVER }}
28+ username : ${{ secrets.REGISTRY_USERNAME }}
29+ password : ${{ secrets.REGISTRY_PASSWORD }}
30+ - run : |
31+ if [ ! -f .env ]; then
32+ touch .env
33+ fi
34+ cp swagger.prod .env
35+ docker build -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} -f ./docker/Dockerfile .
36+ docker tag ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:latest
37+ docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }}
38+ docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:latest
39+
40+ - name : ' Copy staging values file'
41+ run : |
42+ cp ./helm-chart/values-production.yaml ./helm-chart/values.yaml
43+
44+ - name : ' Deploy to AKS with Helm'
45+ run : |
46+ helm upgrade --install whatnow-qa ./helm-chart \
47+ --namespace ${{ secrets.AKS_CLUSTER_NAMESPACE_QA }} \
48+ --create-namespace
0 commit comments