Parallelize review steps in CI workflow #3

Closed
opened 2026-05-01 18:17:52 +00:00 by rodin · 0 comments
Owner

Problem

Currently the CI workflow runs Sonnet and GPT reviews sequentially in the same job. Total review time is additive (30-60s per model = 60-120s total).

Proposed Solution

Two approaches (not mutually exclusive):

1. Parallel CI jobs

Split into separate jobs that run concurrently:

jobs:
  review-sonnet:
    runs-on: ubuntu-24.04
    ...
  review-gpt:
    runs-on: ubuntu-24.04
    ...

Both depend on test passing but run independently of each other.

2. Built-in parallel mode

Add a --parallel flag or multi-reviewer config so a single invocation dispatches both reviews concurrently using goroutines:

review-bot --config reviewers.yaml

Where reviewers.yaml defines multiple reviewer profiles (model, token, name).

Benefits

  • Cuts wall-clock time in half
  • Reviews post roughly simultaneously
  • Better resource utilization

Considerations

  • Approach 1 is simpler but requires building the binary twice (or downloading from release)
  • Approach 2 is more elegant but needs careful error handling (one reviewer failing should not block the other)
  • Both approaches need separate Gitea tokens per reviewer to avoid auth conflicts
## Problem Currently the CI workflow runs Sonnet and GPT reviews sequentially in the same job. Total review time is additive (30-60s per model = 60-120s total). ## Proposed Solution Two approaches (not mutually exclusive): ### 1. Parallel CI jobs Split into separate jobs that run concurrently: ```yaml jobs: review-sonnet: runs-on: ubuntu-24.04 ... review-gpt: runs-on: ubuntu-24.04 ... ``` Both depend on `test` passing but run independently of each other. ### 2. Built-in parallel mode Add a `--parallel` flag or multi-reviewer config so a single invocation dispatches both reviews concurrently using goroutines: ```bash review-bot --config reviewers.yaml ``` Where `reviewers.yaml` defines multiple reviewer profiles (model, token, name). ## Benefits - Cuts wall-clock time in half - Reviews post roughly simultaneously - Better resource utilization ## Considerations - Approach 1 is simpler but requires building the binary twice (or downloading from release) - Approach 2 is more elegant but needs careful error handling (one reviewer failing should not block the other) - Both approaches need separate Gitea tokens per reviewer to avoid auth conflicts
rodin closed this issue 2026-05-01 21:16:26 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rodin/review-bot#3