What is Jenkins?
- Jenkins is an opensource that performs continuous integration (called CI – Continuous Integration) and builds automation tasks.
- It integrates the source code of the team members quickly and continuously, tracking performance and state through Integration test, units test. Of course to help the product run stably.
The process of formation
- In 2004, Kohsuke Kawaguchi – a Java programmer at Sun got tired one day because his code was often failing.
- He wanted to find out how, before he put the code into deploy, if the code was working.
- So Kawaguchi built an automated server system for the server itself and for Java to be able to check the code status before deploying, called Hudson. Hudson became popular at Sun and thrived to other companies as opensource.
- In 2011, with Oracle’s acquisition of Sun causing a dispute with the open source community, Jenkins was forked from Hudson later. Both Hudson and Jenkins continue to exist, although Jenkins is somewhat more popular.
- In 2014 Kawaguchi becomes the CTO of CloudBees, a company that provides products based on the Jenkins platform.
What is CI? What is CD?
CI stands for Continuous Integration
- Is continuous integration, to continuously integrate the source code of the team members quickly.
1.First step, team dev team members will start pulling the latest code from the repo back to the branch to perform certain functional requests.
2. Next is the process of programming and testing the code to ensure the quality of the function as well as the entire source code.
Members of the code are ready to commit to the develop branch of the team.
4. Member update new code from repo to local repo.
5.Merge code and resolve conflict.
6.Build and ensure the code passes the tests locally.
7.Commit code to repo.
The CI server listens for code changes from the repository and can automatically build / test, then issue pass / failure messages to members.
CD stands for Continuous Delivery
- Continuous Delivery is a continuous delivery, which is a set of techniques for implementing souce code integration in a staging environment (an environment very similar to production).
Next post I will guide Build, deploy with Jenkins and Docker