Connection and difference between daily build and continuous integration
1) continuous integration emphasizes a fast feedback.
For example, when I check in the code, I immediately integrate it and give me a feedback. I want to know if my code has destroyed the build.
Continuous integration is combined with unit testing. That is to say, unit testing is usually required for continuous integration. However, continuous integration cannot include more things that affect the purpose of "quick feedback", such as code that cannot be added to a large number of integration tests or smoke tests, especially when the code seriously affects the integration time.
Continuous integration is generally triggered by every code check in. When I check in the code first, I will first see the build result. After you check in, you will be placed behind. This requires that the build time cannot be too long. Otherwise, when building the Code, many people check in the code, and it is difficult to know which code breaks the integration. It is difficult to locate the problem and reflect the check-in code issue, you cannot quickly provide clear information to the person who signs in the code. This is because it is generally done by the people who check in the code later to ensure the integration is successful.
Continuous integration can be incremental or fully built. When a full build takes a long time, incremental build is generally used.
I remember Martin flower wrote two articles about continuous integration. If I remember correctly, it seems that it was the first article that encouraged many tests into continuous integration, however, he later corrected his statement, saying that he could not add many things that affect integration. He wanted to maintain rapid integration and rapid feedback. Otherwise, it would be difficult to achieve continuous integration.
I just checked the latest version of continuous integration. The practice of continuous integration is summarized in this way, which further illustrates the importance of fast feedback for continuous integration.
# Practices of continuous integration
* Maintain a single source repository.
* Automate the build
* Make your build self-testing
* Everyone commits to the mainline every day
* Every commit shocould build the mainline on an integration Machine
* Keep the build fast
* Test in a clone of the production environment
* Make it easy for anyone to get the latest executable
* Everyone can see what's happening
* Automate deployment
The address is here. You can check it out if you are interested.
Http://martinfowler.com/articles/continuousIntegration.html
2) daily build (daily build): I don't know where it came from, but I have read the book "Microsoft secrets" and Microsoft has built it every day for a long time, I forgot to read Steve McConnell's article or book. He also mentioned daily building.
I feel that building on a daily basis is not as strong as continuous integration in terms of rapid response, but he emphasizes that quality can better measure the progress of the project.
--- Due to the purpose of continuous integration, it is impossible for him to join a lot of tests, but daily build is not as we know that daily build is usually scheduled to be built at night, at this time, we have enough time for building, so we can do more things, such as code quality check, naming convention unit testing, test coverage, integration testing, smoke test, code security check ..... and so on. Higher requirements for code and building. Many issues that cannot be found in continuous integration can be found here.
--- Daily build, because it is executed at night, all the changed code of the day will be integrated together, instead of continuous integration, we only integrate our code with previous Code each time. Continuous integration can be incremental build, but daily build is always a full build.
--- Daily build is the heartbeat line of the project. Generally, we can see the progress of the project through daily build. For example, the Code for five Bugs has been submitted today. The next day, we found that the daily build was successful, so the project has taken another big step forward and the project has made some progress.