Skip to content

chore(DO-7930): sync with cloudposse upstream to inherit deployment-id support - #3

Open
gokul-das-ext wants to merge 5 commits into
mainfrom
sync-cloudposse-deployment-id
Open

chore(DO-7930): sync with cloudposse upstream to inherit deployment-id support#3
gokul-das-ext wants to merge 5 commits into
mainfrom
sync-cloudposse-deployment-id

Conversation

@gokul-das-ext

Copy link
Copy Markdown

Summary

Why not just point at cloudposse directly?

cloudposse/github-action-deploy-argocd@v1.11.0 still uses mamezou-tech/setup-helmfile@v2.2.0, which hardcodes linux_amd64 and has no ARM64 support. example-eks-project (and other apps) actively run their ArgoCD deploy jobs on runs-on/pool=small-arm64 — dropping the fork entirely would break helmfile setup on those runners. This sync keeps our ARM64 fix while adopting upstream's better deployment-id implementation (yq + strenv stamping, conditional on non-empty — avoids the type-coercion risk and the spurious extra-commit-on-upgrade issue our own #2 had).

Verification

  • action.yml diff confirms both the ARM64 Setup helmfile step and cloudposse's Stamp deployment id step are present post-merge.
  • Cloudposse's own test coverage (test-helm-raw.yml asserting round-trip, test-helm-raw-default-kube-version.yml asserting has("deployment_id") == false when omitted) comes along with the merge.

🤖 Generated with Claude Code

johncblandii and others added 5 commits August 21, 2026 09:53
* chore: upgrade actions to Node 24 runtime (SHA-pinned)

* chore: bump wait-commit-status to v0.2.2 (node24, SHA-pinned)
…dupe (#92)

ArgoCD's notification `oncePer` trigger dedupes on whichever field it is
pointed at. Keying it on the application commit means a rollback --
replaying a commit ArgoCD has already notified for -- is silently
suppressed, so the rollback reports no status at all.

Add an optional `deployment-id` input whose value is written to the
generated `config.yaml` as `deployment_id`, giving `oncePer` a field that
is unique per deploy attempt rather than per code state.

The value is stamped with `yq` and `strenv` rather than interpolated into
the YAML literal, so IDs that would otherwise be type-coerced or break the
document (`01234`, `true`, values containing `:`) round-trip correctly, and
the input never reaches the shell command string.

Left at its empty default the step is skipped entirely and the key is
omitted, keeping `config.yaml` byte-identical for existing callers. This
matters because the action only commits to the GitOps repo when the
rendered output actually changes -- always emitting the key would push a
config-only commit, and an ArgoCD sync, for every app on upgrade.

Covered by the helm raw tests in both directions: the value round-trips
through the committed `config.yaml` when passed, and the key is absent when
it is not.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants