From 47d0abb4568515d9319d7111c46837525add4a9e Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Fri, 5 Sep 2025 08:59:59 -0400 Subject: [PATCH] feat: mise server checks --- .github/workflows/test.yml | 45 +++++------------ mise.lock | 8 +-- mise.toml | 99 +++++++++++++++++++++----------------- 3 files changed, 71 insertions(+), 81 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e3d2c9b0dc..45dfe61704 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -72,27 +72,12 @@ jobs: uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 with: persist-credentials: false - - name: Setup pnpm - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 - - name: Setup Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version-file: './server/.nvmrc' - cache: 'pnpm' - cache-dependency-path: '**/pnpm-lock.yaml' - - name: Run package manager install - run: pnpm install - - name: Run linter - run: pnpm lint - if: ${{ !cancelled() }} - - name: Run formatter - run: pnpm format - if: ${{ !cancelled() }} - - name: Run tsc - run: pnpm check - if: ${{ !cancelled() }} - - name: Run small tests & coverage - run: pnpm test + # - name: Setup Mise + # uses: immich-app/devtools/actions/use-mise@697a75e2c3186d3c037c2c159855cf2d566542ba # use-mise-action-0.0.1 + - name: Setup mise + uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2.0 + - name: Run small checks + run: mise run server:checks-small if: ${{ !cancelled() }} cli-unit-tests: name: Unit Test CLI @@ -332,18 +317,12 @@ jobs: uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 with: persist-credentials: false - - name: Setup pnpm - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 - - name: Setup Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version-file: './server/.nvmrc' - cache: 'pnpm' - cache-dependency-path: '**/pnpm-lock.yaml' - - name: Run pnpm install - run: SHARP_IGNORE_GLOBAL_LIBVIPS=true pnpm install --frozen-lockfile - - name: Run medium tests - run: pnpm test:medium + # - name: Setup Mise + # uses: immich-app/devtools/actions/use-mise@697a75e2c3186d3c037c2c159855cf2d566542ba # use-mise-action-0.0.1 + - name: Setup mise + uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2.0 + - name: Run medium checks + run: mise run server:checks-medium if: ${{ !cancelled() }} e2e-tests-server-cli: name: End-to-End Tests (Server & CLI) diff --git a/mise.lock b/mise.lock index 112b1ca6eb..34b9bb8df9 100644 --- a/mise.lock +++ b/mise.lock @@ -16,13 +16,13 @@ size = 8821083 url = "https://github.com/CQLabs/homebrew-dcm/releases/download/1.31.4/dcm-linux-x64-release.zip" [tools.node] -version = "22.18.0" +version = "22.19.0" backend = "core:node" [tools.node.platforms.linux-x64] -checksum = "sha256:a2e703725d8683be86bb5da967bf8272f4518bdaf10f21389e2b2c9eaeae8c8a" -size = 54824343 -url = "https://nodejs.org/dist/v22.18.0/node-v22.18.0-linux-x64.tar.gz" +checksum = "sha256:d36e56998220085782c0ca965f9d51b7726335aed2f5fc7321c6c0ad233aa96d" +size = 54907188 +url = "https://nodejs.org/dist/v22.19.0/node-v22.19.0-linux-x64.tar.gz" [tools.pnpm] version = "10.14.0" diff --git a/mise.toml b/mise.toml index 47acb66b21..d8209614fe 100644 --- a/mise.toml +++ b/mise.toml @@ -19,12 +19,12 @@ pin = true run = "pnpm install --filter github --frozen-lockfile" [tasks."github:format"] -env._.path = "./.github/node_modules/.bin" +env.PATH = "{{config_root}}/.github/node_modules/.bin:{{env.PATH}}" dir = ".github" run = "prettier --check ." [tasks."github:format-fix"] -env._.path = "./.github/node_modules/.bin" +env.PATH = "{{config_root}}/.github/node_modules/.bin:{{env.PATH}}" dir = ".github" run = "prettier --write ." @@ -33,17 +33,17 @@ run = "prettier --write ." run = "pnpm install --filter @immich/cli --frozen-lockfile" [tasks."cli:build"] -env._.path = "./cli/node_modules/.bin" +env.PATH = "{{config_root}}/cli/node_modules/.bin:{{env.PATH}}" dir = "cli" run = "vite build" [tasks."cli:test"] -env._.path = "./cli/node_modules/.bin" +env.PATH = "{{config_root}}/cli/node_modules/.bin:{{env.PATH}}" dir = "cli" run = "vite" [tasks."cli:lint"] -env._.path = "./cli/node_modules/.bin" +env.PATH = "{{config_root}}/cli/node_modules/.bin:{{env.PATH}}" dir = "cli" run = "eslint \"src/**/*.ts\" --max-warnings 0" @@ -51,17 +51,17 @@ run = "eslint \"src/**/*.ts\" --max-warnings 0" run = "mise run cli:lint --fix" [tasks."cli:format"] -env._.path = "./cli/node_modules/.bin" +env.PATH = "{{config_root}}/cli/node_modules/.bin:{{env.PATH}}" dir = "cli" run = "prettier --check ." [tasks."cli:format-fix"] -env._.path = "./cli/node_modules/.bin" +env.PATH = "{{config_root}}/cli/node_modules/.bin:{{env.PATH}}" dir = "cli" run = "prettier --write ." [tasks."cli:check"] -env._.path = "./cli/node_modules/.bin" +env.PATH = "{{config_root}}/cli/node_modules/.bin:{{env.PATH}}" dir = "cli" run = "tsc --noEmit" @@ -70,7 +70,7 @@ run = "tsc --noEmit" run = "pnpm install --filter @immich/sdk --frozen-lockfile" [tasks."sdk:build"] -env._.path = "./open-api/typescript-sdk/node_modules/.bin" +env.PATH = "{{config_root}}/open-api/typescript-sdk/node_modules/.bin:{{env.PATH}}" dir = "./open-api/typescript-sdk" run = "tsc" @@ -79,12 +79,12 @@ run = "tsc" run = "pnpm install --filter documentation --frozen-lockfile" [tasks."docs:start"] -env._.path = "./docs/node_modules/.bin" +env.PATH = "{{config_root}}/docs/node_modules/.bin:{{env.PATH}}" dir = "docs" run = "docusaurus --port 3005" [tasks."docs:build"] -env._.path = "./docs/node_modules/.bin" +env.PATH = "{{config_root}}/docs/node_modules/.bin:{{env.PATH}}" dir = "docs" run = [ "jq -c < ../open-api/immich-openapi-specs.json > ./static/openapi.json || exit 0", @@ -93,18 +93,18 @@ run = [ [tasks."docs:preview"] -env._.path = "./docs/node_modules/.bin" +env.PATH = "{{config_root}}/docs/node_modules/.bin:{{env.PATH}}" dir = "docs" run = "docusaurus serve" [tasks."docs:format"] -env._.path = "./docs/node_modules/.bin" +env.PATH = "{{config_root}}/docs/node_modules/.bin:{{env.PATH}}" dir = "docs" run = "prettier --check ." [tasks."docs:format-fix"] -env._.path = "./docs/node_modules/.bin" +env.PATH = "{{config_root}}/docs/node_modules/.bin:{{env.PATH}}" dir = "docs" run = "prettier --write ." @@ -114,27 +114,27 @@ run = "prettier --write ." run = "pnpm install --filter immich-e2e --frozen-lockfile" [tasks."e2e:test"] -env._.path = "./e2e/node_modules/.bin" +env.PATH = "{{config_root}}/e2e/node_modules/.bin:{{env.PATH}}" dir = "e2e" run = "vitest --run" [tasks."e2e:test-web"] -env._.path = "./e2e/node_modules/.bin" +env.PATH = "{{config_root}}/e2e/node_modules/.bin:{{env.PATH}}" dir = "e2e" run = "playwright test" [tasks."e2e:format"] -env._.path = "./e2e/node_modules/.bin" +env.PATH = "{{config_root}}/e2e/node_modules/.bin:{{env.PATH}}" dir = "e2e" run = "prettier --check ." [tasks."e2e:format-fix"] -env._.path = "./e2e/node_modules/.bin" +env.PATH = "{{config_root}}/e2e/node_modules/.bin:{{env.PATH}}" dir = "e2e" run = "prettier --write ." [tasks."e2e:lint"] -env._.path = "./e2e/node_modules/.bin" +env.PATH = "{{config_root}}/e2e/node_modules/.bin:{{env.PATH}}" dir = "e2e" run = "eslint \"src/**/*.ts\" --max-warnings 0" @@ -142,7 +142,7 @@ run = "eslint \"src/**/*.ts\" --max-warnings 0" run = "mise run e2e:lint --fix" [tasks."e2e:check"] -env._.path = "./e2e/node_modules/.bin" +env.PATH = "{{config_root}}/e2e/node_modules/.bin:{{env.PATH}}" dir = "e2e" run = "tsc --noEmit" @@ -159,32 +159,38 @@ run = "pnpm dlx sort-json ./i18n/*.json" run = "pnpm install --filter immich --frozen-lockfile" [tasks."server:build"] -env._.path = "./server/node_modules/.bin" +env.PATH = "{{config_root}}/server/node_modules/.bin:{{env.PATH}}" dir = "server" run = "nest build" [tasks."server:test"] -env._.path = "./server/node_modules/.bin" +env.PATH = "{{config_root}}/server/node_modules/.bin:{{env.PATH}}" dir = "server" -run = "vitest --config test/vitest.config.mjs" +run = [ + "pwd", + "ls -lh", + "echo $PATH", + "which vitest", + "vitest --config test/vitest.config.mjs", +] [tasks."server:test-medium"] -env._.path = "./server/node_modules/.bin" +env.PATH = "{{config_root}}/server/node_modules/.bin:{{env.PATH}}" dir = "server" run = "vitest --config test/vitest.config.medium.mjs" [tasks."server:format"] -env._.path = "./server/node_modules/.bin" +env.PATH = "{{config_root}}/server/node_modules/.bin:{{env.PATH}}" dir = "server" run = "prettier --check ." [tasks."server:format-fix"] -env._.path = "./server/node_modules/.bin" +env.PATH = "{{config_root}}/server/node_modules/.bin:{{env.PATH}}" dir = "server" run = "prettier --write ." [tasks."server:lint"] -env._.path = "./server/node_modules/.bin" +env.PATH = "{{config_root}}/server/node_modules/.bin:{{env.PATH}}" dir = "server" run = "eslint \"src/**/*.ts\" \"test/**/*.ts\" --max-warnings 0" @@ -192,7 +198,7 @@ run = "eslint \"src/**/*.ts\" \"test/**/*.ts\" --max-warnings 0" run = "mise run server:lint --fix" [tasks."server:check"] -env._.path = "./server/node_modules/.bin" +env.PATH = "{{config_root}}/server/node_modules/.bin:{{env.PATH}}" dir = "server" run = "tsc --noEmit" @@ -216,74 +222,79 @@ run = "mise run server:migrations query 'DROP schema public cascade; CREATE sche run = "mise run server:schema-drop && mise run server:migrations run" [tasks."server:email-dev"] -env._.path = "./server/node_modules/.bin" +env.PATH = "{{config_root}}/server/node_modules/.bin:{{env.PATH}}" dir = "server" run = "email dev -p 3050 --dir src/emails" -[tasks."server:checklist"] +[tasks."server:checks-small"] +depends = "server:install" run = [ - "mise run server:install", "mise run server:format", "mise run server:lint", "mise run server:check", - "mise run server:test-medium --run", "mise run server:test --run", ] +[tasks."server:checks-medium"] +depends = "server:install" +run = ["mise run server:test-medium --run"] + +[tasks."server:checks"] +run = ["mise run server:checks-small", "mise run server:checks-medium"] # web [tasks."web:install"] run = "pnpm install --filter immich-web --frozen-lockfile" [tasks."web:svelte-kit-sync"] -env._.path = "./web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "svelte-kit sync" [tasks."web:build"] -env._.path = "./web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "vite build" [tasks."web:build-stats"] env.BUILD_STATS = "true" -env._.path = "./web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "vite build" [tasks."web:preview"] -env._.path = "./web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "vite preview" [tasks."web:start"] -env._.path = "web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "vite dev --host 0.0.0.0 --port 3000" [tasks."web:test"] depends = "web:svelte-kit-sync" -env._.path = "web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "vitest" [tasks."web:format"] -env._.path = "web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "prettier --check ." [tasks."web:format-fix"] -env._.path = "web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "prettier --write ." [tasks."web:lint"] -env._.path = "web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "eslint . --max-warnings 0" [tasks."web:lint-p"] -env._.path = "web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "eslint-p . --max-warnings 0 --concurrency=4" @@ -292,13 +303,13 @@ run = "mise run web:lint --fix" [tasks."web:check"] depends = "web:svelte-kit-sync" -env._.path = "web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "tsc --noEmit" [tasks."web:check-svelte"] depends = "web:svelte-kit-sync" -env._.path = "web/node_modules/.bin" +env.PATH = "{{config_root}}/web/node_modules/.bin:{{env.PATH}}" dir = "web" run = "svelte-check --no-tsconfig --fail-on-warnings --compiler-warnings 'reactive_declaration_non_reactive_property:ignore' --ignore src/lib/components/photos-page/asset-grid.svelte"