Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
625 commits
Select commit Hold shift + click to select a range
659e5de
Enhance account settings functionality to log out user after email up…
Jovin-Ang Oct 30, 2025
8a02f86
Fix typo in collaboration service directory name
sheenkerr Oct 30, 2025
7d041e4
Merge pull request #128 from CS3219-AY2526Sem1/sheenkerr-patch-3
rollingpencil Oct 30, 2025
ca77018
Fix working directory path for expire-observer-svc
sheenkerr Oct 30, 2025
f3cb067
Merge pull request #129 from CS3219-AY2526Sem1/sheenkerr-patch-3
sheenkerr Oct 30, 2025
5fdf3ef
Update google-cloudrun-docker.yml
sheenkerr Oct 30, 2025
b8bbd5e
Merge pull request #130 from CS3219-AY2526Sem1/sheenkerr-patch-3
sheenkerr Oct 30, 2025
347dfbb
Add missing password update handling in account settings
Jovin-Ang Oct 30, 2025
76100a5
Add platform specification for Docker builds
sheenkerr Oct 30, 2025
a68f2c1
Merge pull request #131 from CS3219-AY2526Sem1/sheenkerr-patch-3
sheenkerr Oct 30, 2025
4bf8c81
Update google-cloudrun-docker.yml
sheenkerr Oct 30, 2025
9b06e71
Merge pull request #132 from CS3219-AY2526Sem1/sheenkerr-patch-3
sheenkerr Oct 30, 2025
e619243
Implement round-robin load balancing for service instance selection
Jovin-Ang Oct 30, 2025
2121acf
Set expiration for round-robin counter keys in Redis
Jovin-Ang Oct 30, 2025
fcba127
Merge branch 'master' into 103/collab-ui
GavinSin Oct 31, 2025
4c1e00f
Merge pull request #121 from CS3219-AY2526Sem1/118/collab-websocket
rollingpencil Oct 31, 2025
9ebc125
Merge branch 'master' of https://github.com/CS3219-AY2526Sem1/cs3219-…
Nicholas-Cheng-De-Fei Oct 31, 2025
6be1a45
Merge branch 'master' into 103/collab-ui
GavinSin Oct 31, 2025
8568cd4
Add configurable TTL for round-robin counter
Jovin-Ang Oct 31, 2025
f0550c4
Merge pull request #134 from CS3219-AY2526Sem1/api-gateway
sheenkerr Oct 31, 2025
bb9266c
Add endpoint to get question
Nicholas-Cheng-De-Fei Oct 31, 2025
0c493b9
Merge branch '103/collab-ui' of https://github.com/CS3219-AY2526Sem1/…
Nicholas-Cheng-De-Fei Oct 31, 2025
a4138d2
Merge pull request #122 from CS3219-AY2526Sem1/user-settings-ui
GavinSin Oct 31, 2025
f874d19
Add return type to connect_user function
Nicholas-Cheng-De-Fei Oct 31, 2025
a12868f
Enhance alert components with soft styling and icons
Jovin-Ang Oct 31, 2025
7754491
Update NavBar to link logo to dashboard
Jovin-Ang Oct 31, 2025
2918836
Fix missing input
Nicholas-Cheng-De-Fei Oct 31, 2025
28d5616
Add attempt to dashboard
rollingpencil Oct 31, 2025
7c8f5ae
Rewrite Yjs to working version
GavinSin Oct 31, 2025
2c7b92a
Update to Accordian
rollingpencil Oct 31, 2025
74dc1a0
Fix collab connect endpoint
Nicholas-Cheng-De-Fei Oct 31, 2025
62cb923
Add markdown renderer
rollingpencil Oct 31, 2025
5a79eef
Change to use Stat component
rollingpencil Oct 31, 2025
d845c6b
Update styling
rollingpencil Oct 31, 2025
fb0dcdc
Add password reset and email verification methods to UserApi
Jovin-Ang Nov 1, 2025
905cdfc
Add Forgot Password and Request Verification page
Jovin-Ang Nov 1, 2025
c1b6aa8
Add Reset Password page
Jovin-Ang Nov 1, 2025
8a585d6
Remove debug code from request verify page
Jovin-Ang Nov 1, 2025
cb4fb9e
Fix comparison operator for login page
Jovin-Ang Nov 1, 2025
162b50b
Add handling for missing token in Reset Password form
Jovin-Ang Nov 1, 2025
5cd25bb
Merge pull request #135 from CS3219-AY2526Sem1/fe-qns-hist-dashboard
Nicholas-Cheng-De-Fei Nov 3, 2025
22aa3c7
Add sed for frontend
rollingpencil Nov 3, 2025
01228d9
Add missing nginx port sed
rollingpencil Nov 3, 2025
1d8d315
Add EXPOSE directive
rollingpencil Nov 3, 2025
179b0bd
Update collab ui with new timer
GavinSin Nov 3, 2025
c8ce7d0
Merge branch 'master' into 103/collab-ui
GavinSin Nov 3, 2025
69247b2
Seed changes across all services
rollingpencil Nov 3, 2025
dab72d3
Temp change to cloud url
rollingpencil Nov 3, 2025
8d3f0d1
Dockerise signaling-svc used in webrtc
GavinSin Nov 3, 2025
6647b3c
Improve logger to stream stdio
rollingpencil Nov 3, 2025
4450339
Fix invalid problem json issue
GavinSin Nov 3, 2025
c195f51
Remove prefix http
rollingpencil Nov 3, 2025
3f29a26
Update collab message sent
Nicholas-Cheng-De-Fei Nov 3, 2025
2da2bd9
Merge branch '103/collab-ui' of https://github.com/CS3219-AY2526Sem1/…
Nicholas-Cheng-De-Fei Nov 3, 2025
17dcf8f
Add more verbose error
rollingpencil Nov 3, 2025
7ff4717
Remove file
Nicholas-Cheng-De-Fei Nov 3, 2025
f231703
Fix terminate req bug, newline bug on qn panel, default code not
GavinSin Nov 3, 2025
6253ac8
Fix terminate bug
Nicholas-Cheng-De-Fei Nov 3, 2025
47bba62
Get username on find match
Nicholas-Cheng-De-Fei Nov 5, 2025
a4b093f
Fetch partner name on connect
Nicholas-Cheng-De-Fei Nov 5, 2025
57da3f5
Update variable name
Nicholas-Cheng-De-Fei Nov 5, 2025
f4f48bf
Add Question interface to define question object structure
Jovin-Ang Nov 5, 2025
3879504
Add Questions administration page with question list and category chi…
Jovin-Ang Nov 5, 2025
9c054da
Add QuestionItem component
Jovin-Ang Nov 5, 2025
01cf8eb
Add dynamic partner name on matching and collab page
GavinSin Nov 7, 2025
513e1dd
Merge pull request #140 from CS3219-AY2526Sem1/gcp-sed
sheenkerr Nov 7, 2025
545cca5
Merge pull request #138 from CS3219-AY2526Sem1/auth-ui
GavinSin Nov 7, 2025
22b76ee
Merge branch 'refs/heads/master' into qns-admin-ui
Jovin-Ang Nov 7, 2025
1109acb
Fix empty string when connect failed
GavinSin Nov 7, 2025
5b0e154
Add voice function
GavinSin Nov 7, 2025
98a8710
Change to use Request library
Nicholas-Cheng-De-Fei Nov 7, 2025
b19a09c
Updated url
rollingpencil Nov 7, 2025
661de78
Change to use Request library
Nicholas-Cheng-De-Fei Nov 7, 2025
93b8172
Enhance logging in gateway_controller.py
sheenkerr Nov 7, 2025
b0e7a20
Fix frontend white screen bug
Nicholas-Cheng-De-Fei Nov 7, 2025
9e97587
Update Cookie Settings
sheenkerr Nov 8, 2025
be0125f
Update cookie settings
sheenkerr Nov 8, 2025
506f368
Update CORS in API Gateway
sheenkerr Nov 8, 2025
f155147
Update Cookie management
sheenkerr Nov 8, 2025
50f291a
Fix question fetch bug
Nicholas-Cheng-De-Fei Nov 8, 2025
e6566fa
Update Cookie Management
sheenkerr Nov 8, 2025
f96cd1e
Update Cookie Management
sheenkerr Nov 8, 2025
25c4611
Change event queue for match confirmation
Nicholas-Cheng-De-Fei Nov 8, 2025
e6c4453
Update front end to prevent double API call
sheenkerr Nov 8, 2025
27d4b66
Update frontend to make one API call
sheenkerr Nov 8, 2025
8fdbb90
Update layout in Frontend
sheenkerr Nov 8, 2025
d47ff9c
Update order of Github Actions
sheenkerr Nov 8, 2025
dfd3a03
Update authcontext
sheenkerr Nov 8, 2025
3240336
Add CORS to User Svc
sheenkerr Nov 8, 2025
08908da
Undo front end changes
sheenkerr Nov 8, 2025
6bb48cb
Add Edit Question page
Jovin-Ang Nov 8, 2025
3037a6c
Add logs to dynamic router
sheenkerr Nov 8, 2025
9d87f4b
Implement pagination and page size selection for Questions list
Jovin-Ang Nov 8, 2025
08920e3
Update forward in gateway controller
sheenkerr Nov 8, 2025
cf4e72e
Update Gateway forward
sheenkerr Nov 8, 2025
6104fe6
Update gateway cookie settings
sheenkerr Nov 8, 2025
4e77879
Add logs to US
sheenkerr Nov 8, 2025
9d67c0f
Update US logs
sheenkerr Nov 8, 2025
1386680
Add test route
sheenkerr Nov 8, 2025
665a89e
Change send to post
sheenkerr Nov 8, 2025
9e5750e
Fix gateway imports
sheenkerr Nov 8, 2025
f822edb
Add uuid to id requests
rollingpencil Nov 8, 2025
221a540
Update log in gateway
sheenkerr Nov 8, 2025
bff4a92
Merge branch 'gcp-sed' of https://github.com/CS3219-AY2526Sem1/cs3219…
sheenkerr Nov 8, 2025
026d822
Remove CORS in user svc
sheenkerr Nov 8, 2025
9ab1257
Remove additional CORS in gateway
sheenkerr Nov 8, 2025
601d01e
Update logs in gateway
sheenkerr Nov 8, 2025
0ef0314
Center loading indicators
Jovin-Ang Nov 8, 2025
0f66f2d
Add NewQuestion page and delete question to QuestionItem
Jovin-Ang Nov 8, 2025
d8e9300
Add link to create a new question in Questions admin
Jovin-Ang Nov 8, 2025
687bc72
Fix logical error in total questions calculation
Jovin-Ang Nov 8, 2025
44cfc4e
Update dependency array in useEffect
Jovin-Ang Nov 8, 2025
0a57e3e
Move questionIdNum declaration inside useEffect
Jovin-Ang Nov 8, 2025
d7d08e8
Fix key prop in QuestionItem and QuestionList
Jovin-Ang Nov 8, 2025
c03a3d6
Add return question count
rollingpencil Nov 9, 2025
1958779
Lint fix
rollingpencil Nov 9, 2025
0f9c2c9
Update dynamic router
sheenkerr Nov 9, 2025
71836d6
Add logs to gateway
sheenkerr Nov 9, 2025
5a32667
Add logs to gateway service registry
sheenkerr Nov 9, 2025
d0fa80d
Merge pull request #142 from CS3219-AY2526Sem1/qns-index
Jovin-Ang Nov 9, 2025
b1adcd6
Merge branch 'refs/heads/master' into qns-admin-ui
Jovin-Ang Nov 9, 2025
ba23ed2
Update dynamic router in gateway
sheenkerr Nov 9, 2025
d164350
Add logs to dynamic router
sheenkerr Nov 9, 2025
a9dde91
Update logs in dynamic router
sheenkerr Nov 9, 2025
885b250
Update dynamic router
sheenkerr Nov 9, 2025
9b847ae
Add params in dynamic router
sheenkerr Nov 9, 2025
bb0d4f5
Add headers to dynamic router
sheenkerr Nov 9, 2025
2aa7673
Remove headers from dynamic router
sheenkerr Nov 9, 2025
281a0c8
Set default option as selected in difficulty level dropdown
Jovin-Ang Nov 9, 2025
bd4d235
Add redirect to questions page after successful submission
Jovin-Ang Nov 9, 2025
faaa6a7
Merge branch 'master' into gcp-sed
sheenkerr Nov 9, 2025
4a72000
Add print and flush for redis in MS
sheenkerr Nov 9, 2025
bc39adf
Add logs to MS
sheenkerr Nov 9, 2025
d1371a5
Update MS redis startup logs
sheenkerr Nov 9, 2025
9df88f9
Make redis startup async
sheenkerr Nov 9, 2025
f0d11ad
Add logs to MS
sheenkerr Nov 9, 2025
713ccbf
Update MS Logs
sheenkerr Nov 9, 2025
625a111
Update MS logs
sheenkerr Nov 9, 2025
f811507
Add endpoint to MS
sheenkerr Nov 9, 2025
0a6b99e
Add await to all redis connections in MS
sheenkerr Nov 9, 2025
31d8ed4
Update redis connections in MS
sheenkerr Nov 9, 2025
efe33b1
Update redis init for MS
sheenkerr Nov 9, 2025
b195344
Update MS Redis init
sheenkerr Nov 9, 2025
d7f600a
Undo MS redit init
sheenkerr Nov 9, 2025
05d4f0f
Remove unused debug endpoints in MS
sheenkerr Nov 9, 2025
5c61334
Update API gateway url in front end
sheenkerr Nov 9, 2025
0799817
Ruff lint fix for multiple files
sheenkerr Nov 9, 2025
3fb82ce
Update gateway URL in frontend
sheenkerr Nov 9, 2025
433bfe4
Update API link in front end
sheenkerr Nov 9, 2025
a8f3f1e
Update expire observer
sheenkerr Nov 9, 2025
a433a72
Remove set redis in CS
sheenkerr Nov 9, 2025
cd20029
Add logs to collab
sheenkerr Nov 9, 2025
37d565f
Add logs to gateway for websocket
sheenkerr Nov 9, 2025
5bcdc2a
Comment out dynamic router to test websocket
sheenkerr Nov 9, 2025
4fe696a
Add test route to collab
sheenkerr Nov 9, 2025
51b15f8
Update collab to include test route
sheenkerr Nov 9, 2025
19c4ead
Update Collab to include test route for websocket
sheenkerr Nov 9, 2025
1d8d51d
Update collab test route for websocket
sheenkerr Nov 9, 2025
b259da8
Make test route in collab secure
sheenkerr Nov 9, 2025
cc6605c
Update test route in collab
sheenkerr Nov 9, 2025
2adb6d4
Update test in collab
sheenkerr Nov 9, 2025
59fc2dc
Update test route to use ws for websocket
sheenkerr Nov 9, 2025
54bb8f7
Update test route in collab
sheenkerr Nov 10, 2025
8347b0a
Update test toutes in collab
sheenkerr Nov 10, 2025
38d554a
Update test route in collab
sheenkerr Nov 10, 2025
2f8c336
Update test route in collab
sheenkerr Nov 10, 2025
c75bcc5
Update ssl certs in collab
sheenkerr Nov 10, 2025
f4c04d6
Remove test routes in collab
sheenkerr Nov 10, 2025
1d11392
Remove websocket from collab for to testing
sheenkerr Nov 10, 2025
779bc0d
Add dynamic router back to gateway
sheenkerr Nov 10, 2025
3f5ee18
Fix qn format issue
GavinSin Nov 10, 2025
fad234b
Add test route to user svc
sheenkerr Nov 10, 2025
d503c84
Fix match cleanup bug
Nicholas-Cheng-De-Fei Nov 10, 2025
7ce6ad0
Remove test route in user
sheenkerr Nov 10, 2025
4080b6e
Add redis back to collab
sheenkerr Nov 10, 2025
ac694fe
Merge branch 'master' into 103/collab-ui
GavinSin Nov 10, 2025
dcd66f6
Add env variable
GavinSin Nov 10, 2025
d501699
Fix linting issues
GavinSin Nov 10, 2025
af43c8c
Fix linting issue on qns-svc
GavinSin Nov 10, 2025
554c28d
Fix linting issue on qns-svc
GavinSin Nov 10, 2025
739f1d1
Fix linting issues in collab svc
GavinSin Nov 10, 2025
7239ed4
Merge pull request #146 from CS3219-AY2526Sem1/103/collab-ui
Nicholas-Cheng-De-Fei Nov 10, 2025
4c58dfe
Rename Cancel button to Reset in EditQuestion
Jovin-Ang Nov 11, 2025
176d5d5
Merge pull request #141 from CS3219-AY2526Sem1/qns-admin-ui
rollingpencil Nov 11, 2025
593d131
Merge branch 'master' into gcp-sed
sheenkerr Nov 11, 2025
4a94925
Add env file to github actions
sheenkerr Nov 11, 2025
805abe3
Move FE to the front of yaml file
sheenkerr Nov 11, 2025
56519ef
Add test endpoint to MS
sheenkerr Nov 11, 2025
b5091e6
Add signal service to yaml
sheenkerr Nov 11, 2025
474ec74
Update typo in MS
sheenkerr Nov 11, 2025
f2ebb96
Update env for fe
sheenkerr Nov 11, 2025
7170d1e
Merge branch 'gcp-sed' of https://github.com/CS3219-AY2526Sem1/cs3219…
sheenkerr Nov 11, 2025
efda129
Move FE in front in yaml file
sheenkerr Nov 11, 2025
bbe352b
Change to ws for signal server
sheenkerr Nov 11, 2025
7083254
Update websocket variables in yaml
sheenkerr Nov 11, 2025
3248eac
Add logs to gateway for websocket
sheenkerr Nov 11, 2025
f0ca2fa
Update port of signalling server in yaml
sheenkerr Nov 11, 2025
6c1c8e6
Update gateway to use query string instead of cookie auth for fe webs…
sheenkerr Nov 11, 2025
9f639b0
Update fe to use query string when calling websocket
sheenkerr Nov 11, 2025
23e4e6e
Update token retrieval in gateway for websocket
sheenkerr Nov 11, 2025
d7fd462
Update cookie retrieval in fe
sheenkerr Nov 11, 2025
d170dee
Update cookie retrieval in fe
sheenkerr Nov 11, 2025
ab3bc59
Update fe websocket to use userID instead of access token
sheenkerr Nov 11, 2025
69f0247
Fix missing import in collab
sheenkerr Nov 11, 2025
3f2dedf
Add test routes to colab
sheenkerr Nov 11, 2025
d0b44de
Update test route in collab
sheenkerr Nov 11, 2025
cf586de
Add logs to qhs
sheenkerr Nov 11, 2025
7c628b8
Add logs to signaling server for fe
sheenkerr Nov 11, 2025
50e57f6
Update test route in collab
sheenkerr Nov 11, 2025
398c64e
Refactor NavBar to conditionally hide admin links based on user role
Jovin-Ang Nov 11, 2025
3afd3c7
Fix import path for NavButton type and update JSDoc
Jovin-Ang Nov 11, 2025
3d06112
Fix typo in env file for gateway and matching
sheenkerr Nov 11, 2025
318b435
Make the websocket reconnect when collab disconnects from gateway
sheenkerr Nov 12, 2025
ccf2c52
Merge pull request #147 from CS3219-AY2526Sem1/navbar-hide-admin-links
sheenkerr Nov 12, 2025
72754fc
Merge branch 'master' into gcp-sed
sheenkerr Nov 12, 2025
98d2e7e
Add pipeline to collab
sheenkerr Nov 12, 2025
3328953
Add logs to collab
sheenkerr Nov 12, 2025
44d3e5e
Add logs to collab
sheenkerr Nov 12, 2025
5006514
Add logs to collab
sheenkerr Nov 12, 2025
1808ab7
Add logs to collab
sheenkerr Nov 12, 2025
68465ad
Update collab to reconnect
sheenkerr Nov 12, 2025
a7998e0
Update collab reconnect websocket
sheenkerr Nov 12, 2025
fc47f12
Add voice chat in collab
GavinSin Nov 12, 2025
52b0762
Merge branch 'master' into fix-collab-voice-issue
GavinSin Nov 12, 2025
3e3df33
Acknowledge tortoise orm test config
rollingpencil Nov 12, 2025
a5d2d0a
Merge pull request #149 from CS3219-AY2526Sem1/code-reuse-ack
sheenkerr Nov 12, 2025
98b3d8c
Move ssl cert into websocket controller for collab
sheenkerr Nov 12, 2025
030709c
Remove ssl cert in collab
sheenkerr Nov 12, 2025
ed574d6
Add acknowledgement
GavinSin Nov 12, 2025
fffad3d
Add ssl cert for websocket to collab
sheenkerr Nov 12, 2025
ede4b70
Add env variable to not use SSL for local instance in collab
sheenkerr Nov 12, 2025
9eee3fa
Remove unused import in api gateway
sheenkerr Nov 12, 2025
b530183
Remove github sign in option in front end
sheenkerr Nov 12, 2025
597eeb5
Add declaration
GavinSin Nov 12, 2025
0cee7be
Fix lint issues in front end
sheenkerr Nov 12, 2025
73af252
Merge pull request #151 from CS3219-AY2526Sem1/remove-github-logo
rollingpencil Nov 12, 2025
708445d
Merge branch 'master' into fix-collab-voice-issue
GavinSin Nov 12, 2025
331460e
Add usage logs
GavinSin Nov 12, 2025
04ee633
Merge pull request #148 from CS3219-AY2526Sem1/fix-collab-voice-issue
Nicholas-Cheng-De-Fei Nov 12, 2025
df120e3
Merge branch 'master' into gcp-sed
sheenkerr Nov 12, 2025
330e193
Update match timing to 40 seconds
sheenkerr Nov 12, 2025
21d55ef
Update readme
rollingpencil Nov 12, 2025
1b568c3
Add docker information
rollingpencil Nov 12, 2025
8b402c6
Update docker compose template file
Nicholas-Cheng-De-Fei Nov 12, 2025
58acfd7
Merge branch 'update-readme' of https://github.com/CS3219-AY2526Sem1/…
Nicholas-Cheng-De-Fei Nov 12, 2025
2cf7129
Update env template for all services
sheenkerr Nov 12, 2025
6fad336
Merge pull request #145 from CS3219-AY2526Sem1/gcp-sed
GavinSin Nov 12, 2025
277b791
Add dev endpoint to websocket in gateway
sheenkerr Nov 12, 2025
3e825e8
Merge pull request #153 from CS3219-AY2526Sem1/gcp-sed
GavinSin Nov 12, 2025
6df69b6
Merge pull request #152 from CS3219-AY2526Sem1/update-readme
GavinSin Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
185 changes: 185 additions & 0 deletions .github/workflows/google-cloudrun-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
# This workflow build and push a Docker container to Google Artifact Registry
# and deploy it on Cloud Run when a commit is pushed to the "master"
# branch.
#
# To configure this workflow:
#
# 1. Enable the following Google Cloud APIs:
#
# - Artifact Registry (artifactregistry.googleapis.com)
# - Cloud Run (run.googleapis.com)
# - IAM Credentials API (iamcredentials.googleapis.com)
#
# You can learn more about enabling APIs at
# https://support.google.com/googleapi/answer/6158841.
#
# 2. Create and configure a Workload Identity Provider for GitHub:
# https://github.com/google-github-actions/auth#preferred-direct-workload-identity-federation.
#
# Depending on how you authenticate, you will need to grant an IAM principal
# permissions on Google Cloud:
#
# - Artifact Registry Administrator (roles/artifactregistry.admin)
# - Cloud Run Developer (roles/run.developer)
#
# You can learn more about setting IAM permissions at
# https://cloud.google.com/iam/docs/manage-access-other-resources
#
# 3. Change the values in the "env" block to match your values.

