CI Integration
Bivvy’s lint command supports SARIF output format, which is widely supported by CI/CD systems and IDEs for displaying static analysis results.
GitHub Actions
Upload SARIF results to GitHub Code Scanning:
- name: Lint Bivvy config run: bivvy lint --format=sarif > bivvy.sarif
- uses: github/codeql-action/upload-sarif@v2 with: sarif_file: bivvy.sarifGitLab CI
Export lint results as a report artifact:
lint: script: - bivvy lint --format=json > bivvy-lint.json artifacts: reports: codequality: bivvy-lint.jsonVS Code
Use the SARIF Viewer extension to view lint results directly in your editor:
- Install the SARIF Viewer extension
- Run
bivvy lint --format=sarif > .bivvy/lint.sarif - Open the SARIF file to see issues in the editor
Running Bivvy in CI
Beyond linting, you can run Bivvy itself in CI to set up your test
environment. Bivvy auto-detects CI environments (via CI, GITHUB_ACTIONS,
and other common variables) and automatically forces non-interactive mode:
# GitHub Actions- name: Setup environment run: bivvy run --env ciIn CI mode, the workflow progress bar is suppressed to avoid noisy output
in log-based environments. You can also explicitly pass --non-interactive
or --ci to force this behavior outside auto-detected CI.
Provided requirements
CI pipelines typically manage services (databases, caches) outside of
Bivvy. Use provided_requirements to skip gap checks for tools that
are already available:
settings: environments: ci: provided_requirements: - postgres-server - redis-server - dockerThis prevents Bivvy from trying to install or start services that the pipeline already provides.
Environment-specific workflows
You can also set a default_workflow for CI to run a different set of
steps:
settings: environments: ci: default_workflow: ci provided_requirements: - postgres-server
workflows: ci: description: "CI setup (no prompts)" steps: [deps, database, migrations] settings: non_interactive: trueSee Environments for the full environment configuration reference.
Exit Codes
The lint command returns:
0- No errors (warnings allowed)1- One or more errors found2- Configuration loading error
Use --strict to treat warnings as errors.