paviko 2 месяцев назад
Родитель
Сommit
e0f1961c0c
1 измененных файлов с 37 добавлено и 23 удалено
  1. 37 23
      .github/workflows/release.yml

+ 37 - 23
.github/workflows/release.yml

@@ -128,17 +128,10 @@ jobs:
 
       - name: Build webgui for gui-only variant
         run: |
+          # Use bun from repo root since this is a Bun workspace monorepo
           cd packages/opencode/webgui
-          if [ -f pnpm-lock.yaml ]; then
-            pnpm install --frozen-lockfile
-            pnpm run build
-          elif [ -f bun.lock ] || [ -f bun.lockb ]; then
-            bun install --frozen-lockfile
-            bun run build
-          else
-            npm ci
-            npm run build
-          fi
+          bun install --frozen-lockfile
+          bun run build
 
       - name: Package VSCode plugin (gui-only) from staging
         working-directory: hosts/vscode-plugin
@@ -191,13 +184,20 @@ jobs:
           # Clean up staging
           rm -rf "$STAGE_DIR"
 
-      - name: Build JetBrains plugin distribution
+      - name: Build JetBrains plugin distribution (standard)
         uses: gradle/gradle-build-action@v2
         with:
           gradle-version: 8.7
           arguments: buildPlugin
           build-root-directory: hosts/jetbrains-plugin
 
+      - name: Build JetBrains plugin distribution (gui-only)
+        uses: gradle/gradle-build-action@v2
+        with:
+          gradle-version: 8.7
+          arguments: buildPlugin -PguiOnly=true -PwebguiDist=../../packages/opencode/webgui-dist
+          build-root-directory: hosts/jetbrains-plugin
+
       - name: Prepare release artifacts
         run: |
           mkdir -p release-artifacts
@@ -214,12 +214,12 @@ jobs:
               "release-artifacts/opencode-vscode-gui-only-${{ steps.version.outputs.version }}.vsix"
           fi
 
-          # Find and copy JetBrains plugin
-          find hosts/jetbrains-plugin/build/distributions -name "*.zip" -type f -exec cp {} release-artifacts/ \;
-          cd release-artifacts
-          for file in *.zip; do
-            if [ -f "$file" ]; then
-              mv "$file" "opencode-jetbrains-${{ steps.version.outputs.version }}.zip"
+          # Find and copy JetBrains plugins (both variants)
+          find hosts/jetbrains-plugin/build/distributions -name "*.zip" -type f | while read -r zipfile; do
+            if [[ "$(basename "$zipfile")" == *"gui-only"* ]]; then
+              cp "$zipfile" "release-artifacts/opencode-jetbrains-gui-only-${{ steps.version.outputs.version }}.zip"
+            else
+              cp "$zipfile" "release-artifacts/opencode-jetbrains-${{ steps.version.outputs.version }}.zip"
             fi
           done
 
@@ -240,7 +240,8 @@ jobs:
             This release includes:
             - **VSCode Extension (standard)**: `opencode-vscode-${{ steps.version.outputs.version }}.vsix` — bundles opencode binaries
             - **VSCode Extension (gui-only)**: `opencode-vscode-gui-only-${{ steps.version.outputs.version }}.vsix` — lightweight, uses system `opencode` binary
-            - **JetBrains Plugin**: `opencode-jetbrains-${{ steps.version.outputs.version }}.zip`
+            - **JetBrains Plugin (standard)**: `opencode-jetbrains-${{ steps.version.outputs.version }}.zip` — bundles opencode binaries
+            - **JetBrains Plugin (gui-only)**: `opencode-jetbrains-gui-only-${{ steps.version.outputs.version }}.zip` — lightweight, uses system `opencode` binary
 
             ### Installation Instructions
 
@@ -253,11 +254,17 @@ jobs:
             2. Download `opencode-vscode-gui-only-${{ steps.version.outputs.version }}.vsix`
             3. Install using: `code --install-extension opencode-vscode-gui-only-${{ steps.version.outputs.version }}.vsix`
 
-            #### JetBrains Plugin
+            #### JetBrains Plugin (standard — includes binaries)
             1. Download `opencode-jetbrains-${{ steps.version.outputs.version }}.zip`
             2. In your JetBrains IDE, go to Settings → Plugins → Install Plugin from Disk
             3. Select the downloaded zip file
 
+            #### JetBrains Plugin (gui-only — requires system opencode)
+            1. Ensure `opencode` is installed and available in your PATH
+            2. Download `opencode-jetbrains-gui-only-${{ steps.version.outputs.version }}.zip`
+            3. In your JetBrains IDE, go to Settings → Plugins → Install Plugin from Disk
+            4. Select the downloaded zip file
+
             ### What's Changed
             See the auto-generated release notes below for detailed changes.
 
@@ -293,9 +300,16 @@ jobs:
             echo "✗ VSCode extension (gui-only) missing"
           fi
 
-          # Check if JetBrains plugin exists
-          if ls ./test-artifacts/*.zip 1> /dev/null 2>&1; then
-            echo "✓ JetBrains plugin found"
+          # Check if JetBrains standard plugin exists
+          if ls ./test-artifacts/opencode-jetbrains-*.zip 1> /dev/null 2>&1 && ! ls ./test-artifacts/opencode-jetbrains-gui-only-*.zip 1> /dev/null 2>&1; then
+            echo "✓ JetBrains plugin (standard) found"
+          else
+            echo "✗ JetBrains plugin (standard) missing"
+          fi
+
+          # Check if JetBrains gui-only plugin exists
+          if ls ./test-artifacts/opencode-jetbrains-gui-only-*.zip 1> /dev/null 2>&1; then
+            echo "✓ JetBrains plugin (gui-only) found"
           else
-            echo "✗ JetBrains plugin missing"
+            echo "✗ JetBrains plugin (gui-only) missing"
           fi