CI/CD concepts
Continuous Integration/continuous delivery/deployment is a methodology to develop solutions. The idea is to automate as much as possible to move quickly and optimize the development process. The NetDevOps pipeline includes a building phase which we are going to focus on to better understand the concept of Continuous Integration.
NetDevOps pipeline
In Continuous Integration (CI), a crucial idea is the frequent uploading of code into the code base, often multiple times a day. This involves the constant merging of developer work with the code base, and the early identification of issues through the use of testing.
CI Diagram
Benefits
- Reduce time to market
- Achieve revenue and results at a faster pace
- Smaller backlog
- Smaller code changes
- Fewer bugs
Build Process
Involves activities such as:
- Integration: Merging code. If several people are working on a project, the changes of each of them, must be consolidated in a single place.
- Linting: Analyze code to identify programming errors, software defects, style and incorrect amounts of spaces. Some linting tools to know:
- Unit Testing: Test individual components of code, not the entire code base. Write tests first, then code - Test Driven Development (TDD). Some tools to know:
- Build: This stage implies that all linting and unit tests have been completed and code is ready to be deployed on staging environment. Here an “artifact” is built and stored independently.
Suggestion: Explore the different tools shown above and know the basics of them
CI tools
These are some of the most common CI tools out there. In the next post we are going to explore them with more detail.
CI ToolsURL**Travis CIhttps://travis-ci.orgJenkinshttps://jenkins.ioDronehttps://drone.ioGitLab CI**https://gitlab.com
Click here to learn about them!