name: 'Build and Deploy to Cloud Run'

env:
DOCKER_IMAGE_URL: asia-southeast1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/pp-repository/

on:
workflow_dispatch:

jobs:
deploy:
runs-on: ubuntu-latest

permissions:
contents: 'read'
id-token: 'write'

steps:
- name: 'Checkout'
uses: 'actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332' # actions/checkout@v4

# Configure Workload Identity Federation and generate an access token.
#
# See https://github.com/google-github-actions/auth for more options,
# including authenticating via a JSON credentials file.
- name: Google Cloud Auth
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GCP_SA_KEY }}'
project_id: ${{ secrets.GCP_PROJECT_ID }}

- name: Set up Cloud SDK
uses: 'google-github-actions/setup-gcloud@v2'

- name: Configure Docker
run: |
gcloud auth configure-docker asia-southeast1-docker.pkg.dev

- name: (CS) Make Cloud Run build configuration changes
working-directory: ./collaboration-svc
run: |
sed -i -e 's/EXPOSE 80/EXPOSE 8080/' -e 's/"--port", "80"/"--port", "8080"/' ./Dockerfile

- name: (CS) Build and Push Docker Image
working-directory: ./collaboration-svc
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-collaboration-svc:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-collaboration-svc:latest

- name: (ES) Build and Push Docker Image
working-directory: ./expire-observer-svc
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-expire-observer-svc:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-expire-observer-svc:latest

- name: (FE) Create .env for Cloud Run
working-directory: ./PeerPrep
run: |
echo "VITE_API_URL=https://api.peerprep.cloud" > .env
echo "VITE_SIGNALING_SERVER_URL=wss://pp-ss-161940165499.asia-east1.run.app" >> .env
echo "VITE_ICE_SERVERS=stun:stun.l.google.com:19302" >> .env
echo "VITE_WS_GATEWAY_URL=wss://pp-api-gateway-161940165499.asia-east1.run.app/ws/fe" >> .env

- name: (FE) Make Cloud Run build configuration changes
working-directory: ./PeerPrep
run: |
sed -i 's/EXPOSE 80/EXPOSE 8080/' ./Dockerfile
sed -i 's/listen 80;/listen 8080;/' ./nginx.conf
sed -i 's/localhost/_/' ./nginx.conf

- name: (FE) Build and Push Docker Image
working-directory: ./PeerPrep
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-fe:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-fe:latest

- name: (SS) Make Cloud Run build configuration changes
working-directory: ./signaling-svc
run: |
sed -i -e 's/EXPOSE 4444/EXPOSE 8080/' ./Dockerfile

- name: (SS) Build and Push Docker Image
working-directory: ./signaling-svc
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-ss:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-ss:latest

- name: (QHS) Make Cloud Run build configuration changes
working-directory: ./qns-hist-svc
run: |
sed -i -e 's/EXPOSE 80/EXPOSE 8080/' -e 's/"--port", "80"/"--port", "8080"/' ./Dockerfile

