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 ------#
1515jobs :
3232 client:
3333 - 'client/**'
3434
35- # -------- Build and Test Services -----------------------------#
35+ # -------- Build and Test Services -----------------------------#
3636 build-genai :
3737 needs : detect-changes
3838 if : |
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
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 }}"
0 commit comments