From d428e25d0153ff254bf06fc5c6f80781cc31e20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BITARD=20Micha=C3=ABl?= <michael.bitard@beta.gouv.fr> Date: Thu, 6 Mar 2025 13:49:32 +0000 Subject: [PATCH] chore(CI): contourne les nouvelles contraintes de la CI (pub/pnm-public/camino!1660) --- .gitlab/ci/doc.yml | 5 ++-- .gitlab/ci/ui.yml | 5 +++- Makefile | 3 +-- knip.ts | 1 + packages/api/package.json | 4 ++-- packages/api/vitest.integration.config.ts | 29 +++++++++++++++++++++++ packages/api/vitest.unit.config.ts | 12 ++++++++++ packages/api/vitest.workspace.ts | 26 -------------------- 8 files changed, 52 insertions(+), 33 deletions(-) create mode 100644 packages/api/vitest.integration.config.ts create mode 100644 packages/api/vitest.unit.config.ts delete mode 100644 packages/api/vitest.workspace.ts diff --git a/.gitlab/ci/doc.yml b/.gitlab/ci/doc.yml index 64a91b980..2f879b55f 100644 --- a/.gitlab/ci/doc.yml +++ b/.gitlab/ci/doc.yml @@ -1,5 +1,6 @@ doc/build-image: - stage: build + # On le met au début car c'est utilisé dans les tests de storybook + stage: prepare needs: [] extends: - .rule-build-and-push @@ -7,4 +8,4 @@ doc/build-image: image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] - script: /kaniko/executor --context "$CI_PROJECT_DIR" --build-arg GIT_SHA=${CI_COMMIT_SHA} --dockerfile "$CI_PROJECT_DIR/Dockerfile.docs" --destination "caminofr/camino-docs:${CI_COMMIT_SHA}" ${KANIKO_POST_PARAM} + script: /kaniko/executor --context "$CI_PROJECT_DIR" --build-arg GIT_SHA=${CI_COMMIT_SHA} --dockerfile "$CI_PROJECT_DIR/Dockerfile.docs" --destination "caminofr/camino-docs:${CI_COMMIT_SHA}" diff --git a/.gitlab/ci/ui.yml b/.gitlab/ci/ui.yml index b5d0314f6..08e9d84e1 100644 --- a/.gitlab/ci/ui.yml +++ b/.gitlab/ci/ui.yml @@ -10,8 +10,11 @@ ui/test-storybook: extends: .prepare-node-run stage: test retry: 2 + services: + - name: caminofr/camino-docs:${CI_COMMIT_SHA} + alias: storybook script: - - make storybook/build + - ./.gitlab/wait-for-it.sh -h localhost -p 80 -t 60 -- echo 'done' - make storybook/test ui/build-and-push-image: stage: build diff --git a/Makefile b/Makefile index 367486864..0a679a87e 100644 --- a/Makefile +++ b/Makefile @@ -57,8 +57,7 @@ storybook/test: ifndef CI npm run storybook:test -w packages/ui else -# TODO 2024-07-04 on peut surement mieux faire, avec un sidecar - npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" "npx http-server packages/ui/storybook-static --port 6006 --silent" "npx wait-on tcp:6006 && npm run storybook:test -w packages/ui" + npm run storybook:test -w packages/ui -- --url http://localhost/storybook/ endif test/common: diff --git a/knip.ts b/knip.ts index c6cba42ae..08fd43dd2 100644 --- a/knip.ts +++ b/knip.ts @@ -42,6 +42,7 @@ const config = { "@vitest/coverage-v8", "eslint-config-prettier", "eslint-plugin-promise", + "vite", ], }, "packages/common": { diff --git a/packages/api/package.json b/packages/api/package.json index 5ddae96cf..380213a25 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -29,8 +29,8 @@ "lint": "prettier --write . && eslint --fix .", "start": "node --enable-source-maps --loader ts-node/esm/transpile-only ./src/index.ts", "test": "vitest", - "test:unit": "vitest --project unit", - "test:integration": "vitest --project integration", + "test:unit": "vitest --config ./vitest.unit.config.ts", + "test:integration": "vitest --config ./vitest.integration.config.ts", "test:generate-data": "node --enable-source-maps --loader ts-node/esm/transpile-only src/tools/demarches/tests-creation.ts", "test:generate-phase-data": "node --enable-source-maps --loader ts-node/esm/transpile-only src/tools/phases/tests-creation.ts", "test:generate-matrices-data": "node --enable-source-maps --loader ts-node/esm/transpile-only src/tools/matrices/tests-creation.ts", diff --git a/packages/api/vitest.integration.config.ts b/packages/api/vitest.integration.config.ts new file mode 100644 index 000000000..8ddfe9ba1 --- /dev/null +++ b/packages/api/vitest.integration.config.ts @@ -0,0 +1,29 @@ +/// <reference types="vitest" /> +import { defineConfig } from 'vite' +import { testEnv } from './test-env' +import path from 'path' +const poolOptions = + process.env.CI === 'true' + ? { + poolOptions: { + threads: { + minThreads: 1, + maxThreads: 5, + }, + }, + } + : {} +export default defineConfig({ + test: { + environment: 'node', + root: 'src/', + name: 'integration', + include: ['**/*.test.integration.ts'], + setupFiles: path.resolve(__dirname, './tests/vitestSetup.ts'), + testTimeout: 10000, + hookTimeout: 45000, + env: testEnv, + pool: 'threads', + ...poolOptions, + }, +}) diff --git a/packages/api/vitest.unit.config.ts b/packages/api/vitest.unit.config.ts new file mode 100644 index 000000000..705b5cee2 --- /dev/null +++ b/packages/api/vitest.unit.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'vitest/config' +import path from 'path' +import { testEnv } from './test-env' + +export default defineConfig({ + test: { + environment: 'node', + root: 'src/', + setupFiles: path.resolve(__dirname, './tests/vitestSetup.ts'), + env: testEnv, + }, +}) diff --git a/packages/api/vitest.workspace.ts b/packages/api/vitest.workspace.ts deleted file mode 100644 index 89d2e7d25..000000000 --- a/packages/api/vitest.workspace.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { defineWorkspace } from 'vitest/config' -import path from 'path' -import { testEnv } from './test-env' - -export default defineWorkspace([ - { - test: { - setupFiles: path.resolve(__dirname, './tests/vitestSetup.ts'), - env: testEnv, - environment: 'node', - pool: 'threads', - root: 'src', - name: 'unit', - }, - }, - { - test: { - name: 'integration', - include: ['**/*.test.integration.ts'], - setupFiles: path.resolve(__dirname, './tests/vitestSetup.ts'), - testTimeout: 10000, - hookTimeout: 45000, - env: testEnv, - }, - }, -]) -- GitLab