Releases: skaledata/deploy-action
v2.0.1 — fix: also push :current tag
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
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).