chore(DO-7930): sync with cloudposse upstream to inherit deployment-id support - #3
Merged
Merged
Conversation
* 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.
jrbeilke
approved these changes
Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cloudposse/github-action-deploy-argocd@maininto our fork'smain.DO-7299ARM64 fix (Setup helmfilestep) — confirmed no conflicts, the changes touch non-overlapping parts ofaction.yml.deployment-idpatch — closed in favor of this.A
git mergepulls in every commit cloudposse made onmainsince our fork last diverged(
90f3213, 2026-08-19) — not just the one PR we wanted. That range includes:9db127d/ cloudposse#92 — thedeployment-idinput we actually need (see "why" below).e005beb/ cloudposse#90 — upgrades cloudposse's actions to the Node 24 runtime, andswitches several
uses:refs (includingactions/checkout) from version tags (@v6) topinned commit SHAs, as a supply-chain-hardening change. Unrelated to deployment-id, but came
along as part of the same merge — this is why the diff includes
actions/checkoutand similarversion-to-SHA changes that aren't otherwise explained by this PR's stated purpose.
chore: update README.mdcommits (auto-regenerated docs following the above).This is a deliberate tradeoff: merging the whole branch (rather than cherry-picking just the
deployment-id commit) keeps our fork in sync with upstream going forward, at the cost of a wider
diff in this one PR. Both #90 and #92 are cloudposse's own tested, already-merged changes — not
new here.
Why deployment-id
ArgoCD's notification
oncePertrigger dedupes on whichever field it is pointed at. Keying it onthe application commit has a gap: rollback. Replaying a previously-deployed commit reuses an
app_commitvalue ArgoCD already marked as notified, so the rollback's own success/failure issilently suppressed — no GitHub status at all, not even a wrong one.
Keying the dedupe on something unique per deploy attempt rather than per code state closes
that gap. The recommended value is
${{ github.run_id }}-${{ github.run_attempt }}.implementation notes (cloudposse's, inherited via this merge)
yq+strenvrather than interpolated into the YAML literal, sothe input never reaches the shell command string and doesn't risk YAML type-coercion issues.
deployment_idisomitted from
config.yamlentirely — existing callers get byte-identical output.Testing — validated end-to-end on real infrastructure
Exercised through
DriveWealth/example-eks-project's real preview-deploy pipeline (not localemulation), via a temporary feature-branch ref override (
dw-github-workflowsPR #308,do-7930-deployment-id):app_commit: 3a8ad35b...,deployment_id: 33392430079-1app_commitunchanged,deployment_id: 33392430079-2— changedThat's the core property this whole change exists for: the same underlying commit gets a fresh
dedupe key on every deploy attempt, which is what fixes the rollback-suppression bug.
Part of a larger change
DriveWealth/dw-github-workflows#308— passesdeployment-idthroughDriveWealth/dwt-infra#2702— flips ArgoCD'soncePerto read it (held in draft pending this PR)🤖 Generated with Claude Code