Questions tagged [continuous-integration]

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.

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.

364 questions
183
votes
23 answers

How to apologize when you have broken the nightly build

My first commit in my project resulted in the nightly build being broken and people are all over me as we are nearing the release. I want to send an apology email that should sound sincere and at the same time hinting that this was my first commit…
rajachan
  • 733
  • 2
  • 9
  • 9
105
votes
9 answers

What's the point of running unit tests on a CI server?

Why would you run unit tests on a CI server? Surely, by the time something gets committed to master, a developer has already run all the unit tests before and fixed any errors that might've occurred with their new code. Isn't that the point of unit…
91
votes
13 answers

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 my branch (to reduce conflicts during backward…
SiberianGuy
  • 4,753
  • 6
  • 34
  • 46
64
votes
5 answers

Is the usage of random values in unit testing a good practice?

Having worked in complex solutions that had Unit Tests and Integration Test in the CI/CD pipeline, I recall having a tough time with tests that failed randomly (either due to random values being injected or because of the async nature of the process…
58
votes
11 answers

If two individual branches pass unit tests, once they're merged, is the result also guaranteed to pass unit tests?

Suppose we have two branches A and B which have been forked from master. Both branches A and B make some changes and implement some unit tests. They pass all current and new tests, then are merged back into master. For simplicity, there are no merge…
kentrid
  • 721
  • 1
  • 4
  • 6
52
votes
9 answers

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 each customer. The changes are probably too tiny to…
Falcon
  • 19,248
  • 4
  • 78
  • 93
51
votes
7 answers

TODO comments with deadlines?

Background I'm working in a team that's looking to implement zero-downtime deployments. We're planning on using a blue/green deployment strategy in order to achieve this. One of the things I'm realising in doing the research is how complicated it…
50
votes
9 answers

Is it a good practice to run unit tests in version control hooks?

From the technical point of view it is possible to add some pre/post push hooks which will run unit tests before allowing some specific commit to be merged to remote default branch. My question is - is it better to keep unit tests in build pipeline…
shabunc
  • 2,424
  • 2
  • 20
  • 27
50
votes
2 answers

Why is build.number an "abuse" of semantic versioning?

I was explaining a proposed build system (Gradle/Artifactory/Jenkins/Chef) to one of our senior architects, and he made a comment to me that I sort of disagree with, but am not experienced enough to really weigh-in on. This project builds a Java…
50
votes
6 answers

65.000.000.000 tests to run

I was asked about how to run a suite of 65.000.000.000 tests and I wonder if it is normal to have a project with such a huge amount of tests. Have you worked in projects with this characteristic?
juanpavergara
  • 627
  • 5
  • 7
49
votes
8 answers

Automatically reverting commits that fail the build

A colleague of mine told me that he is thinking in making our CI server to revert commits that failed the build, so the HEAD in master is always stable (as in passing the build at least). Is this a best practice or it may be more problematic than…
Carlos Campderrós
  • 805
  • 1
  • 7
  • 13
45
votes
9 answers

How do we avoid CI-driven development...?

I'm working on a very large research-led open-source project, with a bunch of other regular contributors. Because the project is now quite big, a consortium (composed of two full-time employees and few members) is in charge of maintaining the…
lagarkane
  • 569
  • 4
  • 4
45
votes
16 answers

Should a programmer fix someone else's failed build?

One programmer committed some work to the SVN repository, then went home. After he left, the Hudson automatic build failed. Another programmer saw this, and after looking through the code changes, detected that the problem was the absence of one…
nahab
  • 301
  • 3
  • 5
42
votes
11 answers

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 often as multiple times a day. I assume, this even…
SpecialEd
38
votes
11 answers

Unexpected Code Coverage Reduction

I am adding unit tests to some existing code which initially was not tested at all. I have set up my CI system to fail builds where the code coverage percentage is reduced compared to previous build - mainly to set a path of continuing…
1
2 3
24 25