- name: (QHS) Build and Push Docker Image
working-directory: ./qns-hist-svc
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-qns-hist-svc:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-qns-hist-svc:latest

- name: (AG) Make Cloud Run build configuration changes
working-directory: ./api-gateway
run: |
sed -i -e 's/EXPOSE 80/EXPOSE 8080/' -e 's/"--port", "80"/"--port", "8080"/' ./Dockerfile

- name: (AG) Build and Push Docker Image
working-directory: ./api-gateway
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-api-gateway:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-api-gateway:latest

- name: (MS) Make Cloud Run build configuration changes
working-directory: ./matching-svc
run: |
sed -i -e 's/EXPOSE 80/EXPOSE 8080/' -e 's/"--port", "80"/"--port", "8080"/' ./Dockerfile

- name: (MS) Build and Push Docker Image
working-directory: ./matching-svc
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-matching-svc:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-matching-svc:latest

- name: (US) Make Cloud Run build configuration changes
working-directory: ./user-svc
run: |
sed -i -e 's/EXPOSE 80/EXPOSE 8080/' -e 's/"--port", "80"/"--port", "8080"/' ./Dockerfile

- name: (US) Build and Push Docker Image
working-directory: ./user-svc
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-user-svc:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-user-svc:latest

- name: (QS) Make Cloud Run build configuration changes
working-directory: ./qns-svc
run: |
sed -i -e 's/EXPOSE 80/EXPOSE 8080/' -e 's/"--port", "80"/"--port", "8080"/' ./Dockerfile

- name: (QS) Build and Push Docker Image
working-directory: ./qns-svc
run: |
docker build -t ${{ env.DOCKER_IMAGE_URL }}pp-qns-svc:latest --platform=linux/amd64 .
docker push ${{ env.DOCKER_IMAGE_URL }}pp-qns-svc:latest

# - name: Deploy to Cloud Run

# run: |
# echo SERVICE_NAME $SERVICE_NAME
# gcloud run deploy $SERVICE_NAME \
# --image ${{ env.DOCKER_IMAGE_URL }}:latest \
# --platform managed \
# --region asia-southeast1 \
# --allow-unauthenticated

# If required, use the Cloud Run URL output in later steps
- name: 'Show output'
run: |2-

echo ${{ steps.deploy.outputs.url }}
79 changes: 79 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Lint check with Ruff

on:
pull_request:
branches:
- master
workflow_dispatch:

jobs:
build:
runs-on: [self-hosted, linux]
strategy:
matrix:
python-version:
- "3.13"

steps:
- uses: actions/checkout@v5

- name: Install uv and set the Python versions ${{ matrix.python-version }}
uses: astral-sh/setup-uv@v6
with:
python-version: ${{ matrix.python-version }}

- name: (QS) Run uv sync to install dependencies
working-directory: ./qns-svc
run: uv sync --locked --all-extras --dev

