diff --git a/.github/workflows/e2e-dashboard-tests.yml b/.github/workflows/e2e-dashboard-tests.yml index 929680a1..45258fb0 100644 --- a/.github/workflows/e2e-dashboard-tests.yml +++ b/.github/workflows/e2e-dashboard-tests.yml @@ -8,9 +8,9 @@ on: - '**.py' - '**.ts' - '**.tsx' - - 'package.json' - - 'package-lock.json' - - 'tsconfig.json' + - 'optuna_dashboard/package.json' + - 'optuna_dashboard/package-lock.json' + - 'optuna_dashboard/tsconfig.json' jobs: test: runs-on: ubuntu-20.04 @@ -24,8 +24,12 @@ jobs: uses: actions/setup-node@v2 with: node-version: '16' - - run: npm install - - run: npm run build:dev + + - name: Build bundle.js + working-directory: optuna_dashboard + run: | + npm install + npm run build:dev - name: Set up Python uses: actions/setup-python@v2 diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 2e1bdb41..d2ddf54d 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -18,8 +18,12 @@ jobs: uses: actions/setup-node@v2 with: node-version: '16' - - run: npm install - - run: npm run build:prd + + - name: Build bundle.js + working-directory: optuna_dashboard + run: | + npm install + npm run build:prd - name: Set up Python uses: actions/setup-python@v4 diff --git a/.github/workflows/typescript-tests.yml b/.github/workflows/typescript-tests.yml index 5873f024..b536105a 100644 --- a/.github/workflows/typescript-tests.yml +++ b/.github/workflows/typescript-tests.yml @@ -6,9 +6,10 @@ on: - '.eslintrc.js' - '**.ts' - '**.tsx' - - 'package.json' - - 'package-lock.json' - - 'tsconfig.json' + - 'optuna_dashboard/package.json' + - 'optuna_dashboard/package-lock.json' + - 'optuna_dashboard/tsconfig.json' + - 'optuna_dashboard/webpack.config.js' jobs: lint: name: Lint checking on Ubuntu @@ -37,7 +38,9 @@ jobs: uses: actions/setup-node@v2 with: node-version: '16' - - run: | + - name: Build bundle.js + working-directory: optuna_dashboard + run: | npm install npm run build:dev npm run build:prd @@ -54,6 +57,8 @@ jobs: uses: actions/setup-node@v2 with: node-version: '16' - - run: | + - name: Run jest + working-directory: optuna_dashboard + run: | npm install npm run test diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index df519b53..53e5059a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,6 +26,7 @@ The repository is organized as follows: Node.js v16 is required to compile TypeScript files. ``` +$ cd optuna_dashboard/ $ npm install $ npm run build:dev ``` @@ -34,6 +35,7 @@ $ npm run build:dev Watch for files changes ``` +$ cd optuna_dashboard/ $ npm run watch ``` @@ -43,6 +45,7 @@ $ npm run watch Production builds ``` +$ cd optuna_dashboard/ $ npm run build:prd ``` diff --git a/Dockerfile b/Dockerfile index 2f54020f..035eb835 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,12 @@ FROM node:20 AS front-builder -WORKDIR /usr/src +WORKDIR /usr/src/optuna_dashboard -ADD ./package.json /usr/src/package.json -ADD ./package-lock.json /usr/src/package-lock.json +ADD ./optuna_dashboard/package.json /usr/src/optuna_dashboard/package.json +ADD ./optuna_dashboard/package-lock.json /usr/src/optuna_dashboard/package-lock.json RUN npm install -ADD ./tsconfig.json /usr/src/tsconfig.json -ADD ./webpack.config.js /usr/src/webpack.config.js +ADD ./optuna_dashboard/tsconfig.json /usr/src/optuna_dashboard/tsconfig.json +ADD ./optuna_dashboard/webpack.config.js /usr/src/optuna_dashboard/webpack.config.js ADD ./optuna_dashboard/ts/ /usr/src/optuna_dashboard/ts RUN mkdir -p /usr/src/optuna_dashboard/public RUN npm run build:prd diff --git a/Makefile b/Makefile index 55e8e69d..ab0a5778 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ vscode/assets/bundle.js: $(RUSTLIB_OUT) $(STANDALONE_SRC) cd standalone_app && npm install && npm run build:vscode $(DASHBOARD_TS_OUT): $(DASHBOARD_TS_SRC) - npm install && npm run build:$(MODE) + cd optuna_dashboard && npm install && npm run build:$(MODE) .PHONY: serve-browser-app serve-browser-app: $(RUSTLIB_OUT) diff --git a/optuna_dashboard/package.json b/optuna_dashboard/package.json index 5e0ee00a..e9afdac9 100644 --- a/optuna_dashboard/package.json +++ b/optuna_dashboard/package.json @@ -9,7 +9,7 @@ "build": "webpack", "build:dev": "NODE_ENV=development TYPESCRIPT_LOADER=esbuild-loader webpack", "build:prd": "NODE_ENV=production webpack", - "test": "jest typescript_tests" + "test": "jest ts/tests" }, "author": "Masashi Shibata", "license": "MIT", diff --git a/optuna_dashboard/ts/hooks/useParamImportance.ts b/optuna_dashboard/ts/hooks/useParamImportance.ts index 173f1d32..791644ca 100644 --- a/optuna_dashboard/ts/hooks/useParamImportance.ts +++ b/optuna_dashboard/ts/hooks/useParamImportance.ts @@ -1,6 +1,6 @@ import { useEffect } from "react" import { useSnackbar } from "notistack" -import { getParamImportances } from "../../ts/apiClient" +import { getParamImportances } from "../apiClient" import { useQuery } from "@tanstack/react-query" import { AxiosError } from "axios" diff --git a/optuna_dashboard/ts/tests/DataGrid.test.tsx b/optuna_dashboard/ts/tests/DataGrid.test.tsx index 6d13deb7..809c3c42 100644 --- a/optuna_dashboard/ts/tests/DataGrid.test.tsx +++ b/optuna_dashboard/ts/tests/DataGrid.test.tsx @@ -2,10 +2,7 @@ import React from "react" global.URL.createObjectURL = jest.fn() import { cleanup, render } from "@testing-library/react" -import { - DataGrid, - DataGridColumn, -} from "../optuna_dashboard/ts/components/DataGrid" +import { DataGrid, DataGridColumn } from "../components/DataGrid" afterEach(cleanup) diff --git a/optuna_dashboard/ts/tests/searchSpace.test.ts b/optuna_dashboard/ts/tests/searchSpace.test.ts index fa36be7c..0e48e0c9 100644 --- a/optuna_dashboard/ts/tests/searchSpace.test.ts +++ b/optuna_dashboard/ts/tests/searchSpace.test.ts @@ -1,4 +1,4 @@ -import { mergeUnionSearchSpace } from "../optuna_dashboard/ts/searchSpace" +import { mergeUnionSearchSpace } from "../searchSpace" global.URL.createObjectURL = jest.fn() diff --git a/optuna_dashboard/tsconfig.json b/optuna_dashboard/tsconfig.json index 995da2dd..c05b9241 100644 --- a/optuna_dashboard/tsconfig.json +++ b/optuna_dashboard/tsconfig.json @@ -6,7 +6,7 @@ "noUnusedLocals": true, "noImplicitThis": true, "alwaysStrict": true, - "outDir": "./optuna_dashboard/public/", + "outDir": "./public/", "paths": { "plotly.js-dist-min": ["node_modules/@types/plotly.js"] }, @@ -21,11 +21,11 @@ "strict": true }, "files": [ - "./optuna_dashboard/ts/index.tsx" + "./ts/index.tsx" ], "include": [ - "./optuna_dashboard/ts/types/**/*", - "./typescript_tests/**/*" + "./ts/types/**/*", + "./ts/tests/**/*" ], "types": ["node"] } diff --git a/optuna_dashboard/webpack.config.js b/optuna_dashboard/webpack.config.js index 41abca1b..56f989ad 100644 --- a/optuna_dashboard/webpack.config.js +++ b/optuna_dashboard/webpack.config.js @@ -28,9 +28,9 @@ const typeScriptLoader = var config = { mode, - entry: [__dirname + "/optuna_dashboard/ts/index.tsx"], + entry: [__dirname + "/ts/index.tsx"], output: { - path: __dirname + "/optuna_dashboard/public/", + path: __dirname + "/public/", filename: "bundle.js", publicPath: "/public/", },