diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index df3a3d7cf2..44a3f8d4d3 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -192,6 +192,8 @@ jobs: - run: CI=false pnpm run copy-project-files + - run: pnpm run install-agent-skills + - name: create site-config-envs run: pnpm run create-site-configs-env diff --git a/AGENTS.md b/AGENTS.md index 1a5e188a59..880b5d50e2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,14 +10,14 @@ When running in the cloud/web environment and repo is cloned from scratch, if required you can: -1. Install dependencies +1. Install dependencies (**only** run if not yet done by eg. pipeline setup, check if `node_modules` exists) - `NODE_USE_ENV_PROXY=1 ./install.sh` -2. Run build for packages you are working on +2. Run build for packages you are working on (**only** run if build file doesn't exist yet, check if `lib` exists in package) - `pnpm --recursive --filter '' run build` **If Docker is available:** -- You can start the full demo application using dev-pm and access it at localhost +- You can start the full demo application using dev-pm and access it at localhost. Do **not** use docker compose directly, always use dev-pm and start `demo-docker`. **If Docker is not available:** @@ -83,22 +83,35 @@ This repository includes a demo application which is showcasing the libraries. **Api:** Demo backend API (NestJS, PostgreSQL) -- Start using `pnpm exec dev-pm @demo-api` +- Start using `pnpm exec dev-pm start @demo-api` - access at: http://localhost:4000/ **Admin:** Demo admin app (Vite, React, Apollo) -- Start using `pnpm exec dev-pm @demo-admin` +- Start using `pnpm exec dev-pm start @demo-admin` - access at: http://localhost:8000/ - Usually Login as "Admin" in the IDP Login Page **Site:** Demo frontend site (Next.js) -- Start using `pnpm exec dev-pm @demo-site` +- Start using `pnpm exec dev-pm start @demo-site` - access at: http://localhost:3000/ + +### dev-pm + +Use dev-pm for managing demo processes: +- command: `pnpm exec -- dev-pm` +- config: `dev-pm.config.ts` + +Common commands: +- start script/service: `pnpm exec -- dev-pm start scriptName` +- start group `pnpm exec -- dev-pm start @group` +- view status `pnpm exec -- dev-pm status` +- view logs `pnpm exec -- dev-pm logs --lines 100 scriptName` + ## Packages ### Admin (`packages/admin/`) diff --git a/demo/api/package.json b/demo/api/package.json index b18fda2ca2..7739ca9beb 100644 --- a/demo/api/package.json +++ b/demo/api/package.json @@ -21,10 +21,11 @@ "intl:compile": "pnpm run intl:compile:comet-demo", "intl:compile:comet-demo": "formatjs compile-folder --format simple --ast lang/comet-demo-lang/api lang-compiled/comet-demo-api", "intl:extract": "formatjs extract \"src/**/*.ts*\" --ignore '**/*.{test,spec}.{ts,tsx}' --ignore ./**.d.ts --out-file lang-extracted/en.json --format simple --throws", - "lint": "pnpm run api-generator && pnpm run intl:compile && run-p lint:prettier lint:eslint lint:tsc", - "lint:ci": "pnpm run api-generator && pnpm run intl:compile && run-p lint:prettier lint:eslint lint:tsc lint:generated-files-not-modified", + "lint": "pnpm run api-generator && pnpm run intl:compile && run-p lint:prettier lint:eslint lint:tsc lint:api-can-start", + "lint:api-can-start": "MIKRO_ORM_NO_CONNECT=true dotenv -e ../../.env.secrets -e ../../.env.local -e ../../.env -e ../.env.site-configs -- ts-node --transpile-only -r tsconfig-paths/register src/console.ts --help", + "lint:ci": "pnpm run api-generator && pnpm run intl:compile && run-p lint:prettier lint:eslint lint:tsc lint:api-can-start && pnpm run lint:generated-files-not-modified", "lint:eslint": "eslint --max-warnings 0 src/ '**/*.json' --no-warn-ignored", - "lint:generated-files-not-modified": "git diff --exit-code HEAD -- $(find src -type f -path '*/generated/*')", + "lint:generated-files-not-modified": "git diff --exit-code HEAD -- schema.gql block-meta.json $(find src -type f -path '*/generated/*')", "lint:prettier": "pnpm exec prettier --check '*.{ts,js,json,md,yml,yaml}'", "lint:tsc": "tsc --project ./tsconfig.lint.json", "mikro-orm": "dotenv -e .env.secrets -e .env.local -e .env -e .env.site-configs -- mikro-orm", diff --git a/demo/api/src/db/ormconfig.ts b/demo/api/src/db/ormconfig.ts index 381758bc16..8b9b779199 100644 --- a/demo/api/src/db/ormconfig.ts +++ b/demo/api/src/db/ormconfig.ts @@ -18,6 +18,7 @@ export const ormConfig = createOrmConfig( }, namingStrategy: EntityCaseNamingStrategy, debug: false, + connect: process.env.MIKRO_ORM_NO_CONNECT !== "true", dataloader: DataloaderType.ALL, discovery: { getMappedType(type: string, platform) { diff --git a/dev-pm.config.ts b/dev-pm.config.ts index 36005d6914..3e28ad8776 100644 --- a/dev-pm.config.ts +++ b/dev-pm.config.ts @@ -195,6 +195,17 @@ export default defineConfig({ group: ["demo-admin", "demo"], waitOn: ["tcp:$API_PORT"], }, + { + name: "demo-oidc-provider", + script: "pnpm run dev:oidc-provider", + group: ["demo-admin", "demo"], + }, + { + name: "demo-oauth2-proxy", + script: "pnpm run dev:oauth2-proxy", + group: ["demo-admin", "demo"], + waitOn: ["tcp:$IDP_PORT", "tcp:$ADMIN_PORT"], + }, //group demo api { @@ -223,20 +234,6 @@ export default defineConfig({ { name: "demo-api-storybook", script: "pnpm --filter comet-demo-api run storybook", - group: ["demo-api", "demo"], - }, - - // group demo login - { - name: "demo-oidc-provider", - script: "pnpm run dev:oidc-provider", - group: ["demo-login", "demo"], - }, - { - name: "demo-oauth2-proxy", - script: "pnpm run dev:oauth2-proxy", - group: ["demo-login", "demo"], - waitOn: ["tcp:$IDP_PORT", "tcp:$ADMIN_PORT"], }, //group demo site diff --git a/package.json b/package.json index c8f2be73f5..36804db496 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,8 @@ "browser:demo:admin": "dotenv -- sh -c 'open-cli $ADMIN_URL'", "browser:demo:site": "dotenv -- sh -c 'open-cli $SITE_URL'", "browser:demo:jaeger": "dotenv -- sh -c 'open-cli http://localhost:$JAEGER_UI_PORT'", + "setup:ci": "pnpm --filter '@comet/cli' --filter '@comet/eslint-plugin' run build && pnpm run create-site-configs-env && pnpm run copy-project-files", "install-agent-skills": "pnpm exec comet install-agent-skills --config agent-skills.json", - "setup:ci": "pnpm run copy-project-files", "setup:download-oauth2-proxy": "dotenv -- sh -c 'pnpm exec comet download-oauth2-proxy -v $OAUTH2_PROXY_VERSION'", "setup:download-mitmproxy": "dotenv -- sh -c 'pnpm exec comet download-mitmproxy -v $MITMPROXY_VERSION'" },