Skip to content

Re-converge release workflows: collect GitHub-release assets via release-asset-<branch>-* convention #727

@ptr727

Description

@ptr727

Re-convergence steps (PlexCleaner — .NET)

Upstream template change

ptr727/ProjectTemplate decoupled GitHub-release asset assembly from the per-target build jobs (ProjectTemplate #108, shipped in #109 / released via #110).

Before: the github-release job in build-release-task.yml downloaded release files by referencing specific build jobs (build-nugetlibrary, build-executable) by their artifact-id outputs. Subsetting or swapping targets meant editing that job.

Now: a target contributes files to the GitHub release by uploading a workflow artifact named release-asset-<branch>-<target>, and github-release collects them by pattern (release-asset-<branch>-*, merge-multiple) — it never names a build job. The release orchestration (tag the built commit, create the release, attach assets) is now reusable verbatim.

See the template's AGENTS.md → "Release Model" (the "Orchestration vs. build — the override seam" bullet) for the full contract.

To stay in sync, mirror these template edits:

  1. Pull the updated build-release-task.yml, build-nugetlibrary-task.yml, and build-executable-task.yml.
  2. In each release-contributing leaf task, rename the uploaded artifact to release-asset-<branch>-<target> (e.g. release-asset-<branch>-executable, release-asset-<branch>-nugetlibrary) and drop the now-unused artifact-id workflow outputs.
  3. Confirm github-release downloads via pattern: release-asset-<branch>-* (merge-multiple: true) rather than per-job artifact-id.

No behavior change once renamed — same files land on the GitHub release. Note: subset targets by deleting the job + its github-release needs entry, not via enable_*: false (a skipped needs job skips the release job too).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions