From c1662325b5d6fb4c68961760f0859e2104a871fe Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 14:13:48 +0800 Subject: [PATCH 01/10] update to test --- .github/workflows/develop.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 8970379..10a0d42 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -82,4 +82,5 @@ jobs: # - name: Black # run: docker exec backend pipenv run python -m black . --check # - name: isort - # run: docker exec backend pipenv run python -m isort . --check-only \ No newline at end of file + # run: docker exec backend pipenv run python -m isort . --check-only + \ No newline at end of file From e09287af4c3230fc16755c90a04761669dd08fcf Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 14:14:29 +0800 Subject: [PATCH 02/10] update --- .github/workflows/develop.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 10a0d42..220d8b5 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -1,9 +1,6 @@ name: CI/CD - develop on: - push: - branches: - - develop pull_request: branches: - develop From f9885e635cf451ecf42ebf94c66b0e738000c32d Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 14:15:24 +0800 Subject: [PATCH 03/10] update --- .github/workflows/develop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 220d8b5..fa6edad 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -1,7 +1,7 @@ name: CI/CD - develop on: - pull_request: + push: branches: - develop From fdfa65bd532a5b972a3b137c0d845dff8b95bf2e Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 14:15:46 +0800 Subject: [PATCH 04/10] update --- .github/workflows/develop.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index fa6edad..10a0d42 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -4,6 +4,9 @@ on: push: branches: - develop + pull_request: + branches: + - develop env: IMAGE: ghcr.io/$(echo $GITHUB_REPOSITORY | tr '[A-Z]' '[a-z]')/aimingmed-ai-backend From e1290aab01284e48fad4e9be4250cd6b36d4d484 Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 14:16:20 +0800 Subject: [PATCH 05/10] update --- .github/workflows/develop.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 10a0d42..220d8b5 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -1,9 +1,6 @@ name: CI/CD - develop on: - push: - branches: - - develop pull_request: branches: - develop From c55b02deb712510064e99739c088bbcba27f0422 Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 15:11:34 +0800 Subject: [PATCH 06/10] update --- .github/workflows/develop.yml | 6 ++++++ app/docker-compose.yml | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 220d8b5..ca1a044 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -17,6 +17,12 @@ jobs: contents: read packages: write steps: + - name: Check disk space before cleanup + run: df -h + - name: Clean up disk space + run: | + docker system prune -af + df -h - name: Checkout uses: actions/checkout@v3 with: diff --git a/app/docker-compose.yml b/app/docker-compose.yml index 06508b0..ede7a8b 100644 --- a/app/docker-compose.yml +++ b/app/docker-compose.yml @@ -22,3 +22,18 @@ services: environment: - ENVIRONMENT=dev - TESTING=0 + + frontend: + build: + context: ./frontend + dockerfile: Dockerfile.local + container_name: frontend + platform: linux/amd64 + volumes: + - ./frontend:/usr/src/app + ports: + - "3004:5173" + depends_on: + - backend + environment: + LOG_LEVEL: "DEBUG" From afb90160a38d7b91547acce521d246aac4b50172 Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 15:33:23 +0800 Subject: [PATCH 07/10] clean up --- .github/workflows/develop.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index ca1a044..79fd5f0 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -50,6 +50,12 @@ jobs: runs-on: ubuntu-latest needs: build steps: + - name: Check disk space before cleanup + run: df -h + - name: Clean up disk space + run: | + docker system prune -af + df -h - name: Checkout uses: actions/checkout@v3 with: From 4810485a016c25b906c9c110377905a27f9ec2b2 Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 15:56:26 +0800 Subject: [PATCH 08/10] update --- .github/workflows/develop.yml | 12 ------------ app/frontend/.env.production | 1 + app/frontend/src/App.tsx | 2 +- 3 files changed, 2 insertions(+), 13 deletions(-) create mode 100644 app/frontend/.env.production diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 79fd5f0..220d8b5 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -17,12 +17,6 @@ jobs: contents: read packages: write steps: - - name: Check disk space before cleanup - run: df -h - - name: Clean up disk space - run: | - docker system prune -af - df -h - name: Checkout uses: actions/checkout@v3 with: @@ -50,12 +44,6 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - name: Check disk space before cleanup - run: df -h - - name: Clean up disk space - run: | - docker system prune -af - df -h - name: Checkout uses: actions/checkout@v3 with: diff --git a/app/frontend/.env.production b/app/frontend/.env.production new file mode 100644 index 0000000..6eaca9d --- /dev/null +++ b/app/frontend/.env.production @@ -0,0 +1 @@ +REACT_APP_BASE_URL=https://backend.aimingmed.com/ \ No newline at end of file diff --git a/app/frontend/src/App.tsx b/app/frontend/src/App.tsx index 0a9f2cf..f6dbf71 100644 --- a/app/frontend/src/App.tsx +++ b/app/frontend/src/App.tsx @@ -13,7 +13,7 @@ const App: React.FC = () => { useEffect(() => { mounted.current = true; - const ws = new WebSocket('ws://localhost:8000/ws'); + const ws = new WebSocket('ws://localhost:8004/ws'); setSocket(ws); ws.onopen = () => { console.log('WebSocket connection opened'); From 835db2eb76a7b0e8b4eac6faf6bc26d1494e19e8 Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 17:27:11 +0800 Subject: [PATCH 09/10] update --- app/backend/Dockerfile.prod | 2 +- app/docker-compose.yml | 1 + app/frontend/.dockerignore | 1 + app/frontend/package-lock.json | 18 ++++++++++++++++++ app/frontend/package.json | 3 ++- app/frontend/src/App.tsx | 5 ++++- app/frontend/vite.config.ts | 12 +++++++----- 7 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 app/frontend/.dockerignore diff --git a/app/backend/Dockerfile.prod b/app/backend/Dockerfile.prod index 2a63aba..02e4bb8 100644 --- a/app/backend/Dockerfile.prod +++ b/app/backend/Dockerfile.prod @@ -68,7 +68,7 @@ COPY --from=builder /usr/src/app/wheels /wheels COPY --from=builder /usr/src/app/Pipfile . RUN pip install --upgrade pip setuptools wheel -i https://pypi.tuna.tsinghua.edu.cn/simple RUN pip install --no-cache /wheels/* -RUN pipenv install --deploy +RUN pipenv install --deploy --ignore-pipfile --dev RUN pipenv run pip install "uvicorn[standard]==0.26.0" # add app diff --git a/app/docker-compose.yml b/app/docker-compose.yml index ede7a8b..4b934ff 100644 --- a/app/docker-compose.yml +++ b/app/docker-compose.yml @@ -13,6 +13,7 @@ services: build: context: ./backend dockerfile: Dockerfile + container_name: backend platform: linux/amd64 command: pipenv run uvicorn main:app --reload --workers 1 --host 0.0.0.0 --port 8000 volumes: diff --git a/app/frontend/.dockerignore b/app/frontend/.dockerignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/app/frontend/.dockerignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/app/frontend/package-lock.json b/app/frontend/package-lock.json index 306491e..0d36139 100644 --- a/app/frontend/package-lock.json +++ b/app/frontend/package-lock.json @@ -16,6 +16,7 @@ "@eslint/js": "^9.21.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", + "@types/node": "^22.14.0", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.3.4", @@ -1711,6 +1712,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node": { + "version": "22.14.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.0.tgz", + "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, "node_modules/@types/react": { "version": "19.1.0", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.0.tgz", @@ -5228,6 +5239,13 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "node_modules/update-browserslist-db": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", diff --git a/app/frontend/package.json b/app/frontend/package.json index cf72ed2..65af888 100644 --- a/app/frontend/package.json +++ b/app/frontend/package.json @@ -20,6 +20,7 @@ "@eslint/js": "^9.21.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", + "@types/node": "^22.14.0", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.3.4", @@ -36,4 +37,4 @@ "vite": "^6.2.0", "vitest": "^3.1.1" } -} \ No newline at end of file +} diff --git a/app/frontend/src/App.tsx b/app/frontend/src/App.tsx index f6dbf71..6f390b9 100644 --- a/app/frontend/src/App.tsx +++ b/app/frontend/src/App.tsx @@ -1,5 +1,8 @@ import React, { useState, useEffect, useRef } from 'react'; +const BASE_DOMAIN_NAME = process.env.REACT_APP_DOMAIN_NAME || 'localhost'; + + interface Message { sender: 'user' | 'bot'; text: string; @@ -13,7 +16,7 @@ const App: React.FC = () => { useEffect(() => { mounted.current = true; - const ws = new WebSocket('ws://localhost:8004/ws'); + const ws = new WebSocket(`ws://${BASE_DOMAIN_NAME}:8004/ws`); setSocket(ws); ws.onopen = () => { console.log('WebSocket connection opened'); diff --git a/app/frontend/vite.config.ts b/app/frontend/vite.config.ts index 399a019..d767938 100644 --- a/app/frontend/vite.config.ts +++ b/app/frontend/vite.config.ts @@ -4,9 +4,11 @@ import react from '@vitejs/plugin-react' // https://vite.dev/config/ export default defineConfig({ plugins: [react()], - test: { - globals: true, - environment: "jsdom", - setupFiles: "./tests/setup.ts", - }, }); + +// https://vitest.dev/config/ +export const test = { + globals: true, + environment: "jsdom", + setupFiles: "./tests/setup.ts", +}; From 41eb2c3944f5005fb76cc5cf7b7575a21ad46dc5 Mon Sep 17 00:00:00 2001 From: leehk Date: Fri, 11 Apr 2025 17:55:50 +0800 Subject: [PATCH 10/10] update to test --- app/backend/Dockerfile.prod | 4 ++-- app/frontend/package-lock.json | 24 ++++++++++++++++++++---- app/frontend/package.json | 5 ++++- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/app/backend/Dockerfile.prod b/app/backend/Dockerfile.prod index 02e4bb8..ad198f3 100644 --- a/app/backend/Dockerfile.prod +++ b/app/backend/Dockerfile.prod @@ -23,7 +23,7 @@ RUN pip install --upgrade pip setuptools wheel -i https://pypi.tuna.tsinghua.edu RUN pip wheel --no-cache-dir --no-deps --wheel-dir /usr/src/app/wheels -i https://pypi.tuna.tsinghua.edu.cn/simple pipenv RUN pip install --no-cache-dir --find-links=/usr/src/app/wheels pipenv COPY ./Pipfile . -RUN pipenv install --deploy +RUN pipenv lock --pre && pipenv install --deploy # add app COPY . /usr/src/app @@ -68,7 +68,7 @@ COPY --from=builder /usr/src/app/wheels /wheels COPY --from=builder /usr/src/app/Pipfile . RUN pip install --upgrade pip setuptools wheel -i https://pypi.tuna.tsinghua.edu.cn/simple RUN pip install --no-cache /wheels/* -RUN pipenv install --deploy --ignore-pipfile --dev +RUN pipenv lock --pre && pipenv install --deploy RUN pipenv run pip install "uvicorn[standard]==0.26.0" # add app diff --git a/app/frontend/package-lock.json b/app/frontend/package-lock.json index 0d36139..913bb1f 100644 --- a/app/frontend/package-lock.json +++ b/app/frontend/package-lock.json @@ -32,6 +32,9 @@ "typescript-eslint": "^8.24.1", "vite": "^6.2.0", "vitest": "^3.1.1" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.9.5" } }, "node_modules/@adobe/css-tools": { @@ -1485,13 +1488,12 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.39.0.tgz", - "integrity": "sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", + "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4685,6 +4687,20 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.39.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.39.0.tgz", + "integrity": "sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/rrweb-cssom": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", diff --git a/app/frontend/package.json b/app/frontend/package.json index 65af888..2cea4a8 100644 --- a/app/frontend/package.json +++ b/app/frontend/package.json @@ -36,5 +36,8 @@ "typescript-eslint": "^8.24.1", "vite": "^6.2.0", "vitest": "^3.1.1" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-musl": "^3.28.0" } -} +} \ No newline at end of file