From 02e58950bf7ffddc139950eaec3cd535c119edde Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Thu, 5 Feb 2026 09:42:11 +0800 Subject: [PATCH 1/2] fix(ci): properly extract tag from release-plz releases output - release-plz outputs releases as JSON array, not as individual outputs - Extract tag and version from releases[0] using jq - Pass tag directly to tauri-action to find existing release - This fixes the build-release job not uploading to GitHub Release --- .github/workflows/release.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 128b0260..cee834e3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -46,6 +46,7 @@ jobs: outputs: releases_created: ${{ steps.release-plz.outputs.releases_created }} version: ${{ steps.get-version.outputs.version }} + tag: ${{ steps.get-version.outputs.tag }} steps: - uses: actions/checkout@v4 with: @@ -62,14 +63,19 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Extract version from tag + - name: Extract version from releases output id: get-version if: steps.release-plz.outputs.releases_created == 'true' + env: + RELEASES: ${{ steps.release-plz.outputs.releases }} run: | - TAG="${{ steps.release-plz.outputs.tag }}" - VERSION="${TAG#v}" + # Parse the releases JSON to get tag and version + # Example: [{"package_name":"mcpmux","tag":"v0.1.0","version":"0.1.0"}] + TAG=$(echo "$RELEASES" | jq -r '.[0].tag') + VERSION=$(echo "$RELEASES" | jq -r '.[0].version') + echo "tag=$TAG" >> $GITHUB_OUTPUT echo "version=$VERSION" >> $GITHUB_OUTPUT - echo "Released version: $VERSION" + echo "Released tag: $TAG, version: $VERSION" # ───────────────────────────────────────────────────────────── # Build Release: Build Tauri app when release is created @@ -160,7 +166,8 @@ jobs: APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} with: - tagName: v${{ needs.release.outputs.version }} + # Use tagName to find and upload to the existing release created by release-plz + tagName: ${{ needs.release.outputs.tag }} releaseName: 'McpMux v${{ needs.release.outputs.version }}' releaseBody: '' # Release notes already created by release-plz releaseDraft: false From 8d1795d187892a0ba593a6489996d1e7ea5063e8 Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Thu, 5 Feb 2026 09:46:18 +0800 Subject: [PATCH 2/2] fix(ci): add build:web script and update macos runner - Add build:web and dev:web scripts to root package.json - These scripts delegate to @mcpmux/desktop package - Update macos-13 to macos-15 (macos-13 is retired) - Fixes beforeBuildCommand 'pnpm build:web' not found error --- .github/workflows/release.yml | 4 ++-- package.json | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cee834e3..c03660fd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -96,7 +96,7 @@ jobs: - os: macos-latest target: aarch64-apple-darwin artifact: macos-arm - - os: macos-13 + - os: macos-15 target: x86_64-apple-darwin artifact: macos-intel @@ -134,7 +134,7 @@ jobs: # Import Apple certificate for macOS signing - name: Import Apple certificate - if: matrix.os == 'macos-latest' || matrix.os == 'macos-13' + if: matrix.os == 'macos-latest' || matrix.os == 'macos-15' env: APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} diff --git a/package.json b/package.json index d0a8d89e..b7cb0aad 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "scripts": { "setup": "pwsh -ExecutionPolicy Bypass -File scripts/setup-dev.ps1", "dev": "pnpm --filter @mcpmux/desktop dev", + "dev:web": "pnpm --filter @mcpmux/desktop dev:web", "build": "pnpm --filter @mcpmux/desktop build", + "build:web": "pnpm --filter @mcpmux/desktop build:web", "release:key": "pnpm --filter @mcpmux/desktop tauri signer generate -w ~/.tauri/mcpmux.key", "test": "pnpm test:rust && pnpm test:ts", "test:rust": "cargo nextest run --workspace",