Compare commits

..

7 Commits

Author SHA1 Message Date
Olivier Benz
442db744d5 Update Code to 1.118.1 (#7783) 2026-05-06 14:18:46 -08:00
Asher
871f1d9048 Skip webkit in e2e tests for now 2026-05-06 12:12:54 -08:00
Asher
f6bd6aa1a4 Update Playwright to 1.59.1 2026-05-06 11:50:06 -08:00
Asher
2787a5ca5d Set debug level for e2e tests 2026-05-06 11:38:07 -08:00
Olivier Benz
dbd25c945c Update Code to 1.118.0 (#7768) 2026-05-05 13:13:54 -08:00
nom3ad
02f4d6ea0b Add ubuntu:resolute 26.04 docker image (#7764) 2026-04-27 09:59:20 -08:00
nom3ad
80a642f511 Update ubuntu tag to noble 24.04 (#7763) 2026-04-27 09:35:06 -08:00
13 changed files with 98 additions and 52 deletions

View File

@@ -213,6 +213,8 @@ jobs:
test-e2e: test-e2e:
name: Run e2e tests name: Run e2e tests
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
env:
LOG_LEVEL: debug
needs: [changes, build] needs: [changes, build]
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.deps == 'true' || needs.changes.outputs.ci == 'true' if: needs.changes.outputs.code == 'true' || needs.changes.outputs.deps == 'true' || needs.changes.outputs.ci == 'true'
@@ -248,6 +250,7 @@ jobs:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LOG_LEVEL: debug
needs: [changes, build] needs: [changes, build]
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.deps == 'true' || needs.changes.outputs.ci == 'true' if: needs.changes.outputs.code == 'true' || needs.changes.outputs.deps == 'true' || needs.changes.outputs.ci == 'true'

View File

@@ -20,6 +20,7 @@ group "default" {
"code-server-debian-12", "code-server-debian-12",
"code-server-ubuntu-focal", "code-server-ubuntu-focal",
"code-server-ubuntu-noble", "code-server-ubuntu-noble",
"code-server-ubuntu-resolute",
"code-server-fedora-39", "code-server-fedora-39",
"code-server-opensuse-tumbleweed", "code-server-opensuse-tumbleweed",
] ]
@@ -73,7 +74,6 @@ target "code-server-debian-12" {
target "code-server-ubuntu-focal" { target "code-server-ubuntu-focal" {
dockerfile = "ci/release-image/Dockerfile" dockerfile = "ci/release-image/Dockerfile"
tags = concat( tags = concat(
gen_tags_for_docker_and_ghcr("ubuntu"),
gen_tags_for_docker_and_ghcr("focal"), gen_tags_for_docker_and_ghcr("focal"),
) )
args = { args = {
@@ -86,6 +86,7 @@ target "code-server-ubuntu-noble" {
dockerfile = "ci/release-image/Dockerfile" dockerfile = "ci/release-image/Dockerfile"
tags = concat( tags = concat(
gen_tags_for_docker_and_ghcr("noble"), gen_tags_for_docker_and_ghcr("noble"),
gen_tags_for_docker_and_ghcr("ubuntu"),
) )
args = { args = {
BASE = "ubuntu:noble" BASE = "ubuntu:noble"
@@ -93,6 +94,17 @@ target "code-server-ubuntu-noble" {
platforms = ["linux/amd64", "linux/arm64"] platforms = ["linux/amd64", "linux/arm64"]
} }
target "code-server-ubuntu-resolute" {
dockerfile = "ci/release-image/Dockerfile"
tags = concat(
gen_tags_for_docker_and_ghcr("resolute"),
)
args = {
BASE = "ubuntu:resolute"
}
platforms = ["linux/amd64", "linux/arm64"]
}
target "code-server-fedora-39" { target "code-server-fedora-39" {
dockerfile = "ci/release-image/Dockerfile.fedora" dockerfile = "ci/release-image/Dockerfile.fedora"
tags = concat( tags = concat(

28
package-lock.json generated
View File

@@ -14,7 +14,7 @@
"argon2": "^0.44.0", "argon2": "^0.44.0",
"compression": "^1.7.4", "compression": "^1.7.4",
"cookie-parser": "^1.4.6", "cookie-parser": "^1.4.6",
"env-paths": "^4.0.0", "env-paths": "^2.2.1",
"express": "^5.0.1", "express": "^5.0.1",
"http-proxy": "^1.18.1", "http-proxy": "^1.18.1",
"httpolyglot": "^0.1.2", "httpolyglot": "^0.1.2",
@@ -2316,18 +2316,12 @@
} }
}, },
"node_modules/env-paths": { "node_modules/env-paths": {
"version": "4.0.0", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-4.0.0.tgz", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"license": "MIT", "license": "MIT",
"dependencies": {
"is-safe-filename": "^0.1.0"
},
"engines": { "engines": {
"node": ">=20" "node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/es-abstract": { "node_modules/es-abstract": {
@@ -3996,18 +3990,6 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/is-safe-filename": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-safe-filename/-/is-safe-filename-0.1.1.tgz",
"integrity": "sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==",
"license": "MIT",
"engines": {
"node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-set": { "node_modules/is-set": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",

View File

@@ -71,7 +71,7 @@
"argon2": "^0.44.0", "argon2": "^0.44.0",
"compression": "^1.7.4", "compression": "^1.7.4",
"cookie-parser": "^1.4.6", "cookie-parser": "^1.4.6",
"env-paths": "^4.0.0", "env-paths": "^2.2.1",
"express": "^5.0.1", "express": "^5.0.1",
"http-proxy": "^1.18.1", "http-proxy": "^1.18.1",
"httpolyglot": "^0.1.2", "httpolyglot": "^0.1.2",

View File

@@ -78,7 +78,7 @@ Index: code-server/lib/vscode/src/vs/platform/environment/common/argv.ts
=================================================================== ===================================================================
--- code-server.orig/lib/vscode/src/vs/platform/environment/common/argv.ts --- code-server.orig/lib/vscode/src/vs/platform/environment/common/argv.ts
+++ code-server/lib/vscode/src/vs/platform/environment/common/argv.ts +++ code-server/lib/vscode/src/vs/platform/environment/common/argv.ts
@@ -145,6 +145,7 @@ export interface NativeParsedArgs { @@ -149,6 +149,7 @@ export interface NativeParsedArgs {
'disable-chromium-sandbox'?: boolean; 'disable-chromium-sandbox'?: boolean;
sandbox?: boolean; sandbox?: boolean;
'enable-coi'?: boolean; 'enable-coi'?: boolean;

View File

@@ -2,7 +2,7 @@ Index: code-server/lib/vscode/build/gulpfile.extensions.ts
=================================================================== ===================================================================
--- code-server.orig/lib/vscode/build/gulpfile.extensions.ts --- code-server.orig/lib/vscode/build/gulpfile.extensions.ts
+++ code-server/lib/vscode/build/gulpfile.extensions.ts +++ code-server/lib/vscode/build/gulpfile.extensions.ts
@@ -287,6 +287,29 @@ export const compileCopilotExtensionBuil @@ -293,6 +293,29 @@ export const compileCopilotExtensionBuil
gulp.task(compileCopilotExtensionBuildTask); gulp.task(compileCopilotExtensionBuildTask);
/** /**
@@ -40,7 +40,7 @@ Index: code-server/lib/vscode/build/lib/extensions.ts
import { type IExtensionDefinition, getExtensionStream } from './builtInExtensions.ts'; import { type IExtensionDefinition, getExtensionStream } from './builtInExtensions.ts';
import { fetchUrls, fetchGithub } from './fetch.ts'; import { fetchUrls, fetchGithub } from './fetch.ts';
import { createTsgoStream, spawnTsgo } from './tsgo.ts'; import { createTsgoStream, spawnTsgo } from './tsgo.ts';
+import { prepareBuiltInCopilotExtensionShims } from './copilot.ts'; +import { prepareBuiltInCopilotRipgrepShim } from './copilot.ts';
import vzip from 'gulp-vinyl-zip'; import vzip from 'gulp-vinyl-zip';
import { createRequire } from 'module'; import { createRequire } from 'module';
@@ -148,7 +148,7 @@ Index: code-server/lib/vscode/build/lib/extensions.ts
+ } + }
+ +
+ try { + try {
+ prepareBuiltInCopilotExtensionShims(platform, arch, outputDir, appNodeModulesDir); + prepareBuiltInCopilotRipgrepShim(platform, arch, outputDir, appNodeModulesDir);
+ fancyLog(`[prepareCopilotExtensionNativeShims] Materialized native shims for ${platform}-${arch}`); + fancyLog(`[prepareCopilotExtensionNativeShims] Materialized native shims for ${platform}-${arch}`);
+ } catch (err) { + } catch (err) {
+ // Downgrade to a warning for local builds since the extension + // Downgrade to a warning for local builds since the extension

View File

@@ -21,7 +21,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/storage/browser/storageS
export class BrowserStorageService extends AbstractStorageService { export class BrowserStorageService extends AbstractStorageService {
@@ -300,7 +301,11 @@ export class IndexedDBStorageDatabase ex @@ -328,7 +329,11 @@ export class IndexedDBStorageDatabase ex
} }
static async createWorkspaceStorage(workspaceId: string, logService: ILogService): Promise<IIndexedDBStorageDatabase> { static async createWorkspaceStorage(workspaceId: string, logService: ILogService): Promise<IIndexedDBStorageDatabase> {

View File

@@ -101,7 +101,7 @@ Index: code-server/lib/vscode/src/vs/base/common/product.ts
readonly version: string; readonly version: string;
readonly date?: string; readonly date?: string;
@@ -118,6 +119,7 @@ export interface IProductConfiguration { @@ -119,6 +120,7 @@ export interface IProductConfiguration {
readonly resourceUrlTemplate: string; readonly resourceUrlTemplate: string;
readonly nlsBaseUrl: string; readonly nlsBaseUrl: string;
readonly accessSKUs?: string[]; readonly accessSKUs?: string[];

View File

@@ -70,21 +70,21 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/webview/browser/pre/index
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" <meta http-equiv="Content-Security-Policy"
- content="default-src 'none'; script-src 'sha256-TaWGDzV7c9rUH2q/5ygOyYUHSyHIqBMYfucPh3lnKvU=' 'self'; frame-src 'self'; style-src 'unsafe-inline';"> - content="default-src 'none'; script-src 'sha256-q+WTr+fBXpLLE3++yWNaxT6BTWQtsKscoeIlynBRk4E=' 'self'; frame-src 'self'; style-src 'unsafe-inline';">
+ content="default-src 'none'; script-src 'sha256-nQZh+9dHKZP2cHbhYlCbWDtqxxJtGjRGBx57zNP2DZM=' 'self'; frame-src 'self'; style-src 'unsafe-inline';"> + content="default-src 'none'; script-src 'sha256-m1DlJtsIJd46QuWYNcsaYIG1xI+9FyjKQu+cfp+zq5Q=' 'self'; frame-src 'self'; style-src 'unsafe-inline';">
<!-- Disable pinch zooming --> <!-- Disable pinch zooming -->
<meta name="viewport" <meta name="viewport"
@@ -256,7 +256,7 @@ @@ -253,7 +253,7 @@
} }
const swPath = encodeURI(`service-worker.js?v=${expectedWorkerVersion}&vscode-resource-base-authority=${searchParams.get('vscode-resource-base-authority')}&remoteAuthority=${searchParams.get('remoteAuthority') ?? ''}`); const swPath = encodeURI(`service-worker.js?v=${expectedWorkerVersion}&vscode-resource-base-authority=${searchParams.get('vscode-resource-base-authority')}&remoteAuthority=${searchParams.get('remoteAuthority') ?? ''}`);
- navigator.serviceWorker.register(swPath, { type: 'module' }) - navigator.serviceWorker.register(swPath, { type: 'module', updateViaCache: 'none' })
+ navigator.serviceWorker.register(swPath) + navigator.serviceWorker.register(swPath)
.then(async registration => { .then(async registration => {
/** if (navigator.serviceWorker.controller) {
* @param {MessageEvent} event // A previous SW is already controlling. Force an update
@@ -370,6 +370,12 @@ @@ -332,6 +332,12 @@
const hostname = location.hostname; const hostname = location.hostname;

63
test/package-lock.json generated
View File

@@ -18,7 +18,7 @@
"jest-fetch-mock": "^3.0.3", "jest-fetch-mock": "^3.0.3",
"jsdom": "^16.4.0", "jsdom": "^16.4.0",
"node-fetch": "^2.6.7", "node-fetch": "^2.6.7",
"playwright": "^1.56.1", "playwright": "^1.59.1",
"ts-jest": "^27.0.7", "ts-jest": "^27.0.7",
"wtfnode": "^0.9.1" "wtfnode": "^0.9.1"
} }
@@ -1013,6 +1013,53 @@
"node": ">=18" "node": ">=18"
} }
}, },
"node_modules/@playwright/test/node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/@playwright/test/node_modules/playwright": {
"version": "1.56.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz",
"integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright-core": "1.56.1"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
"fsevents": "2.3.2"
}
},
"node_modules/@playwright/test/node_modules/playwright-core": {
"version": "1.56.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz",
"integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@sinonjs/commons": { "node_modules/@sinonjs/commons": {
"version": "1.8.6", "version": "1.8.6",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
@@ -4067,13 +4114,13 @@
} }
}, },
"node_modules/playwright": { "node_modules/playwright": {
"version": "1.56.1", "version": "1.59.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz",
"integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==", "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"playwright-core": "1.56.1" "playwright-core": "1.59.1"
}, },
"bin": { "bin": {
"playwright": "cli.js" "playwright": "cli.js"
@@ -4086,9 +4133,9 @@
} }
}, },
"node_modules/playwright-core": { "node_modules/playwright-core": {
"version": "1.56.1", "version": "1.59.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz",
"integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {

View File

@@ -14,7 +14,7 @@
"jest-fetch-mock": "^3.0.3", "jest-fetch-mock": "^3.0.3",
"jsdom": "^16.4.0", "jsdom": "^16.4.0",
"node-fetch": "^2.6.7", "node-fetch": "^2.6.7",
"playwright": "^1.56.1", "playwright": "^1.59.1",
"ts-jest": "^27.0.7", "ts-jest": "^27.0.7",
"wtfnode": "^0.9.1" "wtfnode": "^0.9.1"
}, },

View File

@@ -33,10 +33,12 @@ const config: PlaywrightTestConfig = {
// name: "Firefox", // name: "Firefox",
// use: { browserName: "firefox" }, // use: { browserName: "firefox" },
// }, // },
{ // Keeps failing with "Underlying ArrayBuffer has been detached from the view or out-of-bounds"
name: "WebKit", // Not sure what we can do about it...so skip for now.
use: { browserName: "webkit" }, // {
}, // name: "WebKit",
// use: { browserName: "webkit" },
// },
], ],
} }