Skip to content

v2.0.0 — DAG sync + selective image rebuilds

Choose a tag to compare

@chrishronek chrishronek released this 30 May 20:31
· 5 commits to main since this release
ddf6394

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-paths input
  • DAG upload (fast, ~5s + 30s sync): always runs, regardless of whether the image rebuilt — uploads dags-path to the cluster's blob bucket via the new POST /clusters/{id}/upload-dags endpoint

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-rebuilttrue if a build + deploy ran this invocation
  • dag-files-uploaded — number of files uploaded
  • dag-sync-url — blob storage URL

Migration from v1

  1. Bump uses: skaledata/deploy-action@v2
  2. Add fetch-depth: 0 to actions/checkout so diff-based change detection has a base commit
  3. Drop COPY dags/ from your Dockerfile — the sync sidecar overwrites that path on pod startup, so baked-in DAGs are wasted layers
  4. (Optional) Customize image-rebuild-paths if 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).