@@ -14,38 +14,66 @@ jobs:
1414 strategy :
1515 matrix :
1616 include :
17- - os : warp-macos-15-arm64-12x
17+ - os : [self-hosted, macOS, ARM64]
1818 arch : arm64
19+ artifact_name : macos-arm64
1920 - os : windows-latest
2021 arch : x64
22+ artifact_name : windows-latest
2123 - os : ubuntu-latest
2224 arch : x64
25+ artifact_name : ubuntu-latest
2326
2427 steps :
2528 - name : Checkout Code
2629 uses : actions/checkout@v4
30+ with :
31+ clean : true
32+
33+ # Clean node_modules on self-hosted runner to ensure fresh install
34+ - name : Clean node_modules (self-hosted)
35+ if : contains(matrix.os, 'self-hosted')
36+ run : |
37+ rm -rf node_modules
38+ rm -rf release
2739
2840 - name : Setup Node.js
41+ if : " !contains(matrix.os, 'self-hosted')"
2942 uses : actions/setup-node@v6
3043 with :
3144 node-version : 20
3245
3346 - name : Setup Python
47+ if : " !contains(matrix.os, 'self-hosted')"
3448 uses : actions/setup-python@v6
3549 with :
3650 python-version : ' 3.11'
3751
3852 - name : Install Python Dependencies
3953 run : |
40- python -m pip install --upgrade pip
41- pip install uv
54+ python3 -m pip install --upgrade pip
55+ pip3 install uv
4256
4357 - name : Install bun
4458 run : npm install -g bun
4559
4660 - name : Install Dependencies
4761 run : npm install
4862
63+ # Verify Electron installation on macOS
64+ - name : Verify Electron Installation (macOS)
65+ if : runner.os == 'macOS'
66+ run : |
67+ echo "Checking Electron installation..."
68+ ls -la node_modules/electron/dist/ || echo "Electron dist not found"
69+ if [ -d "node_modules/electron/dist/Electron.app" ]; then
70+ echo "✅ Electron.app found"
71+ ls -la "node_modules/electron/dist/Electron.app/Contents/Frameworks/" | head -5
72+ else
73+ echo "❌ Electron.app NOT found - this will cause build failure"
74+ exit 1
75+ fi
76+
4977 # Install libfuse2 for Linux AppImage builds
5078 - name : Install libfuse2 (Linux)
5179 if : runner.os == 'Linux'
78106 run : npm run build -- --arch ${{ matrix.arch }}
79107 env :
80108 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
81- # Signing variables (CSC_LINK, CSC_KEY_PASSWORD) are omitted for Windows
82109 VITE_BASE_URL : ${{ secrets.VITE_BASE_URL }}
83110 VITE_STACK_PROJECT_ID : ${{ secrets.VITE_STACK_PROJECT_ID }}
84111 VITE_STACK_PUBLISHABLE_CLIENT_KEY : ${{ secrets.VITE_STACK_PUBLISHABLE_CLIENT_KEY }}
@@ -98,11 +125,34 @@ jobs:
98125 VITE_STACK_SECRET_SERVER_KEY : ${{ secrets.VITE_STACK_SECRET_SERVER_KEY }}
99126 USE_NPM_INSTALL_BUN : ' true'
100127
128+ # Verify built app contains Electron Framework
129+ - name : Verify Built App (macOS)
130+ if : runner.os == 'macOS'
131+ run : |
132+ echo "Checking built app..."
133+ APP_PATH=$(find release -name "*.app" -type d | head -1)
134+ if [ -n "$APP_PATH" ]; then
135+ echo "Found app at: $APP_PATH"
136+ FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks"
137+ if [ -d "$FRAMEWORKS_PATH/Electron Framework.framework" ]; then
138+ echo "✅ Electron Framework found"
139+ ls -la "$FRAMEWORKS_PATH/" | head -10
140+ else
141+ echo "❌ Electron Framework NOT found in built app!"
142+ echo "Contents of Frameworks directory:"
143+ ls -la "$FRAMEWORKS_PATH/" 2>/dev/null || echo "Frameworks directory does not exist"
144+ exit 1
145+ fi
146+ else
147+ echo "No .app found in release directory"
148+ ls -la release/
149+ fi
150+
101151 - name : Upload Artifact (macOS - dmg only)
102152 if : runner.os == 'macOS'
103153 uses : actions/upload-artifact@v6
104154 with :
105- name : release-${{ matrix.os }}-${{ matrix.arch }}
155+ name : release-${{ matrix.artifact_name }}-${{ matrix.arch }}
106156 path : |
107157 release/*.dmg
108158 retention-days : 5
@@ -111,7 +161,7 @@ jobs:
111161 if : runner.os == 'Windows'
112162 uses : actions/upload-artifact@v6
113163 with :
114- name : release-${{ matrix.os }}-${{ matrix.arch }}
164+ name : release-${{ matrix.artifact_name }}-${{ matrix.arch }}
115165 path : |
116166 release/*.exe
117167 retention-days : 5
@@ -120,7 +170,7 @@ jobs:
120170 if : runner.os == 'Linux'
121171 uses : actions/upload-artifact@v6
122172 with :
123- name : release-${{ matrix.os }}-${{ matrix.arch }}
173+ name : release-${{ matrix.artifact_name }}-${{ matrix.arch }}
124174 path : |
125175 release/*.AppImage
126176 retention-days : 5
@@ -135,7 +185,7 @@ jobs:
135185 - name : Download mac-arm64 artifact
136186 uses : actions/download-artifact@v7
137187 with :
138- name : release-warp- macos-15- arm64-6x -arm64
188+ name : release-macos-arm64-arm64
139189 path : temp-mac-arm64
140190
141191 - name : Download win-x64 artifact
0 commit comments