Continuous Integration/Continuous Deployment for software development.The main idea is to enhance the developer's coding experience and streamline the software development process.
Typical Work Flow:
+--------------------------------------+
| Code Repository (Git) |
+--------------------------------------+
↓↓
Commit/Push
↓↓
Webhook Trigger
↓↓
+--------------------------------------+
| CI Server (Jenkins) |
+--------------------------------------+
↓↓
Build/Test (pipeline)
↓↓
Archive Artifact
↓↓
+--------------------------------------+
| Artifact Repository (Git) |
+--------------------------------------+
↓↓
Trigger CD process
↓↓
Deploy
↓↓
+--------------------------------------+
| Production Environment |
+--------------------------------------+
- Bitbucket Repository
- Store the source code and artifacts.
- webhooks: Trigger by commit and push notification or trigger other task as CI/CD. (Bitbucket setup detail)
- Git Hook: Major benefits of using Git hooks include encouraging a commit policy, automating development workflow, and implementing continuous integration.
- client-side: local hooks, which are prompted by events on the local repository, such as when a developer commits or merges code.
- server-side: remote hooks, which are run on the network hosting the repository, and they are prompted by events such as receiving pushes.
- Jenkis
- Standardization and consistency in CI/CD progress.
- Monitor and archive the execute status.
- Jira
- Management the task progress and status.
- Publish release note after project merge. (Plugin: Jira Automation or ScriptRunner)