Skip to content

Commit 0c70d89

Browse files
chore: restore browser CI and rightsize runners (#106)
1 parent 10f5204 commit 0c70d89

8 files changed

Lines changed: 80 additions & 13 deletions

File tree

.github/workflows/cd-publish-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ concurrency:
1515

1616
jobs:
1717
publish-release:
18-
runs-on: blacksmith-4vcpu-ubuntu-2404
18+
runs-on: blacksmith-2vcpu-ubuntu-2404
1919
steps:
2020
- name: Checkout
2121
uses: actions/checkout@v6

.github/workflows/cd-release-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ concurrency:
1515

1616
jobs:
1717
create-release-pr:
18-
runs-on: blacksmith-4vcpu-ubuntu-2404
18+
runs-on: blacksmith-2vcpu-ubuntu-2404
1919
if: |
2020
!contains(github.event.head_commit.message, '[skip-release]') &&
2121
!contains(github.event.head_commit.message, 'chore: bump version')

.github/workflows/ci.yml

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ concurrency:
2525
jobs:
2626
stage-1-quality:
2727
name: Stage 1 - Quality
28-
runs-on: blacksmith-4vcpu-ubuntu-2404
28+
runs-on: blacksmith-2vcpu-ubuntu-2404
2929
env:
3030
PUBLIC_CONVEX_URL: "https://example.convex.cloud"
3131
steps:
@@ -68,9 +68,71 @@ jobs:
6868
echo "- ultracite check" >> "$GITHUB_STEP_SUMMARY"
6969
echo "- deterministic manual inference + mapping tests" >> "$GITHUB_STEP_SUMMARY"
7070
71+
stage-2-browser-qa:
72+
name: Stage 2 - Browser QA
73+
needs: stage-1-quality
74+
runs-on: blacksmith-2vcpu-ubuntu-2404
75+
env:
76+
PUBLIC_CONVEX_URL: "https://example.convex.cloud"
77+
steps:
78+
- name: Checkout
79+
uses: actions/checkout@v6
80+
81+
- name: Setup Bun
82+
uses: oven-sh/setup-bun@v2
83+
with:
84+
bun-version: 1.3.8
85+
86+
- name: Cache Bun + Turbo
87+
uses: actions/cache@v5
88+
with:
89+
path: |
90+
~/.bun/install/cache
91+
.turbo
92+
key: ${{ runner.os }}-bun-turbo-${{ hashFiles('**/bun.lock', '**/bun.lockb', 'package.json', 'apps/**/package.json', 'packages/**/package.json') }}
93+
restore-keys: |
94+
${{ runner.os }}-bun-turbo-
95+
96+
- name: Cache Playwright browsers
97+
uses: actions/cache@v5
98+
with:
99+
path: ~/.cache/ms-playwright
100+
key: ${{ runner.os }}-playwright-${{ hashFiles('**/bun.lock', '**/bun.lockb', 'package.json', 'apps/**/package.json', 'packages/**/package.json') }}
101+
restore-keys: |
102+
${{ runner.os }}-playwright-
103+
104+
- name: Install dependencies
105+
run: bun install --frozen-lockfile
106+
107+
- name: Install agent-browser CLI
108+
run: npm install -g agent-browser@latest
109+
110+
- name: Install Playwright Chromium
111+
run: npx playwright install --with-deps chromium
112+
113+
- name: Run local browser QA smoke
114+
run: bun run qa:browser
115+
116+
- name: Upload browser QA artifacts
117+
if: always()
118+
uses: actions/upload-artifact@v6
119+
with:
120+
name: browser-qa-local-${{ github.run_id }}-${{ github.run_attempt }}
121+
path: artifacts/browser-qa/**
122+
if-no-files-found: error
123+
124+
- name: Publish summary
125+
if: always()
126+
run: |
127+
echo "## Stage 2 - Browser QA" >> "$GITHUB_STEP_SUMMARY"
128+
echo "" >> "$GITHUB_STEP_SUMMARY"
129+
echo "- local agent-browser smoke flow" >> "$GITHUB_STEP_SUMMARY"
130+
echo "- screenshots uploaded as workflow artifact" >> "$GITHUB_STEP_SUMMARY"
131+
echo "- Browserbase replay runs on the preview-validation workflow" >> "$GITHUB_STEP_SUMMARY"
132+
71133
stage-3-build:
72134
name: Stage 3 - Build
73-
needs: stage-1-quality
135+
needs: stage-2-browser-qa
74136
runs-on: blacksmith-4vcpu-ubuntu-2404
75137
env:
76138
PUBLIC_CONVEX_URL: "https://example.convex.cloud"
@@ -118,15 +180,20 @@ jobs:
118180
if: always()
119181
needs:
120182
- stage-1-quality
183+
- stage-2-browser-qa
121184
- stage-3-build
122-
runs-on: blacksmith-4vcpu-ubuntu-2404
185+
runs-on: blacksmith-2vcpu-ubuntu-2404
123186
steps:
124187
- name: Finalize staged CI result
125188
run: |
126189
if [ "${{ needs.stage-1-quality.result }}" != "success" ]; then
127190
echo "Stage 1 failed."
128191
exit 1
129192
fi
193+
if [ "${{ needs.stage-2-browser-qa.result }}" != "success" ]; then
194+
echo "Stage 2 failed."
195+
exit 1
196+
fi
130197
if [ "${{ needs.stage-3-build.result }}" != "success" ]; then
131198
echo "Stage 3 failed."
132199
exit 1

.github/workflows/pr-auto-merge.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
github.event.pull_request.draft == false &&
1919
github.event.pull_request.base.ref == github.event.repository.default_branch &&
2020
github.event.pull_request.head.repo.full_name == github.repository
21-
runs-on: blacksmith-4vcpu-ubuntu-2404
21+
runs-on: blacksmith-2vcpu-ubuntu-2404
2222
steps:
2323
- name: Enable auto-merge
2424
env:

.github/workflows/preview-seed.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
concurrency:
2121
group: preview-seed-${{ github.event.deployment.id }}
2222
cancel-in-progress: false
23-
runs-on: blacksmith-4vcpu-ubuntu-2404
23+
runs-on: blacksmith-2vcpu-ubuntu-2404
2424
env:
2525
PREVIEW_URL: ${{ github.event.deployment_status.environment_url || github.event.deployment_status.target_url || github.event.deployment.environment_url || '' }}
2626
DEPLOYMENT_ID: ${{ github.event.deployment.id }}

.github/workflows/tui-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575
if-no-files-found: error
7676

7777
browser-qa:
78-
runs-on: blacksmith-4vcpu-ubuntu-2404
78+
runs-on: blacksmith-2vcpu-ubuntu-2404
7979
env:
8080
PUBLIC_CONVEX_URL: "https://example.convex.cloud"
8181
BROWSERBASE_API_KEY: ${{ secrets.BROWSERBASE_API_KEY }}
@@ -148,7 +148,7 @@ jobs:
148148
needs:
149149
- build-binaries
150150
- browser-qa
151-
runs-on: blacksmith-4vcpu-ubuntu-2404
151+
runs-on: blacksmith-2vcpu-ubuntu-2404
152152
steps:
153153
- name: Download artifacts
154154
uses: actions/download-artifact@v8

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Web app: `http://localhost:5173`
4545
| e2e web | yes | `agent-browser` smoke scripts | yes |
4646

4747
Primary CI workflows:
48-
- `.github/workflows/ci.yml` (quality + build)
48+
- `.github/workflows/ci.yml` (quality + local browser smoke + build)
4949
- `.github/workflows/preview-seed.yml` (preview seed + browser QA)
5050
- `.github/workflows/org-required-checks.yml` (required merge gate)
5151

docs/browser-qa.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ The replay URL is captured in `results.json` as `browserbaseReplayUrl`.
3636
`ci.yml` now runs as one staged pipeline:
3737

3838
1. `Stage 1 - Quality`
39-
2. `Stage 2 - Browser QA`
40-
3. `Stage 3 - Integration + Build`
39+
2. `Stage 2 - Browser QA` using the local `agent-browser` smoke flow
40+
3. `Stage 3 - Build`
4141

42-
Stage 2 uploads screenshots as artifacts and posts replay/artifact links on PRs.
42+
`preview-validation` runs the same smoke path against the public preview deployment with `USE_BROWSERBASE=1`, uploads screenshots as artifacts, and posts replay/artifact links on PRs.
4343

4444
`tui-release.yml` also runs browser QA, uploads screenshots to release artifacts, and appends the Browserbase replay URL to release notes.

0 commit comments

Comments
 (0)