| api-key | SkaleData API key (sdk_...) | yes | — |
| cluster-id | Cluster public ID (from SkaleData console) | yes | — |
| app-type | Application type (airflow, airbyte, docs, slackbot, superset, datahub) | yes | airflow |
| image-tag | Docker image tag (defaults to git SHA) | no | ${{ github.sha }} |
| dockerfile | Path to Dockerfile | no | ./Dockerfile |
| context | Docker build context directory | no | . |
| build-args | Docker build arguments (one per line, KEY=VALUE format) | no | "" |
| api-url | SkaleData API URL (override for dev/staging) | no | https://api.skaledata.com |
| skip-build | Skip docker build/push and deploy-image, even when image-rebuild paths match (DAGs still upload) | no | false |
| image-rebuild-paths | Newline-separated glob patterns. If any file changed in the push matches one of these
patterns, an image rebuild + deploy-image is triggered. DAGs are uploaded regardless.
When change detection isn't possible (workflow_dispatch, first push to branch, shallow
clone with no parent), the action defaults to rebuilding the image — safe fallback.
| no | Dockerfile
requirements.txt
requirements/**
pyproject.toml
setup.py
setup.cfg
packages/**
plugins/**
|
| dags-path | Path to DAGs folder, packaged as tar.gz and uploaded to blob storage on every run. | no | dags |
| skip-dag-upload | Skip the DAG sync upload. Use if you manage DAGs out-of-band (rare). | no | false |
| respect-gitignore | When true (default), only files git would consider "tracked or untracked-but-not-ignored"
are synced. Honors nested .gitignore files exactly like git itself. Set to 'false' to
ship everything under dags-path regardless of .gitignore.
| no | true |
| extra-excludes | Newline-separated list of file/dir names to exclude in addition to .gitignore. Matched
against the basename anywhere in the tree (`find -name`). Trailing slash means
"directory of that name". Example:
target/
build/
secrets.json
| no | "" |
| extra-includes | Newline-separated list of path globs (relative to dags-path) to re-add even if
.gitignore would skip them. Useful when CI generates files into a gitignored dir
that you actually want shipped. Example:
dbt_packages/manifest.json
target/index.html
| no | "" |
| verbose-sync | When false (default), the underlying cloud sync tool runs with errors-only
verbosity — a clean run prints one summary notice. Set to 'true' to surface
the full per-file upload/delete output (still wrapped in a collapsible
::group:: in the GitHub Actions log).
| no | false |