77
88
99jobs :
10- build-and-push :
11- runs-on : ubuntu-latest
12- permissions :
13- contents : read
14- packages : write
15-
16- env :
17- COMMIT_SHA : ${{ github.sha }}
18- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
19- GITHUB_ACTOR : ${{ github.actor }}
20-
21- steps :
22- - name : Checkout code
23- uses : actions/checkout@v4
24-
25- - name : Login to GitHub Container Registry
26- uses : docker/login-action@v3
27- with :
28- registry : ghcr.io
29- username : ${{ github.actor }}
30- password : ${{ secrets.GITHUB_TOKEN }}
31-
32- # Build and Push Microservices (using multi-stage Docker builds)
33- - name : Build and push auth-service
34- run : |
35- docker build --platform linux/amd64 -t ghcr.io/aet-devops25/team-3/auth-service:${COMMIT_SHA} ./server/auth-service
36- docker push ghcr.io/aet-devops25/team-3/auth-service:${COMMIT_SHA}
37-
38- - name : Build and push document-service
39- run : |
40- docker build --platform linux/amd64 -t ghcr.io/aet-devops25/team-3/document-service:${COMMIT_SHA} ./server/document-service
41- docker push ghcr.io/aet-devops25/team-3/document-service:${COMMIT_SHA}
42-
43- - name : Build and push genai-service
44- run : |
45- docker build --platform linux/amd64 -t ghcr.io/aet-devops25/team-3/genai-service:${COMMIT_SHA} ./server/genai-service
46- docker push ghcr.io/aet-devops25/team-3/genai-service:${COMMIT_SHA}
47-
48- - name : Build and push eureka-server
49- run : |
50- docker build --platform linux/amd64 -t ghcr.io/aet-devops25/team-3/eureka-server:${COMMIT_SHA} ./server/eureka-server
51- docker push ghcr.io/aet-devops25/team-3/eureka-server:${COMMIT_SHA}
52-
53- - name : Build and push client for EC2
54- run : |
55- docker build --platform linux/amd64 --build-arg VITE_API_BASE_URL=https://studymate-tum.xyz -t ghcr.io/aet-devops25/team-3/client:ec2-${COMMIT_SHA} ./client
56- docker push ghcr.io/aet-devops25/team-3/client:ec2-${COMMIT_SHA}
57-
58- - name : Build and push genai
59- run : |
60- docker build --platform linux/amd64 -t ghcr.io/aet-devops25/team-3/genai:${COMMIT_SHA} ./genAi
61- docker push ghcr.io/aet-devops25/team-3/genai:${COMMIT_SHA}
62-
63- # Tag and push as latest
64- - name : Tag and push auth-service as latest
65- run : |
66- docker tag ghcr.io/aet-devops25/team-3/auth-service:${COMMIT_SHA} ghcr.io/aet-devops25/team-3/auth-service:latest
67- docker push ghcr.io/aet-devops25/team-3/auth-service:latest
68-
69- - name : Tag and push document-service as latest
70- run : |
71- docker tag ghcr.io/aet-devops25/team-3/document-service:${COMMIT_SHA} ghcr.io/aet-devops25/team-3/document-service:latest
72- docker push ghcr.io/aet-devops25/team-3/document-service:latest
73-
74- - name : Tag and push genai-service as latest
75- run : |
76- docker tag ghcr.io/aet-devops25/team-3/genai-service:${COMMIT_SHA} ghcr.io/aet-devops25/team-3/genai-service:latest
77- docker push ghcr.io/aet-devops25/team-3/genai-service:latest
78-
79- - name : Tag and push eureka-server as latest
80- run : |
81- docker tag ghcr.io/aet-devops25/team-3/eureka-server:${COMMIT_SHA} ghcr.io/aet-devops25/team-3/eureka-server:latest
82- docker push ghcr.io/aet-devops25/team-3/eureka-server:latest
83-
84- - name : Tag and push client as ec2-latest
85- run : |
86- docker tag ghcr.io/aet-devops25/team-3/client:ec2-${COMMIT_SHA} ghcr.io/aet-devops25/team-3/client:ec2-latest
87- docker push ghcr.io/aet-devops25/team-3/client:ec2-latest
88-
89- - name : Tag and push genai as latest
90- run : |
91- docker tag ghcr.io/aet-devops25/team-3/genai:${COMMIT_SHA} ghcr.io/aet-devops25/team-3/genai:latest
92- docker push ghcr.io/aet-devops25/team-3/genai:latest
93-
9410 deploy-aws :
95- needs : build-and-push
9611 runs-on : ubuntu-latest
9712 env :
9813 COMMIT_SHA : ${{ github.sha }}
12439 LANGSMITH_API_KEY : ${{ secrets.LANGSMITH_API_KEY }}
12540 GRAFANA_ADMIN_USERNAME : ${{ secrets.GRAFANA_ADMIN_USERNAME }}
12641 GRAFANA_ADMIN_PASSWORD : ${{ secrets.GRAFANA_ADMIN_PASSWORD }}
42+ POSTGRES_PASSWORD : ${{ secrets.POSTGRES_PASSWORD }}
12743 run : ansible-playbook -i inventory.ini ansible/deploy.yml
0 commit comments