- name: (QS) Run ruff lint check
working-directory: ./qns-svc
run: uv run ruff check

- name: (MS) Run uv sync to install dependencies
working-directory: ./matching-svc
run: uv sync --locked --all-extras --dev

- name: (MS) Run ruff lint check
working-directory: ./matching-svc
run: uv run ruff check

- name: (US) Run uv sync to install dependencies
working-directory: ./user-svc
run: uv sync --locked --all-extras --dev

- name: (US) Run ruff lint check
working-directory: ./user-svc
run: uv run ruff check

- name: (AG) Run uv sync to install dependencies
working-directory: ./api-gateway
run: uv sync --locked --all-extras --dev

- name: (AG) Run ruff lint check
working-directory: ./api-gateway
run: uv run ruff check

- name: (QHS) Run uv sync to install dependencies
working-directory: ./qns-hist-svc
run: uv sync --locked --all-extras --dev

- name: (QHS) Run ruff lint check
working-directory: ./qns-hist-svc
run: uv run ruff check

- name: (CS) Run uv sync to install dependencies
working-directory: ./collaboration-svc
run: uv sync --locked --all-extras --dev

- name: (CS) Run ruff lint check
working-directory: ./collaboration-svc
run: uv run ruff check

- name: (EOS) Run uv sync to install dependencies
working-directory: ./expire-observer-svc
run: uv sync --locked --all-extras --dev

