@@ -100,6 +100,10 @@ jobs:
100100 env :
101101 APPLE_SIGNING_IDENTITY : ${{ secrets.APPLE_SIGNING_IDENTITY }}
102102 DESKTOP_MACOS_TARGET : ${{ matrix.target }}
103+ TAURI_SIGNING_PRIVATE_KEY : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
104+ TAURI_SIGNING_PRIVATE_KEY_PASSWORD : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
105+ LIVEAGENT_UPDATER_PUBLIC_KEY : ${{ secrets.TAURI_UPDATER_PUBLIC_KEY }}
106+ LIVEAGENT_UPDATE_REPOSITORY : ${{ github.repository }}
103107 run : make desktop-build-macos-release
104108
105109 - name : Stage macOS artifact
@@ -109,13 +113,18 @@ jobs:
109113 set -euo pipefail
110114 mkdir -p dist
111115 dmg_path="$(find "target/${{ matrix.target }}/release/bundle/dmg" -maxdepth 1 -name 'LiveAgent_*.dmg' -print -quit)"
116+ updater_path="$(find "target/${{ matrix.target }}/release/bundle/macos" -maxdepth 1 -name '*.app.tar.gz' -print -quit)"
112117 test -n "$dmg_path"
118+ test -n "$updater_path"
119+ test -f "$updater_path.sig"
113120 cp "$dmg_path" "dist/LiveAgent-${RELEASE_TAG}-macOS-${{ matrix.suffix }}.dmg"
121+ cp "$updater_path" "dist/LiveAgent-${RELEASE_TAG}-macOS-${{ matrix.suffix }}.app.tar.gz"
122+ cp "$updater_path.sig" "dist/LiveAgent-${RELEASE_TAG}-macOS-${{ matrix.suffix }}.app.tar.gz.sig"
114123
115124 - uses : actions/upload-artifact@v7
116125 with :
117126 name : liveagent-macos-${{ matrix.suffix }}
118- path : dist/*.dmg
127+ path : dist/*
119128 if-no-files-found : error
120129
121130 windows :
@@ -150,7 +159,12 @@ jobs:
150159
151160 - name : Build Windows bundles
152161 working-directory : crates/agent-gui
153- run : pnpm tauri build --config src-tauri/tauri.windows.conf.json --target x86_64-pc-windows-msvc
162+ env :
163+ TAURI_SIGNING_PRIVATE_KEY : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
164+ TAURI_SIGNING_PRIVATE_KEY_PASSWORD : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
165+ LIVEAGENT_UPDATER_PUBLIC_KEY : ${{ secrets.TAURI_UPDATER_PUBLIC_KEY }}
166+ LIVEAGENT_UPDATE_REPOSITORY : ${{ github.repository }}
167+ run : pnpm tauri build --config src-tauri/tauri.windows.release.conf.json --target x86_64-pc-windows-msvc
154168
155169 - name : Stage Windows artifacts
156170 shell : bash
@@ -161,10 +175,21 @@ jobs:
161175 mkdir -p dist
162176 msi_path="$(find target crates/agent-gui/src-tauri/target -type f -name '*.msi' -path '*bundle*' -print -quit 2>/dev/null || true)"
163177 exe_path="$(find target crates/agent-gui/src-tauri/target -type f -name '*.exe' -path '*bundle*' -print -quit 2>/dev/null || true)"
178+ nsis_zip_path="$(find target crates/agent-gui/src-tauri/target -type f -name '*.exe.zip' -path '*bundle*' -print -quit 2>/dev/null || true)"
179+ msi_zip_path="$(find target crates/agent-gui/src-tauri/target -type f -name '*.msi.zip' -path '*bundle*' -print -quit 2>/dev/null || true)"
164180 test -n "$msi_path"
165181 test -n "$exe_path"
182+ test -n "$nsis_zip_path"
183+ test -f "$nsis_zip_path.sig"
166184 cp "$msi_path" "dist/LiveAgent-${RELEASE_TAG}-Windows-x64.msi"
167185 cp "$exe_path" "dist/LiveAgent-${RELEASE_TAG}-Windows-x64-Setup.exe"
186+ cp "$nsis_zip_path" "dist/LiveAgent-${RELEASE_TAG}-Windows-x64-nsis.zip"
187+ cp "$nsis_zip_path.sig" "dist/LiveAgent-${RELEASE_TAG}-Windows-x64-nsis.zip.sig"
188+ if [ -n "$msi_zip_path" ]; then
189+ test -f "$msi_zip_path.sig"
190+ cp "$msi_zip_path" "dist/LiveAgent-${RELEASE_TAG}-Windows-x64-msi.zip"
191+ cp "$msi_zip_path.sig" "dist/LiveAgent-${RELEASE_TAG}-Windows-x64-msi.zip.sig"
192+ fi
168193 test "$(find dist -type f | wc -l)" -gt 0
169194
170195 - uses : actions/upload-artifact@v7
@@ -216,7 +241,12 @@ jobs:
216241 run : pnpm install --frozen-lockfile
217242
218243 - name : Build Linux bundles
219- run : make desktop-build-linux
244+ env :
245+ TAURI_SIGNING_PRIVATE_KEY : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
246+ TAURI_SIGNING_PRIVATE_KEY_PASSWORD : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
247+ LIVEAGENT_UPDATER_PUBLIC_KEY : ${{ secrets.TAURI_UPDATER_PUBLIC_KEY }}
248+ LIVEAGENT_UPDATE_REPOSITORY : ${{ github.repository }}
249+ run : pnpm --dir crates/agent-gui tauri build --config src-tauri/tauri.linux.release.conf.json --target x86_64-unknown-linux-gnu --bundles appimage deb rpm
220250
221251 - name : Stage Linux artifacts
222252 env :
@@ -227,12 +257,27 @@ jobs:
227257 appimage_path="$(find crates/agent-gui/src-tauri/target target -type f -name '*.AppImage' -path '*bundle*' -print -quit 2>/dev/null || true)"
228258 deb_path="$(find crates/agent-gui/src-tauri/target target -type f -name '*.deb' -path '*bundle*' -print -quit 2>/dev/null || true)"
229259 rpm_path="$(find crates/agent-gui/src-tauri/target target -type f -name '*.rpm' -path '*bundle*' -print -quit 2>/dev/null || true)"
260+ appimage_updater_path="$(find crates/agent-gui/src-tauri/target target -type f -name '*.AppImage.tar.gz' -path '*bundle*' -print -quit 2>/dev/null || true)"
261+ deb_updater_path="$(find crates/agent-gui/src-tauri/target target -type f -name '*.deb.tar.gz' -path '*bundle*' -print -quit 2>/dev/null || true)"
262+ rpm_updater_path="$(find crates/agent-gui/src-tauri/target target -type f -name '*.rpm.tar.gz' -path '*bundle*' -print -quit 2>/dev/null || true)"
230263 test -n "$appimage_path"
231264 test -n "$deb_path"
232265 test -n "$rpm_path"
266+ test -n "$appimage_updater_path"
267+ test -n "$deb_updater_path"
268+ test -n "$rpm_updater_path"
269+ test -f "$appimage_updater_path.sig"
270+ test -f "$deb_updater_path.sig"
271+ test -f "$rpm_updater_path.sig"
233272 cp "$appimage_path" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.AppImage"
234273 cp "$deb_path" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.deb"
235274 cp "$rpm_path" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.rpm"
275+ cp "$appimage_updater_path" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.AppImage.tar.gz"
276+ cp "$appimage_updater_path.sig" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.AppImage.tar.gz.sig"
277+ cp "$deb_updater_path" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.deb.tar.gz"
278+ cp "$deb_updater_path.sig" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.deb.tar.gz.sig"
279+ cp "$rpm_updater_path" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.rpm.tar.gz"
280+ cp "$rpm_updater_path.sig" "dist/LiveAgent-${RELEASE_TAG}-Linux-x86_64.rpm.tar.gz.sig"
236281
237282 - uses : actions/upload-artifact@v7
238283 with :
@@ -248,6 +293,8 @@ jobs:
248293 - windows
249294 - linux
250295 steps :
296+ - uses : actions/checkout@v6
297+
251298 - uses : actions/download-artifact@v8
252299 with :
253300 path : release-artifacts
@@ -256,9 +303,16 @@ jobs:
256303 - name : Publish assets
257304 env :
258305 GH_TOKEN : ${{ github.token }}
306+ GH_REPO : ${{ github.repository }}
259307 RELEASE_TAG : ${{ github.event.inputs.tag || github.ref_name }}
260308 run : |
261309 set -euo pipefail
310+ prerelease_args=()
311+ if [[ "$RELEASE_TAG" =~ -(alpha|beta|rc|pre|preview|next) ]]; then
312+ prerelease_args+=(--prerelease)
313+ fi
262314 gh release view "$RELEASE_TAG" >/dev/null 2>&1 || \
263- gh release create "$RELEASE_TAG" --title "LiveAgent $RELEASE_TAG" --notes "Automated LiveAgent release."
315+ gh release create "$RELEASE_TAG" "${prerelease_args[@]}" --title "LiveAgent $RELEASE_TAG" --notes "Automated LiveAgent release."
264316 gh release upload "$RELEASE_TAG" release-artifacts/* --clobber
317+ node scripts/release/create-tauri-updater-manifest.mjs release-artifacts release-artifacts/latest.json
318+ gh release upload "$RELEASE_TAG" release-artifacts/latest.json --clobber
0 commit comments