Improve platform and label matching ergonomics #2

Open
opened 2026-05-03 06:21:50 +00:00 by lambadalambda · 0 comments

Problem

Platform and label matching is powerful but easy to misconfigure, especially with architecture-specific runners.

Issues encountered while running multi-arch workflows:

  • Generic workflows without labels were eligible for ARM agents until every generic workflow was explicitly labelled platform=linux/amd64.
  • The !label=value syntax is useful but non-obvious. It was easy to misunderstand that !platform=linux/arm64 means the workflow must explicitly set platform=linux/arm64.
  • An armv7 userspace agent running on an arm64 host still advertised the host platform as linux/arm64, requiring a custom platform=linux/arm label override plus !platform=linux/arm.
  • There is no global repo/org policy like "generic workflows default to linux/amd64 unless explicitly platform-labelled".

Desired behavior

Improve platform/label ergonomics with one or more of:

  • clearer docs and examples for !label semantics
  • an explicit "requires workflow label" setting that does not overload label names
  • first-class support for overriding advertised platform for compatibility/userland cases
  • repo/org default labels for workflows
  • lint warnings for workflows that can run on any platform unintentionally

Why this matters

Multi-arch setups are common for release CI. Small label mistakes can schedule expensive or incompatible jobs on the wrong architecture.

## Problem Platform and label matching is powerful but easy to misconfigure, especially with architecture-specific runners. Issues encountered while running multi-arch workflows: - Generic workflows without labels were eligible for ARM agents until every generic workflow was explicitly labelled platform=linux/amd64. - The !label=value syntax is useful but non-obvious. It was easy to misunderstand that !platform=linux/arm64 means the workflow must explicitly set platform=linux/arm64. - An armv7 userspace agent running on an arm64 host still advertised the host platform as linux/arm64, requiring a custom platform=linux/arm label override plus !platform=linux/arm. - There is no global repo/org policy like "generic workflows default to linux/amd64 unless explicitly platform-labelled". ## Desired behavior Improve platform/label ergonomics with one or more of: - clearer docs and examples for !label semantics - an explicit "requires workflow label" setting that does not overload label names - first-class support for overriding advertised platform for compatibility/userland cases - repo/org default labels for workflows - lint warnings for workflows that can run on any platform unintentionally ## Why this matters Multi-arch setups are common for release CI. Small label mistakes can schedule expensive or incompatible jobs on the wrong architecture.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pleroma/woodpecker#2
No description provided.