Skip to content

Example: `nexa-databricks-api`

The Databricks API uses Python CI with Ruff, MyPy, Pytest, coverage, Semgrep, and a named Docker ci stage when SDK/native dependencies make containerized tests valuable.

jobs:
ci:
uses: dataready-ai/nexa-ci/.github/workflows/python-ci.yml@v1
with:
python-version: '3.12'
image-name: nexa-databricks-api
dockerfile: Dockerfile
docker-ci-target: ci
docker-runtime-target: runtime
build-args: INSTALL_DATABRICKS_CLI=true
ecr-repository: aws-iac-nexa-databricks-api
acr-repository: nexa-databricks-api
spcs-repository: NEXA_DATABRICKS_API_REPO
sonar-project-key: nexa-databricks-api
secrets: inherit

Live Databricks platform tests execute after deployment with scoped service credentials and do not replace mocked unit tests around SDK adapters.

Ruff configuration, MyPy scope, Pytest markers, and coverage exclusions are committed to the repository. Tests isolate Databricks SDK calls behind adapters and verify error translation, authorization, retry, timeout, and pagination behavior. Credentials are never required for the PR unit suite.

The runtime image includes only the CLI or native tooling required by application behavior. If INSTALL_DATABRICKS_CLI changes the final image, the build argument is recorded in build metadata and covered by the same image scan. Live platform tests execute only after Argo CD has deployed the image to the intended environment.