1. branching strategy
Continuous integration used in the branching strategy includes the following three:
- The master branch
- The integration branch
- The feature branch
The CD can be performed only on the Integration of the release branch.
2. Release branches
Some teams employ strategies publishing branch. release all the code branch is created after verification through in a production environment. Pulled from the master is taken above. The purpose is to create a branch release a bug fix on the corresponding version.
3. CD pipes
Here, you will not create a new pipeline; instead we use to create CI before the multi-branch piping. Create a new pipeline should have the following steps
- Version of the controller from the code pulls
- Build and unit test code, unit test reports to publish Jenkins.
- Perform static code analysis, and the results uploaded to SonarQube. If the number of errors exceeds the threshold SonarQubea quality door set, it will cause the pipe to fail.
- Integration testing, unit testing and publish reports to Jenkins.
- Upload construct made good artifacts to Artifactory, and artifacts additional attributes.
- Binary deploy to a test environment
- Perform tests (quality analysis)
- Improve solutions Artifcatory, it is marked as a candidate version.
The purpose of the previous CD Pipeline is the continued deployment, testing (QA), and upgrading binary repository artifacts (such as the previous just build binaries, you can now take it as a candidate, it is not what the problem may be released). And perform reporting on the success or failure of each step.
In the real situation, QA may contain a plurality of test stages, such as performance testing, user acceptance testing, assembly testing. Here we only execute performance tests
Experiment 4. CD will be used CD set of tools
Tool/Technology | Description |
---|---|
Java | Primary programming language used for coding |
Maven | Build tool |
Junit | Unit test and integration test tools |
Jenkins | CI tool |
GitHub | VCS |
SonarQube | Static code analysis tool |
Artifactory | Binary repository mananger |
Apache Tomcat | Application server to host solution |
Apache JMeter | Performance testing tool |