1818 uses : actions/checkout@v6
1919
2020 - name : Setup pnpm
21- uses : pnpm/action-setup@v4
21+ uses : pnpm/action-setup@v6
22+ with :
23+ version : 10.33.0
2224
2325 - name : Setup Node.js
2426 uses : actions/setup-node@v6
2729 cache : pnpm
2830
2931 - name : Install dependencies
30- run : pnpm install --no- frozen-lockfile
32+ run : pnpm install --frozen-lockfile
3133
3234 - name : Set version from tag
3335 if : startsWith(github.ref, 'refs/tags/v')
5759 --draft=false 2>/dev/null || echo "Release $TAG already exists, skipping creation"
5860
5961 - name : Upload dist artifact
60- uses : actions/upload-artifact@v6
62+ uses : actions/upload-artifact@v7
6163 with :
6264 name : dist
6365 path : |
@@ -67,13 +69,13 @@ jobs:
6769
6870 prepare-runtime :
6971 runs-on : ubuntu-latest
70- if : startsWith(github.ref, 'refs/tags/v')
7172
7273 steps :
7374 - name : Checkout
7475 uses : actions/checkout@v6
7576
7677 - name : Create GitHub Release
78+ if : startsWith(github.ref, 'refs/tags/v')
7779 env :
7880 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
7981 run : |
8486 --generate-notes \
8587 --draft=false 2>/dev/null || echo "Release $TAG already exists, skipping creation"
8688
89+ - name : Skip runtime asset preparation for manual builds
90+ if : ${{ !startsWith(github.ref, 'refs/tags/v') }}
91+ run : echo "Runtime asset preparation is only needed for tagged releases."
92+
8793 - name : Check runtime assets
94+ if : startsWith(github.ref, 'refs/tags/v')
8895 id : runtime-assets
8996 env :
9097 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -116,10 +123,10 @@ jobs:
116123 --method POST \
117124 "repos/${SOURCE_REPO}/actions/workflows/release-runtime.yml/dispatches" \
118125 -f ref=main \
119- -f inputs[source_ref]=" $SOURCE_REF" \
120- -f inputs[runtime_version]=" $RUNTIME_VERSION" \
121- -f inputs[target_release_repo]=" $GITHUB_REPOSITORY" \
122- -f inputs[target_release_tag]=" $TARGET_TAG"
126+ -f " inputs[source_ref]=$SOURCE_REF" \
127+ -f " inputs[runtime_version]=$RUNTIME_VERSION" \
128+ -f " inputs[target_release_repo]=$GITHUB_REPOSITORY" \
129+ -f " inputs[target_release_tag]=$TARGET_TAG"
123130
124131 - name : Wait for runtime assets
125132 if : steps.runtime-assets.outputs.missing == '1'
@@ -175,7 +182,9 @@ jobs:
175182 name : dist
176183
177184 - name : Setup pnpm
178- uses : pnpm/action-setup@v4
185+ uses : pnpm/action-setup@v6
186+ with :
187+ version : 10.33.0
179188
180189 - name : Setup Node.js
181190 uses : actions/setup-node@v6
@@ -184,12 +193,12 @@ jobs:
184193 cache : pnpm
185194
186195 - name : Setup Python for node-gyp
187- uses : actions/setup-python@v5
196+ uses : actions/setup-python@v6
188197 with :
189198 python-version : ' 3.11'
190199
191200 - name : Install dependencies
192- run : pnpm install --no- frozen-lockfile
201+ run : pnpm install --frozen-lockfile
193202
194203 - name : Set version from tag
195204 if : startsWith(github.ref, 'refs/tags/v')
@@ -256,6 +265,9 @@ jobs:
256265 - name : Validate packaged bundle (macOS ${{ matrix.arch }})
257266 run : node ./scripts/electron-builder/verifyBundle.cjs "release/mac-${{ matrix.arch }}/Agent Teams UI.app" darwin ${{ matrix.arch }}
258267
268+ - name : Smoke packaged app (macOS ${{ matrix.arch }})
269+ run : node ./scripts/electron-builder/smokePackagedApp.cjs "release/mac-${{ matrix.arch }}/Agent Teams UI.app" darwin
270+
259271 - name : Upload assets to release
260272 if : startsWith(github.ref, 'refs/tags/v')
261273 env :
@@ -284,7 +296,9 @@ jobs:
284296 name : dist
285297
286298 - name : Setup pnpm
287- uses : pnpm/action-setup@v4
299+ uses : pnpm/action-setup@v6
300+ with :
301+ version : 10.33.0
288302
289303 - name : Setup Node.js
290304 uses : actions/setup-node@v6
@@ -293,12 +307,12 @@ jobs:
293307 cache : pnpm
294308
295309 - name : Setup Python for node-gyp
296- uses : actions/setup-python@v5
310+ uses : actions/setup-python@v6
297311 with :
298312 python-version : ' 3.11'
299313
300314 - name : Install dependencies
301- run : pnpm install --no- frozen-lockfile
315+ run : pnpm install --frozen-lockfile
302316
303317 - name : Set version from tag
304318 if : startsWith(github.ref, 'refs/tags/v')
@@ -359,6 +373,10 @@ jobs:
359373 shell : bash
360374 run : node ./scripts/electron-builder/verifyBundle.cjs "release/win-unpacked" win32 x64
361375
376+ - name : Smoke packaged app (Windows)
377+ shell : bash
378+ run : node ./scripts/electron-builder/smokePackagedApp.cjs "release/win-unpacked" win32
379+
362380 - name : Upload assets to release
363381 if : startsWith(github.ref, 'refs/tags/v')
364382 shell : bash
@@ -388,7 +406,9 @@ jobs:
388406 name : dist
389407
390408 - name : Setup pnpm
391- uses : pnpm/action-setup@v4
409+ uses : pnpm/action-setup@v6
410+ with :
411+ version : 10.33.0
392412
393413 - name : Setup Node.js
394414 uses : actions/setup-node@v6
@@ -397,17 +417,17 @@ jobs:
397417 cache : pnpm
398418
399419 - name : Setup Python for node-gyp
400- uses : actions/setup-python@v5
420+ uses : actions/setup-python@v6
401421 with :
402422 python-version : ' 3.11'
403423
404424 - name : Install Linux packaging dependencies
405425 run : |
406426 sudo apt-get update
407- sudo apt-get install -y libarchive-tools rpm
427+ sudo apt-get install -y libarchive-tools rpm xvfb
408428
409429 - name : Install dependencies
410- run : pnpm install --no- frozen-lockfile
430+ run : pnpm install --frozen-lockfile
411431
412432 - name : Set version from tag
413433 if : startsWith(github.ref, 'refs/tags/v')
@@ -463,6 +483,9 @@ jobs:
463483 - name : Validate packaged bundle (Linux)
464484 run : node ./scripts/electron-builder/verifyBundle.cjs "release/linux-unpacked" linux x64
465485
486+ - name : Smoke packaged app (Linux)
487+ run : xvfb-run -a node ./scripts/electron-builder/smokePackagedApp.cjs "release/linux-unpacked" linux
488+
466489 - name : Upload assets to release
467490 if : startsWith(github.ref, 'refs/tags/v')
468491 env :
@@ -542,8 +565,8 @@ jobs:
542565
543566 # Canonical Windows feed
544567 download_asset "Claude-Agent-Teams-UI-Setup.exe"
545- WIN_SHA="$(sha512_base64 Claude-Agent-Teams-UI-Setup.exe)"
546- WIN_SIZE="$(file_size Claude-Agent-Teams-UI-Setup.exe)"
568+ WIN_SHA="$(sha512_base64 " Claude-Agent-Teams-UI-Setup.exe" )"
569+ WIN_SIZE="$(file_size " Claude-Agent-Teams-UI-Setup.exe" )"
547570 cat > latest.yml <<EOF
548571 version: ${VERSION}
549572 files:
@@ -557,8 +580,8 @@ jobs:
557580
558581 # Canonical Linux feed
559582 download_asset "Claude-Agent-Teams-UI.AppImage"
560- LINUX_SHA="$(sha512_base64 Claude-Agent-Teams-UI.AppImage)"
561- LINUX_SIZE="$(file_size Claude-Agent-Teams-UI.AppImage)"
583+ LINUX_SHA="$(sha512_base64 " Claude-Agent-Teams-UI.AppImage" )"
584+ LINUX_SIZE="$(file_size " Claude-Agent-Teams-UI.AppImage" )"
562585 cat > latest-linux.yml <<EOF
563586 version: ${VERSION}
564587 files:
@@ -576,10 +599,10 @@ jobs:
576599 # until we switch to universal packaging or an arch-aware provider.
577600 download_asset "Agent.Teams.AI-${VERSION}-arm64-mac.zip"
578601 download_asset "Agent.Teams.AI-${VERSION}-arm64.dmg"
579- MAC_ZIP_SHA="$(sha512_base64 Agent.Teams.AI-${VERSION}-arm64-mac.zip)"
580- MAC_ZIP_SIZE="$(file_size Agent.Teams.AI-${VERSION}-arm64-mac.zip)"
581- MAC_DMG_SHA="$(sha512_base64 Agent.Teams.AI-${VERSION}-arm64.dmg)"
582- MAC_DMG_SIZE="$(file_size Agent.Teams.AI-${VERSION}-arm64.dmg)"
602+ MAC_ZIP_SHA="$(sha512_base64 " Agent.Teams.AI-${VERSION}-arm64-mac.zip" )"
603+ MAC_ZIP_SIZE="$(file_size " Agent.Teams.AI-${VERSION}-arm64-mac.zip" )"
604+ MAC_DMG_SHA="$(sha512_base64 " Agent.Teams.AI-${VERSION}-arm64.dmg" )"
605+ MAC_DMG_SIZE="$(file_size " Agent.Teams.AI-${VERSION}-arm64.dmg" )"
583606 cat > latest-mac.yml <<EOF
584607 version: ${VERSION}
585608 files:
0 commit comments