- name: (EOS) Run ruff lint check
working-directory: ./expire-observer-svc
run: uv run ruff check
48 changes: 48 additions & 0 deletions .github/workflows/pytest-qhs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: (Question History Svc) Unit Testing with pytest

on:
pull_request:
branches:
- master
paths:
- 'qns-hist-svc/**'
push:
paths:
- 'qns-hist-svc/**'
workflow_dispatch:

jobs:
build:
runs-on: [self-hosted, linux]
strategy:
matrix:
python-version:
- "3.13"

steps:
- uses: actions/checkout@v5

- name: Install uv and set the Python versions ${{ matrix.python-version }}
uses: astral-sh/setup-uv@v6
with:
python-version: ${{ matrix.python-version }}

- name: (QHS) Run uv sync to install dependencies
working-directory: ./qns-hist-svc
run: uv sync --locked --all-extras --dev

- name: (QHS) Setup environment
working-directory: ./qns-hist-svc
run: cp .env.template .env

- name: (QHS) Run pytest
working-directory: ./qns-hist-svc
run: uv run pytest --cov-branch --cov-report=xml

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
working-directory: ./qns-hist-svc
flags: qns-hist-svc

48 changes: 48 additions & 0 deletions .github/workflows/pytest-qs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: (Question Svc) Unit Testing with pytest

on:
pull_request:
branches:
- master
paths:
- 'qns-svc/**'
push:
paths:
- 'qns-svc/**'
workflow_dispatch:

jobs:
build:
runs-on: [self-hosted, linux]
strategy:
matrix:
python-version:
- "3.13"

steps:
- uses: actions/checkout@v5

- name: Install uv and set the Python versions ${{ matrix.python-version }}
uses: astral-sh/setup-uv@v6
with:
python-version: ${{ matrix.python-version }}

- name: (QS) Run uv sync to install dependencies
working-directory: ./qns-svc
run: uv sync --locked --all-extras --dev

- name: (QS) Setup environment
working-directory: ./qns-svc
run: cp .env.template .env

- name: (QS) Run pytest
working-directory: ./qns-svc
run: uv run pytest --cov-branch --cov-report=xml

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
working-directory: ./qns-svc
flags: qns-svc

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
docker-compose.yml
logs/
Loading