Skip to content

Commit 815a569

Browse files
authored
Merge pull request #45 from AET-DevOps25/feature/convert-server-to-ms
Restucture server as a microservices application
2 parents ff15ef3 + b290d61 commit 815a569

File tree

51 files changed

+674
-401
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+674
-401
lines changed

.github/workflows/ci-cd.yml

Lines changed: 72 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ on:
66
- main
77
- feature/**
88
paths:
9-
- 'genai/**'
10-
- 'server/**'
11-
- 'client/**'
12-
- '.github/workflows/ci-cd.yml'
9+
- "genai/**"
10+
- "server/**"
11+
- "client/**"
12+
- ".github/workflows/ci-cd.yml"
1313

1414
#----- Detect changes in services and trigger builds accordingly ------#
1515
jobs:
@@ -32,7 +32,7 @@ jobs:
3232
client:
3333
- 'client/**'
3434
35-
#-------- Build and Test Services -----------------------------#
35+
#-------- Build and Test Services -----------------------------#
3636
build-genai:
3737
needs: detect-changes
3838
if: |
@@ -45,7 +45,7 @@ jobs:
4545
- name: Set up Python
4646
uses: actions/setup-python@v5
4747
with:
48-
python-version: '3.11'
48+
python-version: "3.11"
4949

5050
- name: Install dependencies
5151
run: pip install -r requirements.txt
@@ -69,7 +69,7 @@ jobs:
6969
- name: Set up JDK 21
7070
uses: actions/setup-java@v4
7171
with:
72-
distribution: 'temurin'
72+
distribution: "temurin"
7373
java-version: 21
7474

7575
- name: Cache Gradle packages
@@ -86,12 +86,28 @@ jobs:
8686
run: chmod +x gradlew
8787
working-directory: server
8888

89-
- name: Build with Gradle
90-
run: ./gradlew build
89+
- name: Build API Gateway microservice
90+
run: ./gradlew :api-gw:build
9191
working-directory: server
9292

93-
- name: Run tests
94-
run: ./gradlew test
93+
- name: Test API Gateway microservice
94+
run: ./gradlew :api-gw:test
95+
working-directory: server
96+
97+
- name: Build Chat microservice
98+
run: ./gradlew :chat:build
99+
working-directory: server
100+
101+
- name: Test Chat microservice
102+
run: ./gradlew :chat:test
103+
working-directory: server
104+
105+
- name: Build User microservice
106+
run: ./gradlew :user:build
107+
working-directory: server
108+
109+
- name: Test user microservice
110+
run: ./gradlew :user:test
95111
working-directory: server
96112

97113
build-client:
@@ -120,7 +136,7 @@ jobs:
120136
run: npm run build
121137
working-directory: client
122138

123-
#-------- Publish Docker images of services -----------------------------#
139+
#-------- Publish Docker images of services -----------------------------#
124140
docker-release-genai:
125141
needs: detect-changes
126142
if: github.ref == 'refs/heads/main' && needs.detect-changes.outputs.genai == 'true'
@@ -160,34 +176,31 @@ jobs:
160176
- name: Set up JDK 21
161177
uses: actions/setup-java@v4
162178
with:
163-
distribution: 'temurin'
179+
distribution: "temurin"
164180
java-version: 21
165181

166182
- name: Grant execute permission for gradlew
167183
run: chmod +x gradlew
168184
working-directory: server
169185

170-
- name: Build with Gradle
171-
run: ./gradlew build
172-
working-directory: server
173-
174-
- name: Run tests
175-
run: ./gradlew test
176-
working-directory: server
177-
178186
- name: Log in to GitHub Container Registry
179187
uses: docker/login-action@v3
180188
with:
181189
registry: ghcr.io
182190
username: ${{ github.actor }}
183191
password: ${{ secrets.GITHUB_TOKEN }}
184192

185-
- name: Build Docker image
193+
- name: Build and push API Gateway microservice image
186194
working-directory: server
187-
run: docker build -t ghcr.io/aet-devops25/team-continuous-disappointment/server:latest .
195+
run: ./gradlew :api-gw:jib
188196

189-
- name: Push Docker image
190-
run: docker push ghcr.io/aet-devops25/team-continuous-disappointment/server:latest
197+
- name: Build and push User microservice image
198+
working-directory: server
199+
run: ./gradlew :user:jib
200+
201+
- name: Build and push Chat microservice image
202+
working-directory: server
203+
run: ./gradlew :chat:jib
191204

192205
docker-release-client:
193206
needs: detect-changes
@@ -216,30 +229,37 @@ jobs:
216229
- name: Push Docker image
217230
run: docker push ghcr.io/aet-devops25/team-continuous-disappointment/client:latest
218231

219-
#-------- Deploy Services on k8s cluster via helm -----------------------------#
220-
221-
helm-deploy:
222-
needs: [detect-changes, docker-release-genai, docker-release-server, docker-release-client]
223-
if: |
224-
always() && github.ref == 'refs/heads/main'
225-
runs-on: ubuntu-latest
226-
steps:
227-
- name: Checkout code
228-
uses: actions/checkout@v4
229-
230-
- name: Set up Helm
231-
uses: azure/setup-helm@v3
232-
233-
- name: Set up Kubeconfig
234-
run: |
235-
mkdir -p ~/.kube
236-
echo "${{ secrets.KUBE_CONFIG }}" > ~/.kube/config
237-
chmod 600 ~/.kube/config
238-
239-
- name: Deploy with Helm
240-
run: |
241-
helm -n team-continuous-disappointment upgrade recip-ai ./recipai-chart \
242-
--set secrets.gitlabClientSecret="${{ secrets.PROD_CLIENT_SECRET }}" \
243-
--set secrets.mongodbAdminPassword="${{ secrets.MONGODB_ADMIN_PASSWORD }}" \
244-
--set secrets.apiOpenai="${{ secrets.API_OPENAI }}" \
245-
--set secrets.apiOpenwebui="${{ secrets.API_OPENWEBUI }}"
232+
#-------- Deploy Services on k8s cluster via helm -----------------------------#
233+
234+
# Lets skip deployment for now
235+
# helm-deploy:
236+
# needs:
237+
# [
238+
# detect-changes,
239+
# docker-release-genai,
240+
# docker-release-server,
241+
# docker-release-client,
242+
# ]
243+
# if: |
244+
# always() && github.ref == 'refs/heads/main'
245+
# runs-on: ubuntu-latest
246+
# steps:
247+
# - name: Checkout code
248+
# uses: actions/checkout@v4
249+
250+
# - name: Set up Helm
251+
# uses: azure/setup-helm@v3
252+
253+
# - name: Set up Kubeconfig
254+
# run: |
255+
# mkdir -p ~/.kube
256+
# echo "${{ secrets.KUBE_CONFIG }}" > ~/.kube/config
257+
# chmod 600 ~/.kube/config
258+
259+
# - name: Deploy with Helm
260+
# run: |
261+
# helm -n team-continuous-disappointment upgrade recip-ai ./recipai-chart \
262+
# --set secrets.gitlabClientSecret="${{ secrets.PROD_CLIENT_SECRET }}" \
263+
# --set secrets.mongodbAdminPassword="${{ secrets.MONGODB_ADMIN_PASSWORD }}" \
264+
# --set secrets.apiOpenai="${{ secrets.API_OPENAI }}" \
265+
# --set secrets.apiOpenwebui="${{ secrets.API_OPENWEBUI }}"

docker-compose.dev.yml

Lines changed: 0 additions & 151 deletions
This file was deleted.

0 commit comments

Comments
 (0)