Continuous Integration
- This practice is recommended to avoid integration failures during later stages of the project
- Big bang integrtion leads to lot of technical debts.
- Continuous integration ideal workflow
- The idea of Continuous integration is do give immedieate feedback to the developer.
Unit Tests
- This generally represents smaller tests which test functionality at a unit level.
- Developers are responsible for developing unit tests
- With every change done by developer all the unit test needs to be executed and reports should be shown.
- For executing unit tests, each platform has multiple tools
- java: junit
- dotnet: mstest, nunit
- javascript: mocha, jasmine
- python: pytest
- We need to show the test results with every change.
- Code Coverage tools should be included with test runs and code quality reports.
- Some organizations fail the builds based on these results which are often represented as Quality Gates.
- Notify the team via email/slack/teams the results of the build.
- CI pipelines start from source code repositories and end with artifact repository
Terms
- Repository: This represents a storage and it also has ability to store versions and history of changes.
- Source Code Repository: This repository is used for storing code. This maintains history of every change that is done
- Examples:
- Git
- Subversion
- TFC
- Perforce
- Examples:
- Artifact: Result of the build.
- Artifact Repository or Package Repository: This respository is used for storing packages/artifacts
- Examples:
- Jfrog/Artficatory
- Nexus
- Docker:
- Container registries
- Examples:
Activity
- YAML Refer Here
