[AUTO-INF-SUP] Fix: Restore benchmark stage and status-check target to CI #8840

Open
opened 2026-04-14 02:31:51 +00:00 by HAL9000 · 0 comments
Owner

Metadata

  • Commit Message: fix(ci): restore benchmark job and status-check dependency to CI pipeline
  • Branch: fix/ci-restore-benchmark-stage-status-check

Background and Context

Two recent commits on master removed the benchmark stage from the CI pipeline and removed the status-check target, breaking the master branch CI:

  1. Commit 5438540 — "build: Removed benchmark stage from CI, moving this to its own workflow"
  2. Commit 9998b4f9 — "Build: Removed unnessecary status-check target as well"

This has caused master CI to fail (CI run #18065 on master SHA 9998b4f9 shows failure), blocking all PR merges. The benchmark job must be restored to .forgejo/workflows/ci.yml and the status-check job must be updated to include benchmark in its needs list.

The benchmark job runs nox -s benchmark and is required to ensure performance benchmarks are validated as part of every CI run. Without it, performance regressions can go undetected and the status-check quality gate is incomplete.

See also: #8759 (Master CI Broken — PR Merges Blocked announcement).

Expected Behavior

  • A benchmark job exists in .forgejo/workflows/ci.yml that runs nox -s benchmark
  • The status-check job includes benchmark in its needs list
  • Master CI passes with all jobs including benchmark succeeding
  • PR merges are unblocked

Acceptance Criteria

  • A benchmark job is present in .forgejo/workflows/ci.yml following the same structure as other jobs in the file
  • The benchmark job runs nox -s benchmark via the NOX_DEFAULT_VENV_BACKEND: uv environment
  • The benchmark job uploads a ci-logs-benchmark artifact on completion (even on failure)
  • The status-check job's needs list includes benchmark
  • The status-check job's result check includes benchmark in the failure condition
  • Master CI runs green after the fix is merged

Subtasks

  • Add the benchmark job to .forgejo/workflows/ci.yml as specified below
  • Update the status-check job's needs list to include benchmark
  • Update the status-check job's result-check script to echo and validate benchmark result
  • Verify the CI pipeline runs successfully with the restored benchmark job
  • Run nox locally to confirm no regressions
  • Submit PR targeting master

Proposed benchmark job

    benchmark:
        runs-on: docker
        container:
            image: python:3.13-slim
        steps:
            - name: Install Node.js (required by actions/checkout)
              run: |
                  apt-get update && apt-get install -y -qq nodejs && rm -rf /var/lib/apt/lists/*

            - uses: actions/checkout@v4

            - name: Install uv and nox
              run: |
                  pip install -q uv==${{ env.UV_VERSION }} nox

            - name: Cache uv packages
              uses: actions/cache@v3
              with:
                  path: ~/.cache/uv
                  key: uv-${{ hashFiles('pyproject.toml') }}
                  restore-keys: |
                      uv-

            - name: Run benchmark via nox
              run: |
                  mkdir -p build
                  nox -s benchmark 2>&1 | tee build/nox-benchmark-output.log
              env:
                  NOX_DEFAULT_VENV_BACKEND: uv

            - name: Upload benchmark log artifact
              if: always()
              uses: actions/upload-artifact@v3
              with:
                  name: ci-logs-benchmark
                  path: build/nox-benchmark-output.log
                  retention-days: 30

Proposed updated status-check job

    status-check:
        if: always()
        needs: [lint, typecheck, security, quality, unit_tests, integration_tests, e2e_tests, coverage, build, docker, helm, push-validation, benchmark]
        runs-on: docker
        container:
            image: python:3.13-slim
        steps:
            - name: Check required job results
              run: |
                  echo "lint: ${{ needs.lint.result }}"
                  echo "typecheck: ${{ needs.typecheck.result }}"
                  echo "security: ${{ needs.security.result }}"
                  echo "quality: ${{ needs.quality.result }}"
                  echo "unit_tests: ${{ needs.unit_tests.result }}"
                  echo "integration_tests: ${{ needs.integration_tests.result }}"
                  echo "e2e_tests: ${{ needs.e2e_tests.result }}"
                  echo "coverage: ${{ needs.coverage.result }}"
                  echo "build: ${{ needs.build.result }}"
                  echo "docker: ${{ needs.docker.result }}"
                  echo "helm: ${{ needs.helm.result }}"
                  echo "push-validation: ${{ needs.push-validation.result }}"
                  echo "benchmark: ${{ needs.benchmark.result }}"

                  if [ "${{ needs.lint.result }}" != "success" ] || \
                     [ "${{ needs.typecheck.result }}" != "success" ] || \
                     [ "${{ needs.security.result }}" != "success" ] || \
                     [ "${{ needs.quality.result }}" != "success" ] || \
                     [ "${{ needs.unit_tests.result }}" != "success" ] || \
                     [ "${{ needs.integration_tests.result }}" != "success" ] || \
                     [ "${{ needs.e2e_tests.result }}" != "success" ] || \
                     [ "${{ needs.coverage.result }}" != "success" ] || \
                     [ "${{ needs.build.result }}" != "success" ] || \
                     [ "${{ needs.docker.result }}" != "success" ] || \
                     [ "${{ needs.helm.result }}" != "success" ] || \
                     [ "${{ needs.push-validation.result }}" != "success" ] || \
                     [ "${{ needs.benchmark.result }}" != "success" ]; then
                    echo "FAILED: One or more required jobs did not succeed"
                    exit 1
                  fi
                  echo "All required CI checks passed"

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly (fix(ci): restore benchmark job and status-check dependency to CI pipeline), followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly (fix/ci-restore-benchmark-stage-status-check).
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • Master CI is green after the fix is merged.

Automated by CleverAgents Bot
Agent: new-issue-creator


Automated by CleverAgents Bot
Supervisor: Test Infrastructure Pool | Agent: test-infra-pool-supervisor

## Metadata - **Commit Message**: `fix(ci): restore benchmark job and status-check dependency to CI pipeline` - **Branch**: `fix/ci-restore-benchmark-stage-status-check` ## Background and Context Two recent commits on master removed the `benchmark` stage from the CI pipeline and removed the `status-check` target, breaking the master branch CI: 1. Commit `5438540` — "build: Removed benchmark stage from CI, moving this to its own workflow" 2. Commit `9998b4f9` — "Build: Removed unnessecary status-check target as well" This has caused master CI to fail (CI run #18065 on master SHA `9998b4f9` shows `failure`), blocking all PR merges. The `benchmark` job must be restored to `.forgejo/workflows/ci.yml` and the `status-check` job must be updated to include `benchmark` in its `needs` list. The `benchmark` job runs `nox -s benchmark` and is required to ensure performance benchmarks are validated as part of every CI run. Without it, performance regressions can go undetected and the `status-check` quality gate is incomplete. See also: #8759 (Master CI Broken — PR Merges Blocked announcement). ## Expected Behavior - A `benchmark` job exists in `.forgejo/workflows/ci.yml` that runs `nox -s benchmark` - The `status-check` job includes `benchmark` in its `needs` list - Master CI passes with all jobs including `benchmark` succeeding - PR merges are unblocked ## Acceptance Criteria - [ ] A `benchmark` job is present in `.forgejo/workflows/ci.yml` following the same structure as other jobs in the file - [ ] The `benchmark` job runs `nox -s benchmark` via the `NOX_DEFAULT_VENV_BACKEND: uv` environment - [ ] The `benchmark` job uploads a `ci-logs-benchmark` artifact on completion (even on failure) - [ ] The `status-check` job's `needs` list includes `benchmark` - [ ] The `status-check` job's result check includes `benchmark` in the failure condition - [ ] Master CI runs green after the fix is merged ## Subtasks - [ ] Add the `benchmark` job to `.forgejo/workflows/ci.yml` as specified below - [ ] Update the `status-check` job's `needs` list to include `benchmark` - [ ] Update the `status-check` job's result-check script to echo and validate `benchmark` result - [ ] Verify the CI pipeline runs successfully with the restored `benchmark` job - [ ] Run `nox` locally to confirm no regressions - [ ] Submit PR targeting `master` ### Proposed `benchmark` job ```yaml benchmark: runs-on: docker container: image: python:3.13-slim steps: - name: Install Node.js (required by actions/checkout) run: | apt-get update && apt-get install -y -qq nodejs && rm -rf /var/lib/apt/lists/* - uses: actions/checkout@v4 - name: Install uv and nox run: | pip install -q uv==${{ env.UV_VERSION }} nox - name: Cache uv packages uses: actions/cache@v3 with: path: ~/.cache/uv key: uv-${{ hashFiles('pyproject.toml') }} restore-keys: | uv- - name: Run benchmark via nox run: | mkdir -p build nox -s benchmark 2>&1 | tee build/nox-benchmark-output.log env: NOX_DEFAULT_VENV_BACKEND: uv - name: Upload benchmark log artifact if: always() uses: actions/upload-artifact@v3 with: name: ci-logs-benchmark path: build/nox-benchmark-output.log retention-days: 30 ``` ### Proposed updated `status-check` job ```yaml status-check: if: always() needs: [lint, typecheck, security, quality, unit_tests, integration_tests, e2e_tests, coverage, build, docker, helm, push-validation, benchmark] runs-on: docker container: image: python:3.13-slim steps: - name: Check required job results run: | echo "lint: ${{ needs.lint.result }}" echo "typecheck: ${{ needs.typecheck.result }}" echo "security: ${{ needs.security.result }}" echo "quality: ${{ needs.quality.result }}" echo "unit_tests: ${{ needs.unit_tests.result }}" echo "integration_tests: ${{ needs.integration_tests.result }}" echo "e2e_tests: ${{ needs.e2e_tests.result }}" echo "coverage: ${{ needs.coverage.result }}" echo "build: ${{ needs.build.result }}" echo "docker: ${{ needs.docker.result }}" echo "helm: ${{ needs.helm.result }}" echo "push-validation: ${{ needs.push-validation.result }}" echo "benchmark: ${{ needs.benchmark.result }}" if [ "${{ needs.lint.result }}" != "success" ] || \ [ "${{ needs.typecheck.result }}" != "success" ] || \ [ "${{ needs.security.result }}" != "success" ] || \ [ "${{ needs.quality.result }}" != "success" ] || \ [ "${{ needs.unit_tests.result }}" != "success" ] || \ [ "${{ needs.integration_tests.result }}" != "success" ] || \ [ "${{ needs.e2e_tests.result }}" != "success" ] || \ [ "${{ needs.coverage.result }}" != "success" ] || \ [ "${{ needs.build.result }}" != "success" ] || \ [ "${{ needs.docker.result }}" != "success" ] || \ [ "${{ needs.helm.result }}" != "success" ] || \ [ "${{ needs.push-validation.result }}" != "success" ] || \ [ "${{ needs.benchmark.result }}" != "success" ]; then echo "FAILED: One or more required jobs did not succeed" exit 1 fi echo "All required CI checks passed" ``` ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly (`fix(ci): restore benchmark job and status-check dependency to CI pipeline`), followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly (`fix/ci-restore-benchmark-stage-status-check`). - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - Master CI is green after the fix is merged. --- **Automated by CleverAgents Bot** Agent: new-issue-creator --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure Pool | Agent: test-infra-pool-supervisor ---
Sign in to join this conversation.
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
cleveragents/cleveragents-core#8840
No description provided.