@@ -101,18 +101,37 @@ jobs:
101101 run : |
102102 brew install create-dmg
103103
104- - name : Install WiX Toolset (Windows)
104+ - name : Install Chocolatey (Windows)
105105 if : matrix.os == 'windows-latest'
106106 run : |
107- # Download and install WiX Toolset
108- Invoke-WebRequest -Uri "https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip" -OutFile "wix.zip"
109- Expand-Archive -Path "wix.zip" -DestinationPath "C:\WixTools"
110- # Add WiX to PATH
111- echo "C:\WixTools" | Out-File -FilePath $env:GITHUB_PATH -Append
112- # Set WIX environment variable
113- echo "WIX=C:\WixTools" | Out-File -FilePath $env:GITHUB_ENV -Append
107+ # Install Chocolatey package manager
108+ Set-ExecutionPolicy Bypass -Scope Process -Force
109+ [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
110+ iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
111+ # Refresh environment variables
112+ refreshenv
113+ # Verify Chocolatey installation
114+ choco --version
115+
116+ - name : Install WiX Toolset via Chocolatey (Windows)
117+ if : matrix.os == 'windows-latest'
118+ run : |
119+ # Install WiX Toolset using Chocolatey
120+ choco install wixtoolset --version=3.14.1 -y
121+ # Refresh environment variables
122+ refreshenv
114123 # Verify installation
115- C:\WixTools\candle.exe -?
124+ candle.exe -?
125+ light.exe -?
126+ # Get WiX installation path
127+ $wixPath = (Get-Command candle.exe).Source | Split-Path -Parent
128+ echo "WiX installed at: $wixPath"
129+ # Set environment variables
130+ echo "WIX=$wixPath" | Out-File -FilePath $env:GITHUB_ENV -Append
131+ echo "WIX_ROOT=$wixPath" | Out-File -FilePath $env:GITHUB_ENV -Append
132+ echo "TAURI_WIX_PATH=$wixPath" | Out-File -FilePath $env:GITHUB_ENV -Append
133+ echo "WIX_BIN_PATH=$wixPath" | Out-File -FilePath $env:GITHUB_ENV -Append
134+ echo "TAURI_SKIP_WIX_DOWNLOAD=true" | Out-File -FilePath $env:GITHUB_ENV -Append
116135
117136 - name : Install Rust
118137 uses : dtolnay/rust-toolchain@stable
@@ -149,22 +168,46 @@ jobs:
149168 if : matrix.os == 'windows-latest'
150169 run : |
151170 echo "Verifying WiX installation..."
152- C:\WixTools\ candle.exe -?
153- C:\WixTools\ light.exe -?
171+ candle.exe -?
172+ light.exe -?
154173 echo "WiX tools are working correctly"
155-
156- - name : Build Tauri app
157- run : |
158- # Set additional environment variables for Windows build
159- if (Test-Path "C:\WixTools") {
160- $env:WIX = "C:\WixTools"
161- $env:WIX_ROOT = "C:\WixTools"
162- $env:PATH = "C:\WixTools;$env:PATH"
163- echo "WiX environment variables set"
164- echo "WIX: $env:WIX"
165- echo "PATH includes WiX: $($env:PATH -like '*WixTools*')"
174+ # Get WiX path and create symlink for Tauri
175+ $wixPath = (Get-Command candle.exe).Source | Split-Path -Parent
176+ echo "WiX path: $wixPath"
177+ # Clean any existing Tauri WiX cache
178+ if (Test-Path "C:\Users\runneradmin\AppData\Local\tauri\WixTools314") {
179+ Remove-Item -Recurse -Force "C:\Users\runneradmin\AppData\Local\tauri\WixTools314"
166180 }
167- pnpm tauri:build
181+ # Create symlink for Tauri
182+ New-Item -ItemType Directory -Force -Path "C:\Users\runneradmin\AppData\Local\tauri"
183+ New-Item -ItemType SymbolicLink -Force -Path "C:\Users\runneradmin\AppData\Local\tauri\WixTools314" -Target $wixPath
184+
185+ - name : Build Tauri app (Windows)
186+ if : matrix.os == 'windows-latest'
187+ run : pnpm tauri:build
188+ env :
189+ TAURI_PRIVATE_KEY : ${{ secrets.TAURI_PRIVATE_KEY }}
190+ TAURI_KEY_PASSWORD : ${{ secrets.TAURI_KEY_PASSWORD }}
191+ XCODE_APP_TEAM_ID : ${{ secrets.XCODE_APP_TEAM_ID }}
192+ XCODE_APP_LOADER_EMAIL : ${{ secrets.XCODE_APP_LOADER_EMAIL }}
193+ XCODE_APP_LOADER_PASSWORD : ${{ secrets.XCODE_APP_LOADER_PASSWORD }}
194+ BUILD_CERTIFICATE_BASE64 : ${{ secrets.CSC_LINK }}
195+ P12_PASSWORD : ${{ secrets.CSC_KEY_PASSWORD }}
196+ CSC_LINK : ${{ secrets.CSC_LINK }}
197+ CSC_KEY_PASSWORD : ${{ secrets.CSC_KEY_PASSWORD }}
198+ # Windows-specific environment variables
199+ WIX : C:\WixTools
200+ WIX_ROOT : C:\WixTools
201+ # Tell Tauri to use our WiX installation
202+ TAURI_WIX_PATH : C:\WixTools
203+ WIX_BIN_PATH : C:\WixTools
204+ # Disable Tauri's automatic WiX download
205+ TAURI_SKIP_WIX_DOWNLOAD : true
206+ WIX_DOWNLOAD_URL : " "
207+
208+ - name : Build Tauri app (macOS)
209+ if : matrix.os == 'macos-14'
210+ run : pnpm tauri:build
168211 env :
169212 TAURI_PRIVATE_KEY : ${{ secrets.TAURI_PRIVATE_KEY }}
170213 TAURI_KEY_PASSWORD : ${{ secrets.TAURI_KEY_PASSWORD }}
0 commit comments