This question is subjective, so please understand and listen to it.
These two are made for the same purpose, so what can be achieved in the end is similar, but
There are some differences in how you do it and how you think about it, and there is a big difference in how you use it.
CircleCI's documentation of the difference from
Jenkins
https://circleci.com/docs/2.0/migrating-from-jenkins/
It may be helpful because it is located in .
To quote that menu,
Job Configuration
Plugins
Distributed Buildings
Containers and Docker
Parallelism
CircleCI seems to claim that there are major differences such as .
Although subjective, I will compare some of the differences that I felt empirically below.
When CI cloud services such as CircleCI and TravisCI appeared,
"In the first place, ""You can put the build pipeline settings together in the code repository"""
I think it was a big advantage compared to Jenkins.
In other words, if you put in one of the circuitci.yml files, it will immediately move inside the circuitci and
Also, if a code change requires a change to the build pipeline,
You can follow the configuration file by changing it at the same time.
Therefore, it is compatible with the development of PullRequest based on Github and others, and it has spread mainly to OSS.
However, the Jenkins side will also be upgraded
By writing a script called Jenkinsfile
Build pipeline definitions can now be stored in a repository.
Therefore, we are fully prepared for these applications.
However, you can still create jobs for old manual enrollment.
Therefore, when using Jenkins, the jobs that run there are not always configuration file-based jobs.
(In other words, some jobs may not be understood by the code side.)
In terms of ease of writing of this setting, it depends on your preference, but there may be differences.
Specifically, the CircleCI configuration is from the YAML file and Jenkins configuration is from the groovy script.
(There is nothing more objective about this right or wrong, so please try it out by the questioner.)
CircleCI basically starts the build pipeline when
When to merge branches, when to send PullRequest, etc.
Limited to repository state changes.
(You can move a fixed job pipeline manually on the UI)
Jenkins has some flexibility in setting the startup conditions for those jobs.It can also be started manually.
However, can CircleCI continue in the middle of the job?
It is possible to set up a manual approval for ... and
You can stop suddenly updating the deployment target system environment.
Jenkins needs to be installed and managed by himself that the server is working well.
Since circuitci is a cloud service, you can leave it to circuitci.
However, for this reason, when deploying with CircleCI,
to its own system network
The CircleCI side should be allowed access.
(However, there is a fee-based Enterprise CircuitCI for this.)
Jenkins jobs can be parameterized, and you can also manually configure what you want to build, etc.
On the other hand, this can be a bit harsh, and there are both advantages and disadvantages.
CircleCI cannot be used like that from the beginning, so
You may say it's simple or not flexible.
I've mentioned a lot of differences.
However, this kind of tool may help you understand the intuitive difference faster if you actually use it.
We recommend that you create a small repository and actually build a build pipeline.
Jenkins is the software so basically you have to install it yourself and build your environment.
CircleCI is a cloud service, so the environment is ready and available as long as you register as a user.
© 2024 OneMinuteCode. All rights reserved.