Skip to content

Optimize Merge Queue with Concurrency and Failure Notifications#256

Merged
kovtcharov merged 15 commits intomainfrom
kalin/merge-queue
Jan 29, 2026
Merged

Optimize Merge Queue with Concurrency and Failure Notifications#256
kovtcharov merged 15 commits intomainfrom
kalin/merge-queue

Conversation

@kovtcharov
Copy link
Collaborator

@kovtcharov kovtcharov commented Jan 24, 2026

  • Add concurrency to all workflows - Cancel in-progress runs when new commits arrive
  • Protect test summaries from cancellation - Prevent false failures when workflows are cancelled
  • Add merge queue failure notifications - Post PR comment with failed job details when ejected from queue
  • Add Lemonade Server smoke test - Quick validation before full integration tests

Changes

Concurrency

All workflows now include:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

Cancellation Protection

Test summary jobs use robust if conditions to handle cancellation gracefully:

if: >-
  ${{ always() && !cancelled() &&
      needs.job1.result != 'cancelled' &&
      needs.job2.result != 'cancelled' }}

Merge Queue Notification

New merge-queue-notify.yml workflow:

  • Triggers on workflow completion for merge queue runs
  • Extracts PR number from merge queue branch name
  • Posts comment with failed jobs and direct links to logs

Lemonade Smoke Test

New test_lemonade_server.yml workflow:

  • Validates health endpoint returns context_size
  • Tests basic completion endpoint
  • Runs before Windows/Linux integration tests

Reusable Start-Lemonade Action

New .github/actions/start-lemonade/ composite action:

  • Cross-platform (Windows/Linux)
  • Configurable model, port, context size
  • Sets UTF-8 encoding automatically

Test Plan

  • Verify concurrency cancels old runs on new push

  • Verify test summaries pass when some jobs are skipped

  • Trigger merge queue failure and verify PR comment appears

  • Verify Lemonade smoke test runs before integration tests

  • Closes Integrate concurrency in CI/CD #261

@kovtcharov kovtcharov added the devops DevOps/infrastructure changes label Jan 24, 2026
@kovtcharov kovtcharov self-assigned this Jan 24, 2026
@kovtcharov kovtcharov added this to the v0.15.3 milestone Jan 24, 2026
@github-actions github-actions bot added the security Security-sensitive changes label Jan 24, 2026
… action

- merge-queue-notify.yml: Posts PR comment when merge queue fails with
  failed job details and links
- test_lemonade_server.yml: Smoke test validates Lemonade health and
  completion endpoints before integration tests
- start-lemonade action: Reusable composite action for cross-platform
  Lemonade server startup with UTF-8 encoding
@kovtcharov kovtcharov marked this pull request as ready for review January 27, 2026 05:39
@kovtcharov kovtcharov requested a review from itomek-amd January 27, 2026 05:39
@kovtcharov kovtcharov changed the title Kalin/merge queue Optimize Merge Queue with Concurrency and Failure Notifications Jan 27, 2026
@kovtcharov kovtcharov enabled auto-merge January 27, 2026 05:49
kovtcharov-amd and others added 2 commits January 28, 2026 12:17
The Lemonade smoke test runs as a standalone workflow triggered by
pull_request. Calling it via workflow_call caused jobs to get stuck
waiting because the self-hosted [stx] runner wasn't picking up the
nested workflow call.
@kovtcharov kovtcharov disabled auto-merge January 28, 2026 20:11
@kovtcharov kovtcharov enabled auto-merge January 28, 2026 20:11
…llation

Child workflows have their own concurrency settings. The parent's
cancel-in-progress was causing nested workflow_call jobs to be
cancelled prematurely.
The parent workflow (GAIA CLI Tests) was competing with standalone child
workflows, causing concurrency conflicts and cancelled jobs. Each child
workflow already triggers independently on push/pull_request, so the
parent is now only available via workflow_call or manual dispatch.
@kovtcharov kovtcharov added this pull request to the merge queue Jan 29, 2026
Merged via the queue into main with commit 7fa8abc Jan 29, 2026
48 checks passed
@kovtcharov kovtcharov deleted the kalin/merge-queue branch January 29, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops DevOps/infrastructure changes security Security-sensitive changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integrate concurrency in CI/CD

3 participants