CI/CD Integration
Integrating Dochia into your CI/CD pipeline allows you to automate API testing, catch regressions early, and ensure the quality of your services with every code change.
Core Concepts
Exit Codes
Dochia uses exit codes to signal the outcome of a test run, which CI/CD platforms use to determine if a job should pass or fail:
0: Success (no errors found).1: One or more test errors found during execution.2: Usage error or internal error (invalid arguments, missing files, internal fault).
Your CI job will automatically fail if the exit code is non-zero.
Quality Gates
For fine-grained control over what constitutes a failure in CI, use --fail-on and --quality-gate:
# Fail the pipeline on any error or warning
dochia test -c api.yml -s "$API_URL" --fail-on error,warn
# Tolerate up to 4 errors and 19 warnings before failing
dochia test -c api.yml -s "$API_URL" --quality-gate "errors<5,warns<20"
# Combine: fail on any warning AND fail if errors reach 5
dochia test -c api.yml -s "$API_URL" \
--fail-on warn \
--quality-gate "errors<5"
Run Profiles
Profiles let you select the right test suite for each stage of your pipeline without manually listing playbooks:
# Fast smoke test on every commit
dochia test -c api.yml -s "$API_URL" --profile quick
# Balanced CI suite (recommended for most pipelines)
dochia test -c api.yml -s "$API_URL" --profile ci
# Security-focused scan on nightly schedule
dochia test -c api.yml -s "$API_URL" --profile security
# Deployment health check (HappyPath only)
dochia test -c api.yml -s "$API_URL" --health-check
See dochia list --profiles for a full list of built-in profiles.
Installation in CI
It's recommended to download and cache the Dochia binary in your CI pipeline to ensure consistent and fast execution.
# Example script to download and install Dochia
VERSION="v1.0.0"
OS="linux"
ARCH="amd64"
wget "https://github.com/dochia-dev/dochia-cli/releases/download/${VERSION}/dochia-cli-${OS}-${ARCH}.tar.gz"
tar -xzf dochia-cli-${OS}-${ARCH}.tar.gz
chmod +x dochia
./dochia --version
Authentication
Use your CI/CD platform's secret management system to handle API keys, tokens, and other credentials securely. Expose them to your test script as environment variables.
Reporting
Use the --output flag to save HTML reports. Your CI platform can then archive these reports as build artifacts, making
them accessible for review after the pipeline completes.
dochia test -c api.yml -s "$API_URL" --output ./dochia-report
GitHub Actions Example
Here is a complete workflow for running Dochia tests in GitHub Actions.
name: Dochia API Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
api-testing:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Dochia
run: | # Replace with your actual installation script
wget "https://example.com/dochia-cli.tar.gz"
tar -xzf dochia-cli.tar.gz
chmod +x ./dochia
echo "$(pwd)" >> $GITHUB_PATH
- name: Run Dochia Tests
env:
API_URL: ${{ secrets.API_URL }}
AUTH_TOKEN: ${{ secrets.AUTH_TOKEN }}
run: |
dochia test \
-c openapi.yml \
-s "$API_URL" \
-H "Authorization=Bearer $AUTH_TOKEN" \
--output ./dochia-report
- name: Upload Test Report
if: always() # Always run this step to upload reports even if tests fail
uses: actions/upload-artifact@v3
with:
name: dochia-test-report
path: ./dochia-report
GitLab CI Example
Here is a .gitlab-ci.yml configuration for running Dochia tests in GitLab CI.
stages:
- test
api_test:
stage: test
image: ubuntu:latest
variables:
API_URL: $STAGING_API_URL
AUTH_TOKEN: $STAGING_AUTH_TOKEN
before_script:
- apt-get update && apt-get install -y wget
- | # Replace with your actual installation script
wget "https://example.com/dochia-cli.tar.gz"
tar -xzf dochia-cli.tar.gz
chmod +x ./dochia
script:
- ./dochia test \
-c openapi.yml \
-s "$API_URL" \
-H "Authorization=Bearer $AUTH_TOKEN" \
--output ./dochia-report
artifacts:
when: always
paths:
- ./dochia-report
expire_in: 1 week
Best Practices for CI/CD
- Cache the Dochia Binary: Use your CI platform's caching mechanism to avoid downloading Dochia on every run.
- Use Profiles for Each Stage: Use
--profile quickor--profile cion every commit,--profile securityor--profile complianceon nightly schedules, and--health-checkas a post-deployment smoke test. - Set Quality Gates: Use
--quality-gateto define acceptable error thresholds rather than treating any single failure as a pipeline break — especially useful when introducing Dochia to a legacy API. - Use Blackbox Mode (
-b): In staging environments where 4xx validation errors are expected, blackbox mode limits failures to 5xx server errors only. - Centralize Configuration: Use YAML files for headers, reference data, and query parameters to keep your CI scripts clean and maintainable.
- Save Reports as Artifacts: Always pass
--outputand archive the report folder so failures are easy to investigate after the pipeline completes.
See Also
- Best Practices - General best practices for using Dochia.
- Authentication Flows - Handling authentication securely.
- Troubleshooting - Common issues and solutions.