Skip to content

Releases: skaledata/deploy-action

v2.0.1 — fix: also push :current tag

30 May 22:14
3bad017

Choose a tag to compare

Patch release fixing a silent prod regression discovered while dogfooding v2 against a real customer (Trux).

The bug

SkaleData's helm chart for Airflow configures defaultAirflowTag: current + imagePullPolicy: Always. Pods always re-pull :current on rolling restart. But v2.0.0 (and v1 before it) only pushed :<sha> and :latest. So :current got set once on first deploy (via SkaleData's provision_app helm upgrade) and never updated again. Every subsequent customer build pushed new image SHAs into ECR but pods kept loading the original first-ever-deploy image. Result: silent invisible deploys.

The fix

action.yml now also tags :current and pushes it alongside :<sha> and :latest. One-line behavioral change, no input/output schema changes.

+ CURRENT="${ar_url}/${app-type}:current"

  docker build \
    -t "$IMAGE" \
    -t "$LATEST" \
+   -t "$CURRENT" \
    ...

  docker push "$IMAGE"
  docker push "$LATEST"
+ docker push "$CURRENT"

Upgrade

Pinned to @v2.0.1 or using @v2? No change needed — the floating v2 tag now points at this commit. Your next deploy will start updating :current automatically.

If you've been affected by this regression (any commit post your first deploy was invisible in prod), once you bump to v2.0.1, the next push will rebuild the image AND finally move :current to point at it.

Detected by

Trux team's tdp-airflow EKS migration. PR: #2.

v2.0.0 — DAG sync + selective image rebuilds

30 May 20:31
ddf6394

Choose a tag to compare

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).