Please enable JavaScript.
Coggle requires JavaScript to display documents.
Jenkins - Coggle Diagram
Jenkins
What is it?
Cron on steroids, but with
-
-
-
automation, all the time the same steps
started as Hudson in 2005, forked in 2011 by community and called Jenkins
-
workspace
workspace is a folder inside our location where we unpacked our Jenkins, holding folders with different projects' source code and other data allowing to go through other phases
-
our workspace is updated every time we run our next build, so among others - our jars will be deleted and created again, but we can save (archive) e.g. artifacts in post-build action
to not lose them
CI vs CD vs CD
CI
-
Developers practicing continuous integration merge their changes back to the main branch as often as possible. The developer's changes are validated by creating a build and running automated tests against the build. By doing so, you avoid the integration hell that usually happens when people wait for release day to merge their changes into the release branch.
what you need
Your team will need to write automated tests for each new feature, improvement or bug fix.
You need a continuous integration server that can monitor the main repository and run the tests automatically for every new commits pushed.
Developers need to merge their changes as often as possible, at least once a day.
CD (delivery)
Continuous delivery is an extension of continuous integration to make sure that you can release new changes to your customers quickly in a sustainable way. This means that on top of having automated your testing, you also have automated your release process and you can deploy your application at any point of time by clicking on a button.
What you need (cost)
You need a strong foundation in continuous integration and your test suite needs to cover enough of your codebase.
Deployments need to be automated. The trigger is still manual but once a deployment is started there shouldn't be a need for human intervention.
Your team will most likely need to embrace feature flags so that incomplete features do not affect customers in production.
-
job
-
all jobs are placed in jobs
folder inside Jenkins
folder by default, each job having separate folder with its name
-
-
declarative pipeline
-
directives
-
examples
-
options: defines pipeline-specific options, including for plugins
parameters: provides a list of parameters a user should provide when triggering a pipeline — default values should be given
-
-
-
-
-
-
-
Uses file system to store all of the information, there's no database
allocating nodes in pipelines allows us to run certain tasks in parallel. Nodes give us workspace which is needed in most of the tasks
-
-