summaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
authorNate Sesti <33237525+sestinj@users.noreply.github.com>2023-08-11 13:47:11 -0700
committerGitHub <noreply@github.com>2023-08-11 13:47:11 -0700
commit49e323bd9312e49e7149c8851d55241b4e24ef18 (patch)
tree41b89dba1c67e479236bdaa86d6606f99381c822 /extension
parent48ee1334dfd21dbe55cf66f39da1249619103e81 (diff)
parent34f77a7344bc527e0c08dea5820a01748f2f8481 (diff)
downloadsncontinue-49e323bd9312e49e7149c8851d55241b4e24ef18.tar.gz
sncontinue-49e323bd9312e49e7149c8851d55241b4e24ef18.tar.bz2
sncontinue-49e323bd9312e49e7149c8851d55241b4e24ef18.zip
Merge pull request #369 from continuedev/ci-testing
Ci testing
Diffstat (limited to 'extension')
-rw-r--r--extension/.vscodeignore4
-rw-r--r--extension/package-lock.json4
-rw-r--r--extension/package.json4
-rw-r--r--extension/react-app/package.json1
-rw-r--r--extension/react-app/src/components/ComboBox.tsx3
-rw-r--r--extension/react-app/src/redux/slices/serverStateReducer.ts6
-rw-r--r--extension/scripts/package.js42
-rw-r--r--extension/src/activation/environmentSetup.ts2
-rw-r--r--extension/src/continueIdeClient.ts13
-rw-r--r--extension/src/test-runner/runTestOnVSCodeHost.ts5
-rw-r--r--extension/src/test-suite/environmentSetup.test.ts17
11 files changed, 79 insertions, 22 deletions
diff --git a/extension/.vscodeignore b/extension/.vscodeignore
index d3326fdc..51d66585 100644
--- a/extension/.vscodeignore
+++ b/extension/.vscodeignore
@@ -24,4 +24,6 @@ react-app/src
scripts/data
scripts/env
-scripts/.continue_env_installed \ No newline at end of file
+scripts/.continue_env_installed
+
+server/exe/** \ No newline at end of file
diff --git a/extension/package-lock.json b/extension/package-lock.json
index c8b8d183..19d91123 100644
--- a/extension/package-lock.json
+++ b/extension/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "continue",
- "version": "0.0.297",
+ "version": "0.0.299",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "continue",
- "version": "0.0.297",
+ "version": "0.0.299",
"license": "Apache-2.0",
"dependencies": {
"@electron/rebuild": "^3.2.10",
diff --git a/extension/package.json b/extension/package.json
index 7480e33a..c5fc5b67 100644
--- a/extension/package.json
+++ b/extension/package.json
@@ -1,6 +1,7 @@
{
"name": "continue",
"icon": "media/terminal-continue.png",
+ "version": "0.0.299",
"repository": {
"type": "git",
"url": "https://github.com/continuedev/continue"
@@ -14,7 +15,6 @@
"displayName": "Continue",
"pricing": "Free",
"description": "The open-source coding autopilot",
- "version": "0.0.297",
"publisher": "Continue",
"engines": {
"vscode": "^1.67.0"
@@ -194,7 +194,7 @@
"lint": "eslint src --ext ts",
"build-test": "tsc && node esbuild.test.mjs",
"test": "npm run build-test && node ./out/test-runner/runTestOnVSCodeHost.js",
- "package": "npm install && npm run typegen && cd react-app && npm install && npm run build && cd .. && mkdir -p ./build && vsce package --out ./build"
+ "package": "node scripts/package.js"
},
"devDependencies": {
"@nestjs/common": "^8.4.7",
diff --git a/extension/react-app/package.json b/extension/react-app/package.json
index 38beb742..23cdf9bb 100644
--- a/extension/react-app/package.json
+++ b/extension/react-app/package.json
@@ -1,7 +1,6 @@
{
"name": "react-app",
"private": true,
- "version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
diff --git a/extension/react-app/src/components/ComboBox.tsx b/extension/react-app/src/components/ComboBox.tsx
index c75f9ee6..4e564000 100644
--- a/extension/react-app/src/components/ComboBox.tsx
+++ b/extension/react-app/src/components/ComboBox.tsx
@@ -487,7 +487,8 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
selected={downshiftProps.selectedItem === item}
>
<span>
- {item.name}:{" "}
+ {item.name}
+ {" "}
<span style={{ color: lightGray }}>{item.description}</span>
</span>
</Li>
diff --git a/extension/react-app/src/redux/slices/serverStateReducer.ts b/extension/react-app/src/redux/slices/serverStateReducer.ts
index bd60f1c7..a20476b2 100644
--- a/extension/react-app/src/redux/slices/serverStateReducer.ts
+++ b/extension/react-app/src/redux/slices/serverStateReducer.ts
@@ -9,9 +9,9 @@ const initialState: FullState = {
name: "Welcome to Continue",
hide: false,
description: `- Highlight code section and ask a question or give instructions
- - Use \`cmd+m\` (Mac) / \`ctrl+m\` (Windows) to open Continue
- - Use \`/help\` to ask questions about how to use Continue
- - [Customize Continue](https://continue.dev/docs/customization) (e.g. use your own API key) by typing '/config'.`,
+- Use \`cmd+m\` (Mac) / \`ctrl+m\` (Windows) to open Continue
+- Use \`/help\` to ask questions about how to use Continue
+- [Customize Continue](https://continue.dev/docs/customization) (e.g. use your own API key) by typing '/config'.`,
system_message: null,
chat_context: [],
manage_own_chat_context: false,
diff --git a/extension/scripts/package.js b/extension/scripts/package.js
new file mode 100644
index 00000000..59da9181
--- /dev/null
+++ b/extension/scripts/package.js
@@ -0,0 +1,42 @@
+const { exec } = require("child_process");
+const fs = require("fs");
+const path = require("path");
+
+exec("npm install", (error) => {
+ if (error) throw error;
+ console.log("npm install completed");
+
+ exec("npm run typegen", (error) => {
+ if (error) throw error;
+ console.log("npm run typegen completed");
+
+ process.chdir("react-app");
+
+ exec("npm install", (error) => {
+ if (error) throw error;
+ console.log("npm install in react-app completed");
+
+ exec("npm run build", (error) => {
+ if (error) throw error;
+ if (!fs.existsSync(path.join("dist", "assets", "index.js"))) {
+ throw new Error("react-app build did not produce index.js");
+ }
+ if (!fs.existsSync(path.join("dist", "assets", "index.css"))) {
+ throw new Error("react-app build did not produce index.css");
+ }
+ console.log("npm run build in react-app completed");
+
+ process.chdir("..");
+
+ if (!fs.existsSync("build")) {
+ fs.mkdirSync("build");
+ }
+
+ exec("vsce package --out ./build patch", (error) => {
+ if (error) throw error;
+ console.log("vsce package completed");
+ });
+ });
+ });
+ });
+});
diff --git a/extension/src/activation/environmentSetup.ts b/extension/src/activation/environmentSetup.ts
index f0e41ca9..748a5984 100644
--- a/extension/src/activation/environmentSetup.ts
+++ b/extension/src/activation/environmentSetup.ts
@@ -240,7 +240,7 @@ export async function startContinuePythonServer() {
windowsHide: true,
});
child.stdout.on("data", (data: any) => {
- console.log(`stdout: ${data}`);
+ // console.log(`stdout: ${data}`);
});
child.stderr.on("data", (data: any) => {
console.log(`stderr: ${data}`);
diff --git a/extension/src/continueIdeClient.ts b/extension/src/continueIdeClient.ts
index d89093ca..5b9e285d 100644
--- a/extension/src/continueIdeClient.ts
+++ b/extension/src/continueIdeClient.ts
@@ -12,7 +12,7 @@ import {
rejectSuggestionCommand,
} from "./suggestions";
import { FileEditWithFullContents } from "../schema/FileEditWithFullContents";
-import * as fs from 'fs';
+import * as fs from "fs";
import { WebsocketMessenger } from "./util/messenger";
import { diffManager } from "./diffs";
const os = require("os");
@@ -30,13 +30,12 @@ class IdeProtocolClient {
private _lastReloadTime: number = 16;
private _reconnectionTimeouts: NodeJS.Timeout[] = [];
- private _sessionId: string | null = null;
+ sessionId: string | null = null;
private _serverUrl: string;
private _newWebsocketMessenger() {
const requestUrl =
- this._serverUrl +
- (this._sessionId ? `?session_id=${this._sessionId}` : "");
+ this._serverUrl + (this.sessionId ? `?session_id=${this.sessionId}` : "");
const messenger = new WebsocketMessenger(requestUrl);
this.messenger = messenger;
@@ -383,7 +382,9 @@ class IdeProtocolClient {
async getUserSecret(key: string) {
// Check if secret already exists in VS Code settings (global)
let secret = vscode.workspace.getConfiguration("continue").get(key);
- if (typeof secret !== "undefined" && secret !== null) {return secret;}
+ if (typeof secret !== "undefined" && secret !== null) {
+ return secret;
+ }
// If not, ask user for secret
secret = await vscode.window.showInputBox({
@@ -420,7 +421,7 @@ class IdeProtocolClient {
console.log("Getting session ID");
const resp = await this.messenger?.sendAndReceive("getSessionId", {});
console.log("New Continue session with ID: ", resp.sessionId);
- this._sessionId = resp.sessionId;
+ this.sessionId = resp.sessionId;
return resp.sessionId;
}
diff --git a/extension/src/test-runner/runTestOnVSCodeHost.ts b/extension/src/test-runner/runTestOnVSCodeHost.ts
index 2a542ffc..21267c2d 100644
--- a/extension/src/test-runner/runTestOnVSCodeHost.ts
+++ b/extension/src/test-runner/runTestOnVSCodeHost.ts
@@ -11,7 +11,10 @@ async function main() {
// The path to test runner
// Passed to --extensionTestsPath
- const extensionTestsPath = path.resolve(extensionDevelopmentPath, "out/test-runner/mochaRunner");
+ const extensionTestsPath = path.resolve(
+ extensionDevelopmentPath,
+ "out/test-runner/mochaRunner"
+ );
// Download VS Code, unzip it and run the integration test
await runTests({ extensionDevelopmentPath, extensionTestsPath });
diff --git a/extension/src/test-suite/environmentSetup.test.ts b/extension/src/test-suite/environmentSetup.test.ts
index 9a478522..d0406340 100644
--- a/extension/src/test-suite/environmentSetup.test.ts
+++ b/extension/src/test-suite/environmentSetup.test.ts
@@ -2,18 +2,27 @@ import { test, describe } from "mocha";
import * as assert from "assert";
import { getContinueServerUrl } from "../bridge";
-import { startContinuePythonServer } from "../activation/environmentSetup";
+import { ideProtocolClient } from "../activation/activate";
import fetch from "node-fetch";
+import fkill from "fkill";
describe("Can start python server", () => {
test("Can start python server in under 10 seconds", async function () {
- this.timeout(17_000);
- await startContinuePythonServer();
+ const allowedTime = 25_000;
+ this.timeout(allowedTime + 10_000);
+ try {
+ fkill(65432, { force: true, silent: true });
+ console.log("Killed existing server");
+ } catch (e) {
+ console.log("No existing server: ", e);
+ }
- await new Promise((resolve) => setTimeout(resolve, 15_000));
+ // If successful, the server is started by the extension while we wait
+ await new Promise((resolve) => setTimeout(resolve, allowedTime));
// Check if server is running
const serverUrl = getContinueServerUrl();
+ console.log("Server URL: ", serverUrl);
const response = await fetch(`${serverUrl}/health`);
assert.equal(response.status, 200);
});