v2.0.0 — DAG sync + selective image rebuilds
Major release that splits the deploy flow into two independent paths.
New behavior
- Image rebuild (slow, ~2–5 min): only when changed files match the new
image-rebuild-pathsinput - DAG upload (fast, ~5s + 30s sync): always runs, regardless of whether the image rebuilt — uploads
dags-pathto the cluster's blob bucket via the newPOST /clusters/{id}/upload-dagsendpoint
A one-line DAG edit no longer triggers an image rebuild. DAGs still ship to the cluster on every push.
New inputs
| Input | Default | Description |
|---|---|---|
image-rebuild-paths |
Dockerfile, requirements.txt, requirements/**, pyproject.toml, setup.py, setup.cfg, packages/**, plugins/** |
Newline glob patterns that trigger a rebuild when changed |
dags-path |
dags |
Folder tarred and uploaded on every run |
skip-dag-upload |
false |
Opt-out for repos managing DAGs out-of-band |
New outputs
image-rebuilt—trueif a build + deploy ran this invocationdag-files-uploaded— number of files uploadeddag-sync-url— blob storage URL
Migration from v1
- Bump
uses: skaledata/deploy-action@v2 - Add
fetch-depth: 0toactions/checkoutso diff-based change detection has a base commit - Drop
COPY dags/from your Dockerfile — the sync sidecar overwrites that path on pod startup, so baked-in DAGs are wasted layers - (Optional) Customize
image-rebuild-pathsif your repo has non-standard layouts
To preserve exact v1 behavior (rebuild on every push, no DAG sync): set image-rebuild-paths: '*' and skip-dag-upload: 'true'.
Change detection fallbacks
When no diff base is available (workflow_dispatch, first push to branch, shallow clone with no parent), the action defaults to rebuilding the image — safe fallback so you never miss a deploy.
Requires
SkaleData API ≥ the release that includes POST /clusters/{id}/upload-dags (skaledata/skaledata#22).