From 588b82029c2c0a6eae37da837b6d861afed3f2c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Thu, 5 May 2022 09:33:30 +0200 Subject: [PATCH] tweak PR build script --- .github/workflows/PR_build_extension.yml | 7 ++++++- packages/vscode/.gitignore | 3 ++- packages/vscode/.vscodeignore | 3 ++- .../src/plugins/prisma-language-server/index.ts | 11 ++++++++--- scripts/update_package_json_file_PR_build.js | 2 +- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.github/workflows/PR_build_extension.yml b/.github/workflows/PR_build_extension.yml index afa64038a7..76404378a5 100644 --- a/.github/workflows/PR_build_extension.yml +++ b/.github/workflows/PR_build_extension.yml @@ -11,7 +11,6 @@ on: - '.github/CODEOWNERS' env: - PRISMA_USE_LOCAL_LS: true GH_TOKEN: ${{ secrets.GH_TOKEN }} ENVIRONMENT: ${{ secrets.ENVIRONMENT }} PRISMA_TELEMETRY_INFORMATION: 'language-tools PR_build_extension.yml' @@ -47,6 +46,12 @@ jobs: node scripts/update_package_json_file_PR_build.js env: PR_NUMBER: ${{ github.event.number }} + # So we can use the local language server and don't have to publish it to npm first + # Note that linked node_modules are not supported https://github.com/microsoft/vscode-vsce/issues/203 + - name: Copy language-server dist directory inside vscode package + run: | + cp -R packages/language-server packages/vscode + rm -R packages/vscode/language-server/src packages/vscode/language-server/test - name: Build vsix run: cd packages/vscode && npm run package -- --out=prisma.vsix diff --git a/packages/vscode/.gitignore b/packages/vscode/.gitignore index 82a320bee7..3d39b1ee34 100644 --- a/packages/vscode/.gitignore +++ b/packages/vscode/.gitignore @@ -2,4 +2,5 @@ /node_modules .envrc *.vsix -*.exe \ No newline at end of file +*.exe +language-server \ No newline at end of file diff --git a/packages/vscode/.vscodeignore b/packages/vscode/.vscodeignore index 51a053e94a..54f28d9923 100644 --- a/packages/vscode/.vscodeignore +++ b/packages/vscode/.vscodeignore @@ -5,4 +5,5 @@ src .eslintignore .eslintrc.js -.prettierignore \ No newline at end of file +.prettierignore +*.vsix \ No newline at end of file diff --git a/packages/vscode/src/plugins/prisma-language-server/index.ts b/packages/vscode/src/plugins/prisma-language-server/index.ts index 9081277297..63ffc41921 100644 --- a/packages/vscode/src/plugins/prisma-language-server/index.ts +++ b/packages/vscode/src/plugins/prisma-language-server/index.ts @@ -100,15 +100,20 @@ const plugin: PrismaVSCodePlugin = { console.debug('File Watcher was skipped, rootPath is falsy') } - if (isDebugMode() || isE2ETestOnPullRequest()) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + if (packageJson.name === 'prisma-insider-pr-build') { + console.log('Using local Language Server for prisma-insider-pr-build') + serverModule = context.asAbsolutePath(path.join('./language-server/dist/src/bin')) + } else if (isDebugMode() || isE2ETestOnPullRequest()) { // use Language Server from folder for debugging - console.log('Using local Language Server') + console.log('Using local Language Server from filesystem') serverModule = context.asAbsolutePath(path.join('../../packages/language-server/dist/src/bin')) } else { - console.log('Using published Language Server') + console.log('Using published Language Server (npm)') // use published npm package for production serverModule = require.resolve('@prisma/language-server/dist/src/bin') } + console.log(`serverModule: ${serverModule}`) // The debug options for the server // --inspect=6009: runs the server in Node's Inspector mode so VSCode can attach to the server for debugging diff --git a/scripts/update_package_json_file_PR_build.js b/scripts/update_package_json_file_PR_build.js index af33387b59..12def1675e 100644 --- a/scripts/update_package_json_file_PR_build.js +++ b/scripts/update_package_json_file_PR_build.js @@ -8,7 +8,7 @@ if (require.main === module) { // Change name so VS Code doesn't try to auto-update it to the current Insider version content['name'] = 'prisma-insider-pr-build' - content['displayName'] = `Prisma - Insider - PR ${process.env.PR_NUMBER} Build` + content['displayName'] = `Prisma - Insider - PR ${process.env.PR_NUMBER} Build - ${new Date().toISOString()}` writeJsonToPackageJson({ content: content, path: vscodePackageJsonPath }) }