|
1 | 1 | name: Deploy to AWS |
2 | 2 |
|
3 | 3 | on: |
4 | | - push: |
| 4 | + workflow_run: |
| 5 | + workflows: ["Build StudyMate Images"] |
| 6 | + types: |
| 7 | + - completed |
5 | 8 | branches: [main] |
6 | 9 | workflow_dispatch: |
7 | 10 |
|
8 | 11 |
|
9 | 12 | jobs: |
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 | | -
|
94 | 13 | deploy-aws: |
95 | | - needs: build-and-push |
96 | 14 | runs-on: ubuntu-latest |
| 15 | + if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }} |
97 | 16 | env: |
98 | 17 | COMMIT_SHA: ${{ github.sha }} |
99 | 18 |
|
|
0 commit comments