Skip to Content
Start HereConnect CI

Connect CI

CI should run the same authored assets you run locally: contracts, workflows, and raw test() checks committed to your verification project.

Use the same profile locally and in CI. Define a ci profile in glubean.yaml once, then run it with one command everywhere. The point is simple: CI should produce fresh evidence from the same source of truth, not a second hand-authored workflow.

The ci profile

npx glubean init scaffolds a ci profile. It declares which committed suites run, plus fail-fast, reporters, and optionally thresholds:

suites: tests: target: ./tests kinds: [test] contracts: target: ./contracts kinds: [contract, flow] profiles: ci: suites: [tests, contracts] selection: excludeTags: [manual, destructive] execution: failFast: true concurrency: 2 reporters: junit: .glubean/results/junit.xml resultJson: .glubean/results/ci.result.json
npx glubean ci run

npx glubean ci run is shorthand for npx glubean run --profile ci. Suites, fail-fast, and reporter paths all come from profiles.ci — nothing to remember on the command line, and CI matches what you run locally with npx glubean run --profile ci.

  • suites: [tests, contracts] keeps CI focused on stable authored assets: raw test() checks plus executable contracts and workflows.
  • reporters.resultJson gives you a stable machine-readable artifact.
  • reporters.junit integrates with common CI test dashboards.

Override a path ad-hoc when needed: npx glubean ci run --reporter junit:other.xml.

GitHub Actions example

name: test-api on: [push, pull_request] jobs: glubean: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "22" - run: npm ci - run: npx glubean ci run

When you are ready for uploads

Add --upload to send results to Glubean Cloud after each CI run. Uploaded CI runs become Target evidence that developers, QA, product, support, and the webapp Agent can inspect:

- name: Run and upload Glubean evidence env: GLUBEAN_TOKEN: ${{ secrets.GLUBEAN_TOKEN }} run: npx glubean ci run --upload

This requires a scoped token with runs:write. Keep the token in the CI secret store as GLUBEAN_TOKEN; keep GLUBEAN_PROJECT_ID and, when needed, GLUBEAN_TARGET_ID in the committed .env, or set upload.projectId / upload.targetId on the ci profile. Setup is covered in Upload Your First Run.

Next

Last updated on