-
Notifications
You must be signed in to change notification settings - Fork 1
77 lines (60 loc) · 2.27 KB
/
deploy-to-aks.yml
File metadata and controls
77 lines (60 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
name: Container Workflow
on:
push:
workflow_dispatch:
env:
ACR_LOGON_SERVER: ${{ secrets.ACR_NAME }}.azurecr.io
IMAGE_NAME: ${{ secrets.ACR_NAME }}.azurecr.io/logcorner-edusync-speech-command:${{ github.sha }}
jobs:
build-deploy-image:
runs-on: ubuntu-latest
steps:
# checkout the repo
- name: 'Checkout GitHub Action'
uses: actions/checkout@master
- name: 'Build and push image'
uses: azure/docker-login@v1
with:
login-server: ${{ env.ACR_LOGON_SERVER }}
username: ${{ secrets.SERVICE_PRINCIPAL_ID }}
password: ${{ secrets.SERVICE_PRINCIPAL_PASSWORD }}
- run: docker-compose -f ./src/docker-compose.yml build
- run: docker tag logcornerhub/logcorner-edusync-speech-command ${{ env.IMAGE_NAME }}
- run: docker push ${{ env.IMAGE_NAME }}
deploy-to-aks:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/develop'
needs: build-deploy-image
#env:
#NAMESPACE: dummy
steps:
- uses: actions/checkout@main
# Set the target Azure Kubernetes Service (AKS) cluster.
- uses: azure/aks-set-context@v1
with:
creds: '${{ secrets.AZURE_CREDENTIALS }}'
cluster-name: ${{ secrets.AKS_NAME }}
resource-group: ${{ secrets.AKS_RESOURCE_GROUP }}
# Create namespace if doesn't exist
# - run: |
# kubectl create namespace ${{ env.NAMESPACE }} --dry-run -o json | kubectl apply -f -
# Create image pull secret for ACR
- uses: azure/k8s-create-secret@v1
with:
container-registry-url: ${{ env.ACR_LOGON_SERVER }}
container-registry-username: ${{ secrets.SERVICE_PRINCIPAL_ID }}
container-registry-password: ${{ secrets.SERVICE_PRINCIPAL_PASSWORD }}
secret-name: ${{ secrets.AKS_SECRET }}
# namespace: ${{ env.NAMESPACE }}
# Deploy app to AKS
- uses: azure/k8s-deploy@v1
with:
manifests: |
kubernetes/aks-ingress/CommandApi/command-api-deployment.yml
kubernetes/aks-ingress/CommandApi/command-api-service.yml
kubernetes/aks-ingress/command-ingress.yml
images: |
${{ env.IMAGE_NAME }}
imagepullsecrets: |
${{ secrets.AKS_SECRET }}
#namespace: ${{ env.NAMESPACE }}