In software engineering, continuous integration (CI) implements the continuous building and automated testing of the full software product on a frequent schedule. At least once a day, often several times a day and sometimes as often as after every check in to the version control system.

learn more… | top users | synonyms

30
votes
13answers
3k views

To branch or not to branch?

Till recently my development workflow was the following: Get the feature from product owner Make a branch (if feature is more than 1 day) Implement it in a branch Merge changes from main branch to ...
25
votes
12answers
2k views

How many developers before continuous integration becomes effective for us?

There is an overhead associated with continuous integration, e.g., set up, re-training, awareness activities, stoppage to fix "bugs" that turn out to be data issues, enforced separation of concerns ...
11
votes
6answers
1k views

What advantages do continuous integration tools offer on a solo project?

If you're doing a solo project - would you use CI tools to build from a repository? I've used Hudson and Cruisecontrol in a team environment, where it's essential to build as soon as anyone checks ...
15
votes
9answers
2k views

How to maintain different, customized versions of the same software for multiple clients

we have multiple clients with different needs. Although our software is modularized to a degree, it's almost certain that we need to adjust every module's business logic here and there a little for ...
150
votes
26answers
15k views

How to apologize when you have broken the nightly build

My first commit in my project resulted in nightly build being broken and people are all over me as we are nearing the release. I want to sent an apology email that should sound sincere and at the same ...
12
votes
8answers
345 views

Alternative to “Passing/Broken build” indicator?

When having a continuous integration executing the tests at each commit, a common best practice is to have all the tests passing at all times (aka "do not break the build"). I find some problems with ...
11
votes
4answers
777 views

Release build vs nightly build

A typical solution is to have a CI (Continuous Integration) build running on a build server: It will analyze the source code, make build (in debug) and run tests, measure test coverage, etc. Now, ...
16
votes
10answers
2k views

When to do code reviews when doing continuous integration?

We are trying to switch to a continuous integration environment but are not sure when to do code reviews. From what I've read of continuous integration, we should be attempting to check in code as ...
6
votes
5answers
2k views

Best Practices in Setting up a Build and Deployment environment for the Java Platform

I have a project for which "quick and dirty" isn't the best solution. What is the most stable and currently accepted set of procedures/tools that I should look into when setting up my build/deploy ...
3
votes
2answers
274 views

How is it possible to build the whole codebase from source at Google scale?

The first answer to an old, recently active question linked to a video which talks about how Google repository is done. One interesting thing which was mentioned is the fact that everything is build ...
8
votes
4answers
3k views

Continuous Build server (cc.net, hudson, bamboo, etc…) remote build experience?

We currently use once cc.net server for our build process, which builds both .net (using msbuild & nant) and java (using maven and ant). CC.net monitors source control, and triggers a remote ...
8
votes
2answers
3k views

Writing a Jenkins plugin - non-Java-Expert

Can anyone point me (.NET by career, primarily Ruby by hobby) in the right direction(s) for learning how to write a Jenkins plugin? I'm looking specifically at build summary information and trend ...
6
votes
1answer
399 views

1-click software release

I am rewriting a vb6 installer into NSIS. One of my priorities is to compile-to-release in the least number of steps possible; ideally, a one click process, in which all needed files are included, ...