This case study shows how a team reduced build feedback time from 8 hours to 1 hour by restructuring build and test execution. It is most useful for DevOps engineers and tech leads who need faster feedback, more stable integration cycles, and better use of existing build hardware.
Originally published on 2010-06-21; fully revised and updated.
Source article: How we reduced build time from 8 hours to 1 hour.

The starting point: slow builds and low confidence
The original situation described a common CI pain pattern: long-running nightly pipelines, frequent failures, and delayed feedback. That combination usually reduces developer trust in the build signal.
- Build duration was around 8 hours, with frequent nightly failures.
- Test execution consumed more time than compilation.
- Developers had low confidence in nightly build outcomes during integration cycles.
Workflow that reduced feedback time
The key shift was to separate fast per-commit validation from full daily validation. Fast tests ran on every commit, while the heavier test suite moved to a scheduled run on a remote agent.
flowchart LR
A[Developer commit] --> B[CI build trigger]
B --> C[Parallel module compile]
C --> D[Run fast tests]
D --> E{Build pass}
E -- no --> F[Fix and recommit]
E -- yes --> G[Fast feedback to team]
B --> H[Nightly job on remote agent]
H --> I[Run full regression suite]
I --> J[Integration and release confidence]
Changes implemented and why they helped
| Implemented change | Problem addressed | Why it helped |
|---|---|---|
| Refactored build scripts for parallel module compilation (where possible) | Compilation bottlenecks | Reduced total build wall-clock time by using available concurrency |
| Selected tests with no external-service dependency for build-stage execution | Slow, fragile test phase | Kept per-commit pipeline fast and deterministic |
| Established CI (originally using open-source CruiseControl) for per-commit builds | Late defect discovery | Provided earlier quality feedback after each change |
| Added a low-cost remote agent for the remaining test suite once per day | Resource contention in the main build path | Offloaded expensive tests without blocking developer feedback |
Commit-stage vs nightly-stage testing model
| Stage | Main goal | Typical test scope | Dependencies | Frequency |
|---|---|---|---|---|
| Per-commit CI stage | Fast signal for developers | Compilation plus fast tests | Avoid external services when possible | Every commit |
| Nightly remote-agent stage | Broader validation and integration confidence | Remaining full suite | Can include external systems and heavier setup | Once per day |
Example implementation patterns (illustrative)
The original post does not publish exact scripts, so the snippets below are implementation patterns that mirror the approach: parallel build plus fast tests on commit, full suite on a scheduled remote agent.
Per-commit job commands
#!/usr/bin/env bash
set -euo pipefail
./build.sh --parallel
./run-tests.sh --suite fastCode language: JavaScript (javascript)
Nightly job on remote agent
#!/usr/bin/env bash
set -euo pipefail
./run-tests.sh --suite full --agent remote-1 --report-dir reports/nightlyCode language: JavaScript (javascript)
Scheduled CI workflow example
name: nightly-full-suite
on:
schedule:
- cron: '0 2 * * *'
jobs:
full-regression:
runs-on: [self-hosted, remote-agent]
steps:
- run: ./run-tests.sh --suite fullCode language: PHP (php)
Reported outcomes from the original case
- Build duration was reduced from 8 hours to about 1 hour.
- Faster feedback improved developer confidence in CI results.
- The team was able to adopt additional engineering best practices.
- Existing hardware was used more effectively, avoiding additional infrastructure cost.
- Release management became smoother.
Best practices and common pitfalls
- Tier tests intentionally: keep per-commit checks fast; run heavier suites on schedule or on-demand.
- Parallelize safely: only parallelize modules with clean dependency boundaries.
- Protect fast feedback: avoid adding flaky external-service tests to the commit path.
- Use remote agents for expensive jobs: isolate heavy workloads from developer-facing CI.
- Track the right metrics: build duration, queue time, test flakiness, failure cause, and feedback latency.
- Avoid over-optimization: speed improvements should not hide critical regressions; keep full-suite coverage in place.
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals