Skip to content

Commit 3eb6be8

Browse files
committed
fix(ci): stabilize ci and release workflows
1 parent 7d2321b commit 3eb6be8

79 files changed

Lines changed: 3659 additions & 344 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ jobs:
5050
uses: actions/checkout@v6
5151

5252
- name: Setup pnpm
53-
uses: pnpm/action-setup@v4
53+
uses: pnpm/action-setup@v6
54+
with:
55+
version: 10.33.0
5456

5557
- name: Setup Node.js
5658
uses: actions/setup-node@v6
@@ -59,17 +61,14 @@ jobs:
5961
cache: pnpm
6062

6163
- name: Install dependencies
62-
run: pnpm install --no-frozen-lockfile
64+
run: pnpm install --frozen-lockfile
6365

6466
- name: Restore ESLint cache
6567
uses: actions/cache@v5
6668
with:
6769
path: .eslintcache
6870
key: eslint-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'eslint.config.*', 'src/**/*.ts', 'src/**/*.tsx') }}
6971

70-
- name: Auto-fix import sort (Node version parity)
71-
run: npx eslint src/ --fix --no-cache || true
72-
7372
- name: Validate workspace truth gate
7473
run: pnpm check:ci
7574

@@ -81,7 +80,9 @@ jobs:
8180
uses: actions/checkout@v6
8281

8382
- name: Setup pnpm
84-
uses: pnpm/action-setup@v4
83+
uses: pnpm/action-setup@v6
84+
with:
85+
version: 10.33.0
8586

8687
- name: Setup Node.js
8788
uses: actions/setup-node@v6
@@ -90,7 +91,7 @@ jobs:
9091
cache: pnpm
9192

9293
- name: Install dependencies
93-
run: pnpm install --no-frozen-lockfile
94+
run: pnpm install --frozen-lockfile
9495

9596
- name: Test
9697
run: pnpm test:workspace:ci
@@ -108,7 +109,9 @@ jobs:
108109
run: git config --global core.longpaths true
109110

110111
- name: Setup pnpm
111-
uses: pnpm/action-setup@v4
112+
uses: pnpm/action-setup@v6
113+
with:
114+
version: 10.33.0
112115

113116
- name: Setup Node.js
114117
uses: actions/setup-node@v6
@@ -117,7 +120,7 @@ jobs:
117120
cache: pnpm
118121

119122
- name: Install dependencies
120-
run: pnpm install --no-frozen-lockfile
123+
run: pnpm install --frozen-lockfile
121124

122125
- name: Test task change ledger
123126
run: pnpm test:task-change-ledger

.github/workflows/codex-runtime-smoke.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ jobs:
5151
run: git config --global core.longpaths true
5252

5353
- name: Setup pnpm
54-
uses: pnpm/action-setup@v4
54+
uses: pnpm/action-setup@v6
55+
with:
56+
version: 10.33.0
5557

5658
- name: Setup Node.js
5759
uses: actions/setup-node@v6
@@ -60,7 +62,7 @@ jobs:
6062
cache: pnpm
6163

6264
- name: Install dependencies
63-
run: pnpm install --no-frozen-lockfile --ignore-scripts
65+
run: pnpm install --frozen-lockfile --ignore-scripts
6466

6567
- name: Smoke Codex app-managed runtime install
6668
run: pnpm smoke:codex-runtime-install

.github/workflows/landing.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ on:
44
push:
55
branches: [main]
66
paths: [landing/**]
7+
pull_request:
8+
paths: [landing/**]
79
workflow_dispatch:
810

911
permissions:
1012
contents: read
11-
pages: write
12-
id-token: write
1313

1414
concurrency:
15-
group: pages
15+
group: landing-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.ref }}
1616
cancel-in-progress: true
1717

1818
jobs:
@@ -24,6 +24,8 @@ jobs:
2424
- uses: actions/setup-node@v6
2525
with:
2626
node-version: 22
27+
cache: npm
28+
cache-dependency-path: landing/package-lock.json
2729

2830
- name: Install dependencies
2931
working-directory: landing
@@ -37,18 +39,24 @@ jobs:
3739
NUXT_PUBLIC_GITHUB_REPO: 777genius/agent-teams-ai
3840
run: npm run generate:all
3941

40-
- uses: actions/configure-pages@v5
42+
- uses: actions/configure-pages@v6
43+
if: github.event_name != 'pull_request'
4144

42-
- uses: actions/upload-pages-artifact@v3
45+
- uses: actions/upload-pages-artifact@v5
46+
if: github.event_name != 'pull_request'
4347
with:
4448
path: landing/.output/public
4549

4650
deploy:
4751
needs: build
4852
runs-on: ubuntu-latest
53+
if: github.event_name != 'pull_request'
54+
permissions:
55+
pages: write
56+
id-token: write
4957
environment:
5058
name: github-pages
5159
url: ${{ steps.deployment.outputs.page_url }}
5260
steps:
5361
- id: deployment
54-
uses: actions/deploy-pages@v4
62+
uses: actions/deploy-pages@v5

.github/workflows/release.yml

Lines changed: 49 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ jobs:
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
@@ -27,7 +29,7 @@ jobs:
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')
@@ -57,7 +59,7 @@ jobs:
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: |
@@ -84,7 +86,12 @@ jobs:
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

Comments
 (0)