• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Knute Snortum
  • Bear Bibeault
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Frits Walraven
  • Carey Brown
  • Tim Holloway

Why "Continuous Integration"?

 
Ranch Hand
Posts: 118
1
IntelliJ IDE Chrome
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Automating the building process to run at every increment is known as "Continuous Integration", but why it's not called "Continuous Building"?

Since I am continuously building the project - calling it "Continuous Building" makes more sense to me.
 
Saloon Keeper
Posts: 10308
217
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There's only one reason to build your project. To integrate the changes that your team has made to it. Note that CI is more than just building. CI also tests your project and performs other actions that you may have set up.
 
Ranch Hand
Posts: 231
12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Stephan van Hulst wrote:There's only one reason to build your project. To integrate the changes that your team has made to it. Note that CI is more than just building. CI also tests your project and performs other actions that you may have set up.


I'm not sure if this belongs in Meaningless Drivel but I was just reading ActiveStaff and I am completely baffled. It says that you are a student currently pursuing a bachelor's degree in computer science. How does a student know so much about Java 8 Streams, maven, continuous integration etc? It'll make more sense if you are a lecturer at the University and not a student. Some people who have been working for years don't have half the knowledge you have.
 
Quazi Irfan
Ranch Hand
Posts: 118
1
IntelliJ IDE Chrome
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Stephan van Hulst wrote:CI also tests your project and performs other actions that you may have set up.



But isn't testing part of the build process? From this stackoverflow answer it says, a build process includes,

Generating sources (sometimes).
Compiling sources.
Compiling test sources.
Executing tests (unit tests, integration tests, etc).
Packaging (into jar, war, ejb-jar, ear).
Running health checks (static analyzers like Checkstyle, Findbugs, PMD, test coverage, etc).
Generating reports.

Is there any clear distinction between what should be part of build process and what should be part of the CI?

When I see a CI log, I feel it's the same local build running on a remote server; the only difference is it's being triggered automatically.
 
author & internet detective
Posts: 39343
755
Eclipse IDE VI Editor Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Quazi,
If you are the only developer on your project it probably is similar. If there are multiple developers, the CI server is getting everyone's changes. Suppose you forget to commit a file or pull the latest code. The CI server doesn't forget and you find out quickly.

Take a look at Martin Fowler's article. It begins with:

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. This article is a quick overview of Continuous Integration summarizing the technique and its current usage.

 
Stephan van Hulst
Saloon Keeper
Posts: 10308
217
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Daniel Cox wrote:I'm not sure if this belongs in Meaningless Drivel but I was just reading ActiveStaff and I am completely baffled. It says that you are a student currently pursuing a bachelor's degree in computer science. How does a student know so much about Java 8 Streams, maven, continuous integration etc? It'll make more sense if you are a lecturer at the University and not a student. Some people who have been working for years don't have half the knowledge you have.


Thank you for your kind words Daniel. Actually, that bio is a little bit outdated. I've made an attempt at getting my bachelor degree, but I dropped out a few years ago. I'm happy to report that I have now indeed started a career in software development. My knowledge mostly comes from working on ambitious hobby projects in my spare time. Whenever I hear about some promising technology that can improve part of my projects, I take my time to read about it and I try to incorporate it. It's true, there's no better way to learn something than to practice. I actually also learn a lot from trying to help people on these boards. Half of the time I have some preconceived notion about how something is supposed to work, and before I give someone a hint or an answer, I test my notion with some code and find out it's actually a bit more difficult than I thought.
 
Quazi Irfan
Ranch Hand
Posts: 118
1
IntelliJ IDE Chrome
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Jeanne Boyarsky wrote:
Take a look at Martin Fowler's article.



Thanks. Its funny you mentioned this article, because I've just started reading it.
 
Consider Paul's rocket mass heater.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!