Jenkins pipelines
pipelines
📘 What is a Jenkins
Jenkins is an self-contained & open source continuous integration/continuous delivery and deployment (CI/CD) automation software DevOps tool written in the Java programming language. Jenkins can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software
It is used to implement CI/CD workflows{.external .target=’_blank’}, called pipelines (by configuration files called Jenkinsfile or web ui).
The need for Jenkins becomes especially acute when deploying to a microservices architecture. Since one of the goals of microservices is to frequently update applications and services, the ability to do so is relevant and significant.
1 Install
Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed. Jenkins is a highly extensible product whose functionality can be extended through the installation of plugins.
Jenkins is typically run as a standalone application in its own process.
The Jenkins WAR file bundles Winstone, a Jetty servlet container wrapper, and can be started on any operating system or platform with a version of Java supported by Jenkins.
Theoretically, Jenkins can also be run as a servlet in a traditional servlet container like Apache Tomcat or WildFly, but in practice this is largely untested and there are many caveats. In particular, support for WebSocket agents is only implemented for the Jetty servlet container.
1.1 Debian Ubuntu
Prerequisites
Minimum hardware requirements:
- 256 MB of RAM
- 1 GB of drive space (although 10 GB is a recommended minimum if running Jenkins as a Docker container)
Recommended hardware configuration for a small team:
- 4 GB+ of RAM
- 50 GB+ of drive space
Software requirements:
On Debian and Debian-based[.external target=’_blank’] distributions like Ubuntu you can install Jenkins through apt.
App.bash
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins2 Pipelines
Jenkins pipelines can be defined using a text file called JenkinsFile.
You can implement pipeline as code using JenkinsFile, and this can be defined by using a domain specific language (DSL).
With JenkinsFile, you can write the steps needed for running a Jenkins pipeline in Groovy: a (declarative and/or scripting) multi-faceted language for the Java platform very similar to yaml (declarative o more declarative).
A continuous delivery (CD) pipeline is an automated expression of your process for getting software from version control right through to your users and customers.
Every change to your software (committed in source control) goes through a complex process on its way to being released. This process involves building the software in a reliable and repeatable manner, as well as progressing the built software (called a build) through multiple stages of testing and deployment.
Creating a Jenkinsfile and committing it to source control provides a number of immediate benefits:
- Automatically creates a Pipeline
buildprocess for allbranchesandpull requests. - Code review/iteration on the Pipeline (along with the remaining source code).
- Audit trail for the Pipeline.
- Single source of truth for the Pipeline, which can be viewed and edited by multiple members of the project.
2.1 Declarative Pipeline fundamentals
In Declarative Pipeline syntax, the pipeline block defines all the work done throughout your entire Pipeline.
- Execute this Pipeline or any of its stages, on any available agent.
- Defines the
Buildstage. - Perform some steps related to the
Buildstage. - Defines the
Teststage. - Perform some steps related to the
Teststage. - Defines the
Deploystage. - Perform some steps related to the
Deploystage.
2.2 Creating your first Pipeline
- Install the Docker Pipeline plugin through the
Manage Jenkins > Plugins page - After installing the plugin, restart Jenkins so that the plugin is ready to use
- Copy one of the examples into your repository and name it
Jenkinsfile - Click the
New Itemmenu within Jenkins
- Provide a name for your new item (e.g. My-Pipeline) and select
Multibranch Pipeline - Click the
Add Sourcebutton, choose the type of repository you want to use and fill in the details - Click the
Savebutton and watch your first Pipeline run ## On windows


