What Is Jenkins In Flutter
Hi everyone! today we learn about Jenkins In Flutter. Jenkins is an open-source automation tool written in Java with plugins built for Continuous Integration purposes.
Jenkins is used to building and testing your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build.
If you’re looking for the best Flutter app development company for your mobile application then feel free to contact us at — support@flutterdevs.com.
In this tutorial, you will learn
What is Continuous Integration?
Why use Continuous Integration with Jenkins?
Real-world case study of Continuous Integration
Disadvantages of using Jenkins
What is Jenkins?
Jenkins is an open-source Continuous Integration server written in Java for orchestrating a chain of actions to achieve the Continuous Integration process in an automated fashion. Jenkins supports the complete development life cycle of software from building, testing, documenting the software, deploying, and other stages of the software development life cycle.
Jenkins is a widely used application around the world that has around 300k installations and growing day by day. By using Jenkins, software companies can accelerate their software development process, as Jenkins can automate build and testing at a rapid rate.
It is a server-based application and requires a web server like Apache Tomcat. The reason Jenkins software became so popular is that it monitors repeated tasks that arise during the development of a project. For example, if your team is developing a project, Jenkins will continuously test your project builds and show you the errors in the early stages of your development.
What is Continuous Integration?
Continuous Integration is a process of integrating code changes from multiple developers in a single project many times. The software is tested immediately after a code commit. With each code commit, code is built and tested. If the test is passed, the build is tested for deployment. If the deployment is successful, the code is pushed to production.
This commit, build, test, and deploy is a continuous process, hence the name continuous integration/deployment.
How does Jenkins work?
Jenkins is a server-based application and requires a web server like Apache Tomcat to run on various platforms like Windows, Linux, macOS, Unix, etc. To use Jenkins, you need to create pipelines which are a series of steps that a Jenkins server will take. Jenkins Continuous Integration Pipeline is a powerful instrument that consists of a set of tools designed to host, monitor, compile and test code, or code changes, like:
- Continuous Integration Server (Jenkins, Bamboo, CruiseControl, TeamCity, and others)
- Source Control Tool (e.g., CVS, SVN, GIT, Mercurial, Perforce, ClearCase and others)
- Build tools (Make, ANT, Maven, Ivy, Gradle, and others)
- Automation testing framework (Selenium, Appium, TestComplete, UFT, and others)
Jenkin History:
- Kohsuke Kawaguchi, a Java developer, working at SUN Microsystems, was tired of building the code and fixing errors repetitively. In 2004, created an automation server called Hudson that automates build and test tasks.
- In 2011, Oracle who owned Sun Microsystems had a dispute with Hudson’s open-source community, so they forked Hudson and renamed it, Jenkins.
- Both Hudson and Jenkins continued to operate independently. But in a short period, Jenkins acquired a lot of projects and contributors while Hudson remained with only 32 projects. With time, Jenkins became more popular, and Hudson was not maintained anymore.
Why use Continuous Integration with Jenkins?
Some people might think that the old-fashioned way of developing software is the better way. Let’s understand the advantages of CI with Jenkins with the following example
Let us imagine, that there are around 10 developers who are working on a shared repository. Some developer completes their task in 25 days while others take 30 days to complete.
Before Jenkins After Jenkins Once all Developers had completed their assigned coding tasks, they used to commit their code all at the same time. Later, Build is tested and deployed.
Code commit was built, and the test cycle was very infrequent, and a single build was done after many days. The code is built and tested as soon as the Developer commits the code. Jenkin will build and test code many times during the day
If the build is successful, then Jenkins will deploy the source into the test server and notifies the deployment team. If the build fails, then Jenkins will notify the errors to developer team.
Since the code was built all at once, some developers would need to wait until other developers finish coding to check their build The code is built immediately after any of the Developers commits. It is not an easy task to isolate, detect, and fix errors for multiple commits.
Since the code is built after each commit of a single developer, it’s easy to detect whose code caused the build to fail Code build and test process are entirely manual, so there are a lot of chances for failure. Automated build and test process saving timing and reducing defects. ‘
The code is deployed once all the errors are fixed and tested. The code is deployed after every successful build and test. Development Cycle is slow The development cycle is fast. New features are more readily available to users. Increases profits.
Real-world case study of Continuous Integration
I am sure all of you are aware of the old phone Nokia. Nokia used to implement a procedure called nightly build. After multiple commits from diverse developers during the day, the software was built every night. Since the software was built only once a day, it’s a huge pain to isolate, identify, and fix the errors in a large code base.
Later, they adopted the Continuous Integration approach. The software was built and tested as soon as a developer committed code. If any error is detected, the respective developer can quickly fix the defect.
Jenkins Plugins:
By default, Jenkins comes with a limited set of features. If you want to integrate your Jenkins installation with version control tools like Git, then you need to install plugins related to Git. In fact, for integration with tools like Maven, and Amazon EC2, you need to install respective plugins in your Jenkins.
Advantages of using Jenkins:
- Jenkins is being managed by a very open community. Every month, they hold public meetings and take inputs from the public for the development of the Jenkins project.
- So far around 280 tickets are closed, and the project publishes stable releases every three months.
- As technology grows, so does Jenkins. So far Jenkins has around 320 plugins published in its plugins database. With plugins, Jenkins becomes even more powerful and feature-rich.
- Jenkins tool also supports cloud-based architecture so that you can deploy Jenkins in cloud-based platforms.
- The reason why Jenkins became popular is that it was created by a developer for developers.
Disadvantages of using Jenkins:
Though Jenkins is a very powerful tool, it has its flaws.
- Its interface is outdated and not user-friendly compared to current UI trends.
- Though Jenkins is loved by many developers, it’s not that easy to maintain because Jenkins runs on a server and requires some skills as a server administrator to monitor its activity.
- One of the reasons why many people don’t implement Jenkins is due to its difficulty in installing and configuring Jenkins.
- Continuous integrations regularly break due to some small setting changes. Continuous integration will be paused and therefore requires some developer attention.
Conclusion:
- In Continuous Integration, after a code commit, the software is built and tested immediately. Jenkins is used for orchestrating a chain of actions for Continuous Integration in a software project.
- Before Jenkins when all Developers had completed their assigned coding tasks, they used to commit their code all at the same time. Later, Build is tested and deployed.
- After Jenkins, the code is built and tested as soon as the Developer commits the code. Jenkin will build and test code many times during the day
- By default, Jenkins comes with a limited set of features. If you want to integrate your Jenkins installation with version control tools like Git, then you need to install plugins related to Git
- The biggest pros of Jenkins are that it is managed by the community which holds public meetings and takes inputs from the public for the development of Jenkins projects. The biggest con of Jenkin is that Its interface is outdated and not user-friendly compared to current UI trends.
❤ ❤ Thanks for reading this article ❤❤
If I got something wrong? Let me know in the comments. I would love to improve.
Clap 👏 If this article helps you.
Feel free to connect with us:
And read more articles from FlutterDevs.com.
FlutterDevs team of Flutter developers to build high-quality and functionally-rich apps. Hire a flutter developer for your cross-platform Flutter mobile app project on an hourly or full-time basis as per your requirement! For any flutter-related queries, you can connect with us on Facebook, GitHub, Twitter, and LinkedIn.
We welcome feedback and hope that you share what you’re working on using #FlutterDevs. We truly enjoy seeing how you use Flutter to build beautiful, interactive web experiences.