Skip to content

Commit f71eccd

Browse files
committed
perf: change windows app build
1 parent f11dfec commit f71eccd

1 file changed

Lines changed: 66 additions & 23 deletions

File tree

.github/workflows/build.yml

Lines changed: 66 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)