Daily Builds For Smoke

 

We found the best smoke bomb for photography usage and in this 6.5-minute video and article, we are going to give you 5 tips on how to use them safely and creatively. Jump to What's with the ``daily-build' and ``smokers' names?. Name for the mailinglist is daily-build-reports. Smoke Facts & Safety Tips; We've all seen the movies where the hero enters a burning building to rescue someone. Flames are everywhere and there's not very much smoke. The hero storms from room to room, standing straight up and looks through the flames for the victim.

Daily builds for smoke shop

We have the 'problem' of a large automated suite of integration tests. While our build times are reasonable (< 1 hour), the tests typically take > 6 hours to complete.

While it's great to have this large chunk of functionality tested in our build runs, it obviously is a barrier to implementing CI, which I've found to be a very helpful for keeping source trees in a 'always buildable' state.

I've reviewed threads of discussion like this one, which elaborate on the distinctions.

This leads me to a few questions:

  1. Does CI dictate or recommend Unit vs. Integration testing automation? I've heard Unit-only in the past, but am not finding any such statements (or rationale) for this in a quick search.

  2. What is a good 'best practice' for combined build + automated test times/ratios to have effective CI for a team? My gut tells me that this should be < 2 hours as a worst case, and probably < 1 hour to be really effective. In theory, we could break up the tests to run in parallel and probably get them running in under 2 hours, but this would still be a 3 hour run.

  3. What's the best way forward from long-running Nightly Builds + Integration Tests to CI? I'm thinking of a CI build with a few skeletal Unit Tests only, in combination with nightly builds that continue with the integration tests.

Any tooling recommendations are also welcome (Windows-only C#/C++ codebase)

Community
holtavoltholtavolt
3,6951 gold badge20 silver badges37 bronze badges

Daily Builds For Smoke House

2 Answers

For most projects, however, the XP guideline of a ten minute build is perfectly within reason. Most of our modern projects achieve this. It's worth putting in concentrated effort to make it happen, because every minute you reduce off the build time is a minute saved for each developer every time they commit. Since CI demands frequent commits, this adds up to a lot of time.

Source: http://martinfowler.com/articles/continuousIntegration.html#KeepTheBuildFast

Why does it takes 6 hours? How many tests do you have? What are the ratio of the unit-test compared to integrated ones? You probrably have many more integrated tests or your unit-test are not really unit. Are your unit tests touching the DB? This may be the problem.

6 hours is a long long time. The article above has some tips.

goenninggoenning
5,5941 gold badge27 silver badges39 bronze badges

There are a few things here.

In general you will have a number of builds, one that compiles & runs unit tests, one that does that and runs local acceptance tests, and one that runs integration tests.

Daily Builds For Smoke Shop

You definately don't need a single build that does everything.

Your build times to me sound pretty long - remember that the point here is to give quick feedback that something has gone awry. I don't know much about your project - but i would think that you should look to get your compile and unit test build down to under two to three minutes. This is perfectly achievable, in all but very large projects, so if your unit tests take along time, then its time to start asking why.

6 hours is also a very long time. are you sure that your tests are testing the right stuff? do you have too many wide scope tests? are you using 'sleep()' everywhere to makeup for the fact that you haven't modeled asynchrony well in your test code?

You should probably get hold of Jez Humbles book 'Continuous Delivery', and take a look at Growing Object Oriented Software as how to write unit / integration tests. GOOS uses Java as an implementation language, but all the concepts are the same.

time4teatime4teaSmoke
1,7332 gold badges14 silver badges19 bronze badges

Not the answer you're looking for? Browse other questions tagged unit-testingbuildcontinuous-integrationautomated-testsintegration-testing or ask your own question.

The .NET Core team builds many branches of the product daily. You can install these builds to try out functionality prior to release.

Future Releases

Preview branches are for new major/minor versions of .NET Core that have not yet been released and are not yet supported.

Component.NET Core 3.0.NET Core 2.2
SDK.NET Core SDK 3.0.1xx (Master).NET Core SDK 2.2.1xx
ASP.NET CoreASP.NET Core Shared Framework 3.0 (Master)ASP.NET Core Shared Framework 2.2
Runtime.NET Core Runtime 3.0 (Master).NET Core Runtime 2.2

Servicing Releases

Servicing branches are for new patch versions of .NET Core that have not yet been released and are not yet supported. These patch versions are for previously released major/minor versions.

Component.NET Core 2.1.NET Core 2.0.NET Core 1.1.NET Core 1.0
SDK.NET Core SDK 2.1.401.NET Core SDK 2.0.NET Core SDK 1.1.NET Core SDK 1.1
ASP.NET CoreASP.NET Core Shared Framework 2.1N/AN/AN/A
Runtime.NET Core Runtime 2.1.NET Core Runtime 2.0.NET Core Runtime 1.1.NET Core Runtime 1.0
Copyright © 2019 nowbotwave