Skip to content

ci: use all heavy Buildkite workers - #60

Merged
haasonsaas merged 1 commit into
mainfrom
codex/expand-heavy-concurrency
Aug 16, 2026
Merged

ci: use all heavy Buildkite workers#60
haasonsaas merged 1 commit into
mainfrom
codex/expand-heavy-concurrency

Conversation

@haasonsaas

@haasonsaas haasonsaas commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • raise the shared hetzner-linux-heavy-workloads concurrency limit from 2 to 3
  • align the pipeline contract with the three connected heavy agents

Test plan

  • run the repository's focused Buildkite pipeline contract test

Open in Devin Review

@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Open in Devin Review

Comment on lines 205 to 209
if [[ "$(grep -Fc -- 'concurrency_group: "hetzner-linux-heavy-workloads"' <<<"$linux_buildkite_pipeline")" != 5 ]] ||
[[ "$(grep -Fc -- 'concurrency: 2' <<<"$linux_buildkite_pipeline")" != 5 ]]; then
printf 'Buildkite Linux validation must leave one shared heavy worker available\n' >&2
[[ "$(grep -Fc -- 'concurrency: 3' <<<"$linux_buildkite_pipeline")" != 5 ]]; then
printf 'Buildkite Linux validation must use all connected shared heavy workers\n' >&2
exit 1
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Contract test remains a brittle exact-count string match

The assertion counts literal concurrency: 3 occurrences and requires exactly 5 in the Linux portion of .buildkite/pipeline.yml. It is decoupled from concurrency_group, so a step with a different group but the same numeric value would still satisfy the count, and any added Linux step (or a step using a different limit) will fail the test with a message about worker capacity rather than the actual mismatch. Since the whole check is textual, it also silently passes if the pipeline is reformatted (e.g. inline flow mapping). Not a defect introduced here, but the maintenance burden grows each time the number changes; a YAML-aware assertion (parse steps, check each heavy-queue step's concurrency equals the connected agent count) would be more robust.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread .buildkite/pipeline.yml
Comment on lines +111 to 112
concurrency: 3
concurrency_group: "hetzner-linux-heavy-workloads"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Concurrency now equals the number of connected heavy agents, removing spare capacity

Raising each heavy step's concurrency to 3 means a single build can occupy all three heavy agents at once; the previous limit of 2 deliberately reserved one agent (per the old failure message "must leave one shared heavy worker available"). With no spare, unrelated queued jobs on hetzner-linux-heavy (e.g. a second PR build, or a manual/ops job) can be blocked until a long step such as the 60-minute harnesses step finishes. Worth confirming that no other pipeline or operational task depends on always having one free heavy agent.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@haasonsaas
haasonsaas merged commit 295f092 into main Aug 16, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant