diff --git a/WORKSPACE.yaml b/WORKSPACE.yaml index d05d5ee9c5..5baaefce7a 100644 --- a/WORKSPACE.yaml +++ b/WORKSPACE.yaml @@ -7,6 +7,10 @@ defaultArgs: localAppVersion: unknown defaultVariant: + srcs: + exclude: + # Make sure we don't include node_modules/**/*.ts by accident + - "**/node_modules/**" config: go: lintCommand: ["golangci-lint", "run", "--disable", "govet,errcheck,typecheck,staticcheck", "--allow-parallel-runners"] diff --git a/components/ee/db-sync/BUILD.yaml b/components/ee/db-sync/BUILD.yaml index 3f33683c61..a9d8f0f9c8 100644 --- a/components/ee/db-sync/BUILD.yaml +++ b/components/ee/db-sync/BUILD.yaml @@ -28,7 +28,7 @@ packages: - name: dbtest type: yarn srcs: - - "src/**/*.ts" + - "**/*.ts" - package.json - mocha.opts deps: @@ -37,7 +37,7 @@ packages: - components/gitpod-protocol:lib config: packaging: library - yarnLock: ../../../yarn.lock + yarnLock: ${coreYarnLockBase}/../yarn.lock tsconfig: tsconfig.json commands: test: ["yarn", "db-test"] diff --git a/components/ee/db-sync/package.json b/components/ee/db-sync/package.json index 8c15578fa9..75f84cee1a 100644 --- a/components/ee/db-sync/package.json +++ b/components/ee/db-sync/package.json @@ -10,8 +10,8 @@ "rebuild": "yarn build:clean", "build:watch": "watch 'yarn build' .", "watch": "leeway exec --package .:app --transitive-dependencies --filter-type yarn --components --parallel -- tsc -w --preserveWatchOutput", - "db-test": "r(){ export DB_ENCRYPTION_KEYS='[{\"name\":\"general\",\"version\":1,\"primary\":true,\"material\":\"5vRrp0H4oRgdkPnX1qQcS54Q0xggr6iyho42IQ1rO+c=\"}]';export DB_PORT=23306;export DB_USER=root;export DB_PASSWORD=test; yarn db-test-run;}; r", - "db-test-run": "mocha --opts mocha.opts '**/*.spec.db.ts'", + "db-test": "r(){ . $(leeway run components/gitpod-db:db-test-env); yarn db-test-run;}; r", + "db-test-run": "mocha --opts mocha.opts '**/*.spec.db.ts' --exclude './node_modules/**'", "clean": "yarn run rimraf lib", "clean:node": "yarn run rimraf node_modules", "purge": "yarn clean && yarn clean:node && yarn run rimraf yarn.lock", diff --git a/components/ee/payment-endpoint/BUILD.yaml b/components/ee/payment-endpoint/BUILD.yaml index 11d37c3f48..6c53a8cc83 100644 --- a/components/ee/payment-endpoint/BUILD.yaml +++ b/components/ee/payment-endpoint/BUILD.yaml @@ -24,6 +24,7 @@ packages: deps: - components/gitpod-db:lib - components/gitpod-protocol:lib + - :dbtest config: packaging: library yarnLock: ${coreYarnLockBase}/../yarn.lock @@ -39,6 +40,23 @@ packages: image: - ${imageRepoBase}/payment-endpoint:${version} - ${imageRepoBase}/payment-endpoint:${__pkg_version} + - name: dbtest + type: yarn + srcs: + - "**/*.ts" + - package.json + - mocha.opts + deps: + - components/gitpod-db:dbtest-init + - components/gitpod-db:lib + - components/gitpod-protocol:lib + config: + packaging: library + yarnLock: ${coreYarnLockBase}/../yarn.lock + tsconfig: tsconfig.json + commands: + test: ["yarn", "db-test"] + build: ["npx", "tsc"] scripts: - name: telepresence script: |- diff --git a/components/ee/payment-endpoint/package.json b/components/ee/payment-endpoint/package.json index 45548903c8..4ebf5dd786 100644 --- a/components/ee/payment-endpoint/package.json +++ b/components/ee/payment-endpoint/package.json @@ -50,7 +50,9 @@ "debug:local": "yarn debug", "debug-brk": "nodemon -w ./lib --inspect-brk ./lib/main.js", "telepresence": "leeway run .:telepresence", - "test": "mocha --opts mocha.opts './**/*.spec.ts' --exclude './node_modules/**'" + "test": "mocha --opts mocha.opts './**/*.spec.ts' --exclude './node_modules/**'", + "db-test": "r(){ . $(leeway run components/gitpod-db:db-test-env); yarn db-test-run;}; r", + "db-test-run": "mocha --opts mocha.opts '**/*.spec.db.ts' --exclude './node_modules/**'" }, "files": [ "/lib" diff --git a/components/gitpod-db/BUILD.yaml b/components/gitpod-db/BUILD.yaml index b647252023..005b224e33 100644 --- a/components/gitpod-db/BUILD.yaml +++ b/components/gitpod-db/BUILD.yaml @@ -36,7 +36,7 @@ packages: - name: dbtest type: yarn srcs: - - "src/**/*.ts" + - "**/*.ts" - package.json - mocha.opts deps: @@ -78,3 +78,13 @@ packages: image: - ${imageRepoBase}/db-migrations:${version} - ${imageRepoBase}/db-migrations:${__pkg_version} +scripts: +- name: db-test-env + description: "Creates a file with env vars necessary for running DB tests. The file delets itself after being sourced. Usage: '. $(leeway run components/gitpod-db:db-test-env)'" + deps: [] + script: | + TMP="$(mktemp)" + echo '#!/bin/bash' > $TMP + echo 'export DB_ENCRYPTION_KEYS="[{\"name\":\"general\",\"version\":1,\"primary\":true,\"material\":\"5vRrp0H4oRgdkPnX1qQcS54Q0xggr6iyho42IQ1rO+c=\"}]";export DB_HOST=127.0.0.1;export DB_PORT=23306;export DB_USER=root;export DB_PASSWORD=test;' >> $TMP + echo "rm -f $TMP" >> $TMP + echo $TMP diff --git a/components/gitpod-db/package.json b/components/gitpod-db/package.json index 2fd2fbac96..d08ad8a26b 100644 --- a/components/gitpod-db/package.json +++ b/components/gitpod-db/package.json @@ -9,9 +9,8 @@ "rebuild": "yarn build:clean", "build:watch": "watch 'yarn build' .", "watch": "leeway exec --package .:lib --transitive-dependencies --filter-type yarn --components --parallel -- tsc -w --preserveWatchOutput", - "db-test": "r(){ export DB_ENCRYPTION_KEYS='[{\"name\":\"general\",\"version\":1,\"primary\":true,\"material\":\"5vRrp0H4oRgdkPnX1qQcS54Q0xggr6iyho42IQ1rO+c=\"}]';export DB_HOST=127.0.0.1;export DB_PORT=23306;export DB_USER=root;export DB_PASSWORD=test; yarn db-test-run; };r", - "db-test-run": "mocha --opts mocha.opts '**/*.spec.db.ts'", - "db-test-init": "r(){ export DB_ENCRYPTION_KEYS='[{\"name\":\"general\",\"version\":1,\"primary\":true,\"material\":\"5vRrp0H4oRgdkPnX1qQcS54Q0xggr6iyho42IQ1rO+c=\"}]';export DB_HOST=127.0.0.1;export DB_PORT=23306;export DB_USER=root;export DB_PASSWORD=test;find . -name \"*.sql\" | xargs cat | mysql -h $DB_HOST -P $DB_PORT -p$DB_PASSWORD -u root && yarn typeorm migrations:run; };r", + "db-test": "r(){ . $(leeway run components/gitpod-db:db-test-env); yarn db-test-run; };r", + "db-test-run": "mocha --opts mocha.opts '**/*.spec.db.ts' --exclude './node_modules/**'", "wait-for-db": "node ./lib/wait-for-db.js", "typeorm": "typeorm -f lib/typeorm/ormconfig", "clean": "yarn run rimraf lib", diff --git a/components/server/BUILD.yaml b/components/server/BUILD.yaml index 954537894a..073ac94020 100644 --- a/components/server/BUILD.yaml +++ b/components/server/BUILD.yaml @@ -48,6 +48,7 @@ packages: - components/image-builder-api/typescript:lib - components/licensor/typescript:lib - components/ws-manager-api/typescript:lib + - :dbtest config: packaging: library yarnLock: ${coreYarnLockBase}/yarn.lock @@ -55,6 +56,29 @@ packages: commands: test: ["yarn", "test"] build: ["npx", "tsc"] + - name: dbtest + type: yarn + srcs: + - "**/*.ts" + - package.json + - mocha.opts + deps: + - components/gitpod-db:dbtest-init + - components/gitpod-db:lib + - components/content-service-api/typescript:lib + - components/gitpod-messagebus:lib + - components/ee/payment-endpoint:lib + - components/gitpod-protocol:lib + - components/image-builder-api/typescript:lib + - components/licensor/typescript:lib + - components/ws-manager-api/typescript:lib + config: + packaging: library + yarnLock: ${coreYarnLockBase}/yarn.lock + tsconfig: tsconfig.json + commands: + test: ["yarn", "db-test"] + build: ["npx", "tsc"] scripts: - name: telepresence script: | diff --git a/components/server/package.json b/components/server/package.json index 253fb97e9b..b3ac794d5f 100644 --- a/components/server/package.json +++ b/components/server/package.json @@ -18,7 +18,8 @@ "clean:node": "rimraf node_modules", "purge": "yarn clean && yarn clean:node && yarn run rimraf yarn.lock", "test": "mocha --opts mocha.opts './**/*.spec.ts' --exclude './node_modules/**'", - "db-test-run": "mocha --opts mocha.opts '**/*.spec.db.ts'", + "db-test": "r(){ . $(leeway run components/gitpod-db:db-test-env); yarn db-test-run; };r", + "db-test-run": "mocha --opts mocha.opts '**/*.spec.db.ts' --exclude './node_modules/**'", "telepresence": "leeway run .:telepresence", "graphql-codegen": "graphql-codegen --config src/ee/graphql/graphql-codegen.yml" },