Skip to content

feat: expose on_existing_tag input in release pipeline (skip mode for re-runs) #554

Description

@gandalf-at-lerian

Context

When a pipeline re-run (attempt #2+) hits the tag existence check step before build/push, the current default behavior is on_existing_tag: fail, which aborts immediately — even when the intent is just to re-emit GitOps artifacts so the cluster can be updated.

Problem

The go-pipeline-template workflow (build.yml) supports an on_existing_tag input, but the caller-facing wrapper (release.yml) does not expose or forward this input. As a result, consumers cannot set skip mode on re-runs.

Proposed Change

  1. Add on_existing_tag as an optional input in the caller-facing workflow (e.g. release.yml) with default fail.
  2. Forward the input through to the inner build.yml template call via with:.
  3. When set to skip: treat existing tag as OK (warning only), skip build/push, and still emit GitOps artifacts so the cluster update proceeds — evaluated per component (matrix).

Behavior Contract

Value Tag exists Action
fail (default) → error, abort current behavior preserved
skip → warning, continue skip build/push, emit GitOps artifact

Acceptance Criteria

  • on_existing_tag: skip is usable from the consumer repo without changes to template internals.
  • Each matrix component is evaluated independently.
  • GitOps artifact is emitted even when build is skipped.
  • fail remains the default (no behavior change for existing callers).

Notes

  • skip does not validate that the existing image matches the current commit — immutability by convention is assumed for rc/release tags.
  • This is an idempotency/re-run feature, not a replacement for fail on fresh releases.

Requested by: Bedatty

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvement request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions