@@ -329,6 +329,53 @@ jobs:
329329 DBT_E2E_VERSIONS : " 1.8,1.10,1.11"
330330 DBT_RESOLVE_SCENARIOS : " venv,uv,system"
331331
332+ # ---------------------------------------------------------------------------
333+ # Verdaccio sanity suite — tests the real `npm install -g` flow.
334+ # Only on push to main (too slow for PRs, needs Docker Compose).
335+ # Catches publish-pipeline bugs: missing files, broken symlinks, wrong bin
336+ # field, dependency resolution failures, postinstall script issues.
337+ # ---------------------------------------------------------------------------
338+ sanity-verdaccio :
339+ name : Sanity (Verdaccio)
340+ needs : changes
341+ if : github.event_name == 'push'
342+ runs-on : ubuntu-latest
343+ timeout-minutes : 30
344+ steps :
345+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
346+
347+ - uses : oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 # v2
348+ with :
349+ bun-version : " 1.3.10"
350+
351+ - name : Cache Bun dependencies
352+ uses : actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
353+ with :
354+ path : ~/.bun/install/cache
355+ key : bun-${{ runner.os }}-${{ hashFiles('bun.lock') }}
356+ restore-keys : |
357+ bun-${{ runner.os }}-
358+
359+ - name : Install dependencies
360+ run : bun install
361+
362+ - name : Build CLI binary
363+ run : bun run packages/opencode/script/build.ts --target-index=1
364+ env :
365+ OPENCODE_VERSION : 0.0.0-sanity-${{ github.sha }}
366+ MODELS_DEV_API_JSON : test/tool/fixtures/models-api.json
367+
368+ - name : Build dbt-tools
369+ run : bun run build
370+ working-directory : packages/dbt-tools
371+
372+ - name : Run Verdaccio sanity suite
373+ run : |
374+ docker compose -f test/sanity/docker-compose.verdaccio.yml up \
375+ --build --abort-on-container-exit --exit-code-from sanity
376+ env :
377+ ANTHROPIC_API_KEY : ${{ secrets.ANTHROPIC_API_KEY }}
378+
332379 marker-guard :
333380 name : Marker Guard
334381 runs-on : ubuntu-latest
0 commit comments