Publish release on OpenVSX (#7608)

* feat: Prod Release only to OpenVSX

* feat: build as a prod release

* feat: dual vsx build
This commit is contained in:
Catriel Müller
2026-03-26 11:54:19 -03:00
committed by GitHub
parent f2dcafc2c5
commit dcab290055
2 changed files with 16 additions and 6 deletions
+10 -1
View File
@@ -36,9 +36,10 @@ const targets = [
const binDir = join(import.meta.dir, "..", "bin")
const distDir = join(import.meta.dir, "..", "dist")
const outDir = join(import.meta.dir, "..", "out")
const outDirProd = join(import.meta.dir, "..", "out", "prod")
console.log("\n🧹 Cleaning up directories...")
for (const dir of [binDir, distDir, outDir]) {
for (const dir of [binDir, distDir, outDir, outDirProd]) {
if (existsSync(dir)) {
rmSync(dir, { recursive: true, force: true })
console.log(` ✓ Cleaned ${dir}`)
@@ -47,6 +48,7 @@ for (const dir of [binDir, distDir, outDir]) {
mkdirSync(outDir, { recursive: true })
mkdirSync(distDir, { recursive: true })
mkdirSync(outDirProd, { recursive: true })
console.log("\n🔄 Rebuilding SDK types (ensures dist/ is in sync with server API)...")
await $`bun run --cwd ${join(import.meta.dir, "..", "..", "sdk", "js")} build`
@@ -87,6 +89,13 @@ for (const config of targets) {
npm_config_ignore_scripts: "true",
})
console.log(` ✅ Created ${vsixPath}`)
const prodVsixPath = join(outDirProd, `kilo-vscode-${config.target}.vsix`)
await $`vsce package --no-dependencies --skip-license --target ${config.target} -o ${prodVsixPath}`.env({
...process.env,
npm_config_ignore_scripts: "true",
})
console.log(` ✅ Created ${prodVsixPath}`)
}
console.log("\n✨ All VSIX packages built successfully!")
+6 -5
View File
@@ -7,6 +7,8 @@ import { Script } from "@opencode-ai/script"
console.log(`Publishing VSCode extension for release: v${Script.version}`)
const outDir = process.env.VSIX_DIR || join(import.meta.dir, "..", "out")
const outDirProd = join(outDir, "prod")
console.log(`Using VSIX directory: ${outDir}`)
if (!existsSync(outDir)) {
@@ -37,15 +39,14 @@ console.log(`\nFound ${vsixFiles.length} VSIX files`)
for (const target of targets) {
const vsixPath = join(outDir, `kilo-vscode-${target}.vsix`)
console.log(`\n🚀 Publishing ${target} to VS Code Marketplace...`)
await $`vsce publish --pre-release --packagePath ${vsixPath}`
console.log(` ✅ Published ${target} to VS Code Marketplace`)
// Note: Open VSX publishing is commented out as it doesn't support prereleases
// console.log(`\n📤 Publishing ${target} to Open VSX...`)
// await $`npx ovsx publish ${vsixPath} --target ${target} -p ${process.env.OPENVSX_TOKEN}`
// console.log(` ✅ Published ${target} to Open VSX`)
const prodVsixPath = join(outDirProd, `kilo-vscode-${target}.vsix`)
console.log(`\n📤 Publishing ${target} to Open VSX...`)
await $`npx ovsx publish --pat ${process.env.OPENVSX_TOKEN} --packagePath ${prodVsixPath}`
console.log(` ✅ Published Prod ${target} to Open VSX`)
}
if (Script.release) {