diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ffa51e0..43bf82f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,15 +39,25 @@ jobs: - run: ${{ matrix.platform.make }} ${{ matrix.target }}-package # Production testing - - name: Install extension - shell: bash + - name: Install VSIX extension + if: runner.os == 'macOS' + run: > + ./build/test/vscode/.vscode-test/vscode-*/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code + --extensions-dir build/test/vscode/.vscode-test/extensions + --install-extension build/dist/sourcemeta-studio-vscode.vsix + - name: Install VSIX extension + if: runner.os == 'Linux' + run: > + ./build/test/vscode/.vscode-test/vscode-*/bin/code + --extensions-dir build/test/vscode/.vscode-test/extensions + --install-extension build/dist/sourcemeta-studio-vscode.vsix + - name: Install VSIX extension + if: runner.os == 'Windows' run: | - rm -rf build/test/vscode/.vscode-test/extensions - mkdir -p build/test/vscode/.vscode-test/extensions/sourcemeta.studio - unzip build/dist/sourcemeta-studio-vscode.vsix 'extension/*' -d build/test/vscode/.vscode-test/extensions/sourcemeta.studio - mv build/test/vscode/.vscode-test/extensions/sourcemeta.studio/extension/* build/test/vscode/.vscode-test/extensions/sourcemeta.studio/ - rmdir build/test/vscode/.vscode-test/extensions/sourcemeta.studio/extension - node test/vscode/generate-extensions.js build/test/vscode/.vscode-test/extensions/sourcemeta.studio > build/test/vscode/.vscode-test/extensions/extensions.json + $VSCODE_DIR = Get-ChildItem -Path build/test/vscode/.vscode-test -Directory -Filter 'vscode-*' | Select-Object -First 1 + & "$VSCODE_DIR\bin\code.cmd" --extensions-dir build/test/vscode/.vscode-test/extensions --install-extension build/dist/sourcemeta-studio-vscode.vsix + shell: pwsh + - if: runner.os == 'Linux' run: xvfb-run --auto-servernum ${{ matrix.platform.make }} ${{ matrix.target }}-test env: diff --git a/test/vscode/generate-extensions.js b/test/vscode/generate-extensions.js deleted file mode 100755 index 26a243d..0000000 --- a/test/vscode/generate-extensions.js +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node -const fs = require('fs'); -const path = require('path'); - -if (process.argv.length !== 3) { - console.error('Usage: generate-extensions.js '); - process.exit(1); -} - -const extensionDir = process.argv[2]; -const packageJsonPath = path.join(extensionDir, 'package.json'); - -if (!fs.existsSync(packageJsonPath)) { - console.error(`Error: package.json not found at ${packageJsonPath}`); - process.exit(1); -} - -const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); -const extensionId = `${packageJson.publisher}.${packageJson.name}`; -const extensionDirName = path.basename(extensionDir); - -const extensionsJson = [{ - identifier: { - id: extensionId - }, - version: packageJson.version, - location: { - $mid: 1, - path: `/${extensionDirName}`, - scheme: 'file' - }, - relativeLocation: extensionDirName, - metadata: { - isApplicationScoped: false, - isBuiltin: false, - isSystem: false - } -}]; - -console.log(JSON.stringify(extensionsJson));