Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

“Invest in yourself — your confidence is always worth it.”

Explore Cosmetic Hospitals

Start your journey today — compare options in one place.

From 8-Hour Builds to 1-Hour Feedback: A Practical CI Optimization Pattern

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.

hudson master slave setup

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 changeProblem addressedWhy it helped
Refactored build scripts for parallel module compilation (where possible)Compilation bottlenecksReduced total build wall-clock time by using available concurrency
Selected tests with no external-service dependency for build-stage executionSlow, fragile test phaseKept per-commit pipeline fast and deterministic
Established CI (originally using open-source CruiseControl) for per-commit buildsLate defect discoveryProvided earlier quality feedback after each change
Added a low-cost remote agent for the remaining test suite once per dayResource contention in the main build pathOffloaded expensive tests without blocking developer feedback

Commit-stage vs nightly-stage testing model

StageMain goalTypical test scopeDependenciesFrequency
Per-commit CI stageFast signal for developersCompilation plus fast testsAvoid external services when possibleEvery commit
Nightly remote-agent stageBroader validation and integration confidenceRemaining full suiteCan include external systems and heavier setupOnce 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.

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services — all in one place.

Explore Hospitals
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.

Related Posts

Team Foundation Server 2015 Installation Guide (SQL Express + Update 3)

Install Team Foundation Server 2015 using the original Microsoft download paths, with clear guidance for online, offline, and ISO-based setup. This revised guide also includes an installation workflow, command example, and practical pitfalls to avoid.

Read More

How to Access a Running Docker Container Shell: docker exec vs docker attach

Need a shell inside a running container that is already in detached mode? This updated guide shows the correct workflow, compares docker exec and docker attach, and explains when SSH does and does not make sense.

Read More

Host Your Own NuGet Feed: Local Source vs NuGet.Server vs NuGetGallery

Learn how to host a private NuGet feed using three practical approaches: a local folder source, NuGet.Server, and NuGetGallery. This revised guide includes setup steps, command examples, and a workflow diagram to help you choose the right model.

Read More

Publish NuGet Packages to NuGet.org: CLI Steps, Workflow, and CI Example

Learn how to publish a NuGet package to NuGet.org using either nuget.exe or the dotnet CLI. This revised guide includes a workflow diagram, command comparison, and a CI-friendly example.

Read More

How to Create NuGet Packages with nuget.exe (Assembly, .nuspec, and .csproj Methods)

Learn three practical ways to build NuGet packages using nuget.exe: from an existing assembly, from a convention-based folder layout, or directly from a Visual Studio project. This guide includes commands, folder conventions, token behavior, and common pitfalls.

Read More

Virtualization in DevOps: Using Vagrant, Docker, and Cloud Platforms Together

This guide explains how VM-based workflows, containers, and cloud platforms complement each other in DevOps. It includes a practical workflow, trade-off table, and command examples for day-to-day use.

Read More
Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
0
Would love your thoughts, please comment.x
()
x