Jenkins & CloudBees
- Jenkins
- Jenkins and Helm Charts
- Jenkins and Terraform
- Jenkins Is The Way
- Evolution of open source CI/CD Tools
- eBooks
- Jenkins on Kubernetes
- Jenkins on Docker
- Groovy
- Awesome Jenkins
- Jenkins Cheat Sheet
- Jenkins Special Interest Groups (SIG)
- Running Jenkins on Java 11. Use OpenJDK 11
- Online Learning
- Jenkins Configuration as Code Solutions. 3 available DSLs
- Jenkins Template Engine JTE
- Jenkins Pipeline Unit Testing Framework
- Jenkins Architecture. Performance and Scalability
- Ansible and Jenkins. Running Ansible Playbooks From Jenkins
- Jenkins Tools
- Jenkins Multibranch Pipeline
- Jenkins Plugins
- Monitoring jenkins
- Externalizing Fingerprint Storage for Jenkins
- Jenkins and Spring Boot
- Docker in Docker. Running Jenkins in Kubernetes
- CloudBees
- Jenkins Scripts
- Backup for Jenkins on Kubernetes
- Jervis: Jenkins as a service
- Jenkins X (Serverless)
- Jenkins and SAP
- Jenkins Free Templates for AWS CloudFormation
- Videos
- Tweets
Jenkins
- CloudBees
- Wikipedia.org: Jenkins Software
- Jenkins.io (new Jenkins 2.0 site) π
- jenkinsci.github.io π
- Official Jenkins Docker image
- github.com/jenkinsci π
- reddit.com/r/jenkinsci π
- dzone: getting started with jenkins the ultimate guide
- dzone: jenkins in a nutshell
- opensource.com: running jenkins builds containers π
- WebSocket support in now available for Jenkins CLI and agent networking!
- webhookrelay.com: Receive Github webhooks on Jenkins without public IP π
- Dzone refcard: Jenkins on PaaS Continuous Integration with Jenkins for Java Projects. Includes a review of the most useful plugins, best practices, security, integration to an enterprise environment, and more.
- jenkins.io 2020-05-06: Slave to Agent renaming. Renaming of the official Docker images for Jenkins agents We would like to announce the renaming of the official Docker images for Jenkins agents. The “slave” term is widely considered inappropriate in open source communities. It has been officially deprecated in Jenkins 2.0 in 2016, but there are remaining usages in some Jenkins components.
- Windows Docker Agent Images: General Availability π
- Jenkins: Shifting Gears ππ Evolutionary line from the current Jenkins 2, but with breaking changes in order to gain higher development speed. This document lays out the key directions and approaches in a broad stroke, which I discussed with a number of you in the past. Hopefully, this gives you the big picture of how I envision where to move Jenkins forward, not just as the creator of Jenkins but as the CTO of CloudBees, who employs a number of key contributors to the Jenkins project.
- aws.amazon.com/blogs: Why Jenkins still continuously serves developers π
- On Jenkins Terminology Updates
- medium: Deploy your App Using CI/CD Pipeline
- medium: CI/CD Pipeline of Jenkins Using Groovy Language With Monitoring on the Top of Kubernetes π
- Cross account ECR push with Jenkins
- dzone.com: Easily Automate Your CI/CD Pipeline With Jenkins, Helm, and Kubernetes π Learn how to set up a workflow to automate your CI/CD pipeline for quick and easy deployments using Jenkins, Helm, and Kubernetes.
- Building Pipeline and Launching Jenkins in Container
- lambdatest.com: Best Jenkins Pipeline Tutorial For Beginners (Examples) π
- youtube: MSBuild With Jenkins | Jenkins For C# / .NET Applications
- betsol.com: DevOps Using Jenkins, Docker, and Kubernetes
- Setup Chained Jenkins Declarative Pipeline Projects with Triggers π
- devopscurry.com: What makes Jenkins everyoneβs favorite in 2020
- linkedin: Jenkins Server setup with dynamic worker nodes
- medium: CI/CD with Dockers and Jenkins
- harness.io: Modernizing Jenkins CI/CD Pipelines
- jenkins.io: Docker image updates
- blog.executeautomation.com: Running Jenkins Build Agent within Docker container β Part A Jenkins is one of the most popular CI/CD open source tool without any doubt. It has evolved so much in recent past that, the tool can be utilised with many modern way approach to build the application and deploy the application. Jenkins can be scaled with not just by installing different build agents in different machines, rather we can use the power of Docker containers to install agent and perform build operations effortlessly.
- lambdatest.com: How To Set Up Continuous Integration With Git and Jenkins?
- itnext.io: Jenkins: running workers in Kubernetes and Docker images build
- aws.amazon.com: How to cost optimize Jenkins jobs on Kubernetes with EC2 Spot Instances π
- medium: CI/CD Pipeline of Jenkins Using Groovy Language With Monitoring on the Top of Kubernetes
- amazon.com: Building a serverless Jenkins environment on AWS Fargate
- youtube: How to Create a GitLab Multibranch Pipeline in Jenkins
- lambdatest.com: Jenkins Tutorial π
- youtube/Bribe By Bytes: Jenkins Pipelines | Pipeline Concept | Types of Pipelines | Part 1
- jenkins.io: Easily reuse Tekton and Jenkins X from Jenkins π Jenkins can now be used to automate Tekton pipelines too which helps teams digitally transform to more cloud native solutions for their CI and CD. In such a case, you can use Tekton pipeline engine while getting all benefits from Jenkins as an orchestrator, user interface and the reporting engine. The Tekton Client plugin for Jenkins lets you easily use Jenkins to automate creating and running Tekton pipelines. It bridges the Kubernetes learning gap and allows invoking Tekton Pipelines and resources through Jenkins. This allows users to not have much of the Kubernetes specific knowledge beforehand and work. Its a single Jenkins plugin to install - so itβs easy to use.
- harness.io: What is Pipeline as Code, and How Can You Leverage It?
- lambdatest.com: How To Set Jenkins Pipeline Environment Variables? π
- slideshare.net: Jeff Geerling - Jenkins or: How I learned to stop worrying and love automation π Configuring Jenkins like a pro. Use authorization strategies in jenkinsci unless you want to have Remote Code Execution as a Service! There are many plugins like Matrix Auth, Role Strategy and Folder Auth. Vendors like CloudBees also provide security engines in their products.
- youtube - CloudBeesTV: How to Run a Shell Script in Jenkins Pipeline π
- opensource.com: Make Jenkins logs pretty Jenkins’ default logs can be hard to read, but they don’t have to be.
- medium: Dynamic and reactive parameterization in Jenkins pipelines using HTML, Groovy, and Bash π - Jenkins Plugin: Active Choices π The Active Choices plugin is used in parametrized freestyle Jenkins jobs to create scripted, dynamic and interactive job parameters. Active Choices parameters can be dynamically updated and can be rendered as combo-boxes, check-boxes, radio-buttons or rich HTML UI widgets.
- automationreinvented.blogspot.com: How to schedule a job in Jenkins pipeline? How to run automation suite everyday with auto trigger scheduler?
- automationscript.com: How To Read Jenkins Build Log Console Output
- cloudbees.com: So, Your Jenkins Is Slow. Hereβs How to Fix It π
- youtube: Jenkins World 2017: How to Use Jenkins Less π In jenkinsci CloudBees’ advice is to use build tool features when possible (Maven/Gradle/make/etc.). When the tools are not enough and you need a distributed orchestrator/reporting layer, this is where Jenkins shines. - slides & demos
- youtube: Build Docker Image using Jenkins Pipeline | Push Docker Image to Docker Hub using Jenkins π
- sngular.com: QA + DEVOPS - Dockerizando un pipeline de Jenkins
- youtube: Online Meetup: From local installation to scalable Jenkins on Kubernetes π
- youtube: Jenkins and Sonarqube Integration with Maven | SonarScanner for Maven and Integrate with Jenkins
- youtube: LambdaTest - Jenkins Tutorial For Beginners | Part 7 | Adding A Jenkins Controller & Jenkins Agent Node On Azure
- youtube: Jenkins On Kubernetes Tutorial | How to setup Jenkins on kubernetes cluster | Thetips4you π
- docs.google.com: Jenkins Artwork Social Media & Open Graph Images Google Slides is one of the easiest ways to collaborate on open graphs and other artwork in the community. Main jenkinsci slidedeck is here.
- automationreinvented.blogspot.com: How to send email notification in Jenkins using Groovy Script?
- gist.github.com/twasink: Jenkins Image, using Docker-in-Docker π
- youtube: Run Jenkins Pipeline With AWS ECS Fargate & AWS EC2 Based ECS Cluster | Learn DevOps Tools Ep4
- youtube LambdaTest: Jenkins Tutorial For Beginners | Part 9 | Cross Browser Testing With LambdaTest Jenkins Plugin
- medium: Integrate BitBucket & Jenkins Connect Jenkins and Bitbucket. And trigger a job automatically in Jenkins when a new code is committed in Bitbucket.
- developer.okta.com: Update App Secrets with Jenkins CI and .NET Core
- developers.redhat.com: Deploy Helm charts with Jenkins CI/CD in Red Hat OpenShift 4 π
- jenkins.io: Git Username/Password Credentials Binding for sh, bat, and powershell π Google Summer of Code 2021 is implementing git credentials binding for sh, bat, and powershell. Git credentials binding is one of the most requested features for Jenkins Pipeline (see JENKINS-28335). The project involves extending the Credentials Binding Plugin to create custom bindings for two types of credentials essential to establish a remote connection with a git repository: Username/Password , SSH Private Key.
- youtube: Creating a CI/CD deployment pipeline for JenkinsCI with AWS SAM Pipelines π Learn how to simplify CI/CD pipelines for serverless applications with a pipeline generator and templates with AWS built-in best practices for CloudBees and JenkinsCI.
- blogs.sap.com: SAP Cloud Integration automated testing using Jenkins and Pipeline as a Code approach
- github.com/jenkins-infra/jenkins.io/issues A static site for the Jenkins automation server. Contribute to jenkins-infra/jenkins.io development by creating an account on GitHub.
- itnext.io: Jenkins Tutorial β Part 1 β Pipelines π
- dev.to: Send notification to slack from the Jenkins CI Job and Jenkinsfile
- dev.to: Setting up a CI/CD with Jenkins
- fabiogomezdiaz.com: How to Run Packer Pipelines on Jenkins: Part 1 - Traditional Jenkins
- jenkins.io: Docker images use Java 11 by default π The default Java version in the Jenkins Docker images is switching to Java 11.
- igorzhivilo.com: Build CI/CD of the future with Kubernetes (AWS EKS) and Jenkins π A series of tutorials with code examples about how to build CI/CD of the future using Kubernetes/Jenkins/AWS
- community.jenkins.io: DSTY - jenkins-std-lib (Shared Library) - Interact with files/directories using Groovy! - Pipeline Utility Steps π Small, miscellaneous, cross platform utility steps for Jenkins Pipeline jobs githu ref
- Connecting and authenticating to Jenkins with Teleport Application Access This shows integrating a Jenkins with Teleport Application Access for Access and Authentication.
- dzone: Parameterize Jenkinsfile in MultiBranch Jobs π Select different Jenkinsfiles as a parameter in MultiBranch Jobs
- automationreinvented.blogspot.com: How to create parameterized job in Jenkins? What is parameterized build in Jenkins?
- infoworld.com: Continuous integration with Docker and Jenkins How to pull from Git, build a Docker image, and publish the image to Docker Hub.
- lambdatest.com: What Is Jenkins Used For? π
- automationqahub.com: How To Publish ExtentReport Using Jenkins
- developers.redhat.com: A developer’s guide to CI/CD and GitOps with Jenkins Pipelines
- inder-devops.medium.com: CI/CD setup in just 5 mins with basic yaml configuration
- youtube: Cloud Learn Hub - How to Integrate Jenkins with Ansible Tower?
- youtube: Tech World with Nana - Jenkins Tutorial for Beginners
- camunda.com: How We Overcame Long-Running Job Limitations in Jenkins Declarative Pipelines
- aws.amazon.com: Jenkins high availability and disaster recovery on AWS π
- blog.searce.com: Jenkins Distributed Cluster Using Dynamic Build Agents On GKE In this article, you’ll learn how to build a distributed Jenkins cluster on GKE and autoscale the Jenkins agents to process more jobs.
- fosstechnix.com: How to Validate Jenkinsfile using Visual Studio Code
- freecodecamp.org: Learn Jenkins by Building a CI/CD Pipeline π
- medium.com/ni-tech-talk: Creating Customized Kubernetes Pod Templates using Groovy in Jenkins Pipeline π
- palak-bhawsar.hashnode.dev: Automated CI/CD pipeline for Java Project
- faun.pub: Set up Jenkins on a Kubernetes Cluster
- blog.devops.dev: Blue-Green Deployment (CI/CD) Pipelines with Docker, GitHub, Jenkins and SonarQube
- itnext.io: Accelerate Development with Jenkins Pipelines and Continuous Integration
- dzone.com: Continuous Integration in AWS Using Jenkins Pipelines: Best Practices and Strategies Learn about implementing CI using Jenkins, a popular automation tool, and how this approach can optimize and streamline your software development process.
- praveendandu24.medium.com: Understanding the Differences Between Jenkins Scripted and Declarative Pipeline: A Comprehensive Guide with Real-World Examples
- prabirmahatha.hashnode.dev: Jenkins Declarative Pipeline with Docker
Jenkins and Helm Charts
- blog.devops.dev: Deploying Helm Charts with Jenkins and Groovy: A Comprehensive Guide
- github.com/jenkinsci/helm-charts
Jenkins and Terraform
- towardsaws.com: Terraform: Jenkins CI/CD Pipeline
- aws.plainenglish.io: Deploying AWS Resources and a Jenkins Server with Terraform
- aws.plainenglish.io: Terraform: How To Deploy Jenkins CI/CD Pipelines Using Terraform Deploy an EC2 instance bootstrapped with a script to install and run Jenkins.
Jenkins Is The Way
- jenkinsistheway.io: Jenkins Is The Way π Jenkins Is The Way is a collection of experiences from all around the world showcasing how users are building, deploying, and automating great stuff with Jenkins.
- jenkinsistheway.io: Financial Transactions Simplified With Faster Build Cycles π After integrating Jenkins, this FinTechβs financial transaction product quality is improved and 3X simpler.
- jenkinsistheway.io: Advanced Declarative Pipelines for Workflow and Decision Automation Platform π
- jenkinsistheway.io: Alert Management A Jenkins-based tool receives pipeline alerts and, in turn, determines who to notify.
- jenkinsistheway.io: Jenkins is the way to DevSecOps. Cybersecurity CI/CD A cumbersome legacy process for building, testing and releasing software is a huge challenge for a global cybersecurity company that has to stay ahead of hackers, fraudsters and trends in cybercrime.
Evolution of open source CI/CD Tools
eBooks
- Pipeline as Code Continuous Delivery with Jenkins, Kubernetes, and Terraform
- riptutorial.com: Learning Jenkins
- cloudbees.com: Jenkins Pipeline with Plugins Jenkins is one of the preeminent automation tools. Jenkins is extensible by design, via plugins. Plugins are what give Jenkins its great flexibility for automating a wide range of processes on diverse platforms. Jenkins Pipeline builds on that flexibility and rich plugin ecosystem while enabling Jenkins users to write their Jenkins software pipelines as code. This technical guide will show a number of common use cases for plugins with Jenkins Pipeline.
Jenkins on Kubernetes
- jenkins.io: Document Jenkins on Kubernetes: Installing Jenkins on Kubernetes Documentation Release π
- jenkins.io: Installing Jenkins on Kubernetes π
- ssbostan/jenkins-stack-kubernetes π Scripts and manifests to deploy Jenkins on Kubernetes
Jenkins on Docker
- ssbostan/jenkins-stack-docker Docker-compose version of jenkins-stack-kubernetes
Kubernetes Native Jenkins Operator
- github.com/jenkinsci/kubernetes-operator: π Kubernetes platform was released ten years after the first version of Hudson project. It means Jenkins couldnβt be designed to run on top of it. Jenkins Operator tries to bridge that gap.
- jenkins.io: Jenkins Operator becomes an official sub-project!
- jenkins.io: Security Validator for Jenkins Operator for Kubernetes
- cd.foundation: Going Cloud Native with Jenkins Kubernetes Operator
Groovy
- Wikipedia.org: Groovy
- Dzone: Introduction to Groovy
- Dzone refcard: Groovy, a Rapid-Development JVM Language
- opensource.com: Read and write files with Groovy
- dzone: Groovy Goodness: Using The Call Operator In the newest installment of Groovy Goodness, Mr. Haki presents how to use Groovy’s call operator to take our code density to the next level.
Awesome Jenkins
Jenkins Cheat Sheet
Jenkins Special Interest Groups (SIG)
- Jenkins SIG Platform π This special interest group offers a venue for all kinds of platform support discussions: Java, Operating Systems, Architectures, Docker, Packaging, Web Containers, etc. The SIG works on defining platform support policies, coordinating platform support efforts with contributors and external communities, and reviewing proposals in the area.
- Jenkins SIG Cloud Native π
Running Jenkins on Java 11. Use OpenJDK 11
- Running Jenkins on Java 11 π
- Oracle’s Java 11 trap - Use OpenJDK instead! π
- Itβs time! Migrating to Java 11 π
Online Learning
- blog.techiescamp.com/jenkins-course πππ
- udemy.com: Master Jenkins CI For DevOps and Developers
- udemy.com: Learn DevOps: CI/CD with Jenkins using Pipelines and Docker Use Jenkins the DevOps way. Automate your Jenkins jobs by using Jenkins Pipelines, Docker, and the Jenkins Job DSL
- wardviaene/jenkins-course π
Jenkins Configuration as Code Solutions. 3 available DSLs
- Job DSL was one of the first popular plugins for Jenkins which allows managing configuration as code and many other plugins dealing with this aspect have been created since then, most notably the Jenkins Pipeline and Configuration as Code plugins. It is important to understand the differences between these plugins and Job DSL for managing Jenkins configuration efficiently.
- In consequence 3 DSLs are available to configure jenkins as code:
- DSL 1: Job DSL
- DSL 2: Jenkins (Declarative) Pipeline
- DSL 3: Jenkins Configuration as Code (JCasC)
- Tip: Don’t stay with manually configured freestyle jobs. Use JobDSL wrapper if you can’t use Pipeline.
DSL 1. Job DSL Plugin. From Freestyle jobs to Declarative Pipeline
- Jenkins Job DSL API used in jenkins declarative pipelines.
- Job DSL Plugin π
- github.com/jenkinsci/job-dsl-plugin
- Jenkins Job DSL Plugin documentation π A Groovy DSL for Jenkins Jobs - Sweeeeet!
- Jenkins Job DSL API π
- mavenJob
- Continuation Passing Style (CPS) is a style of programming in which the remainder of the program is passed explicitly as a parameter, as opposed to that being handled implicitly represented as call stack.
- Example of a pipeline with parameters
- job-dsl Gradle Example
- Jenkins DSL for Nexus
- Jenkins DSL for Maven:
- Pipeline Global Library for ci.jenkins.io Collection of custom steps and variables for our Jenkins instance(s)
- medium: Jenkins Jobs as Code with Groovy DSL (Job DSL plugin) π
DSL 2. Jenkins Pipeline. Pipeline as Code with Jenkins
- Pipeline as Code with Jenkins π
- Why Pipeline? Jenkins is, fundamentally, an automation engine which supports a number of automation patterns. Pipeline adds a powerful set of automation tools onto Jenkins, supporting use cases that span from simple continuous integration to comprehensive CD pipelines. By modeling a series of related tasks, users can take advantage of the many features of Pipeline:
- Code: Pipelines are implemented in code and typically checked into source control, giving teams the ability to edit, review, and iterate upon their delivery pipeline.
- Durable: Pipelines can survive both planned and unplanned restarts of the Jenkins master.
- Pausable: Pipelines can optionally stop and wait for human input or approval before continuing the Pipeline run.
- Versatile: Pipelines support complex real-world CD requirements, including the ability to fork/join, loop, and perform work in parallel.
- Extensible: The Pipeline plugin supports custom extensions to its DSL and multiple options for integration with other plugins.
- Why Pipeline? Jenkins is, fundamentally, an automation engine which supports a number of automation patterns. Pipeline adds a powerful set of automation tools onto Jenkins, supporting use cases that span from simple continuous integration to comprehensive CD pipelines. By modeling a series of related tasks, users can take advantage of the many features of Pipeline:
- jenkins.io - doc/book/pipeline π
- jenkins.io - Jenkinsfile π With version 2 of the Jenkins Continuous Integration/Continuous Delivery (CI/CD) server, a new job definition file has been introduced, called Jenkinsfile. The initial Jenkinsfile format was based on Groovy. As groovy knowledge is not that widespread, a new and more straight forward was published in spring 2017. This format is called Declarative Pipeline. This visual studio code extension is aimed at making the manipulation of this file type easier.
- Dzone refcard: Continuous Delivery with Jenkins Pipeline π
- GitHub Gist - Faheetah/Jenkinsfile.groovy: Jenkinsfile idiosynchrasies with escaping and quotes
- jenkins.io: Jenkins CD and Pipelines Microsite
- dzone.com: Jenkins Pipeline - Software Delivery Made Easy Jenkins 2.0 has focused on solving the problem for organizations wanting to continuously deliver software.
- DZone refcard: declarative pipeline with jenkins π
- sdtimes.com: CI/CD pipelines are expanding π The βbasicβ CI/CD pipeline includes five processes, which are: merge, build, test, package and deploy. All of these are individually defined so readers have a common reference point. The basic pipeline includes sub-pipelines associated with each step, such as moving artifacts from a build into a repository.
- magalix.com: Create a CI/CD pipeline with Kubernetes and Jenkins (Ansible, Docker, Golang App) π
- dzone: learn how to setup a cicd pipeline from scratch π
- dzone: how to use basic jenkins pipelines
- opensource.com - building cicd pipelines with jenkins π
- devopscube.com: Jenkins Pipeline as Code Tutorial For Beginners π
- loves.cloud: CI/CD Pipeline Using Docker and Jenkins
- medium: jenkins cicd getting started with groovy and docker
- Dzone: Top 10 Best Practices for Jenkins Pipeline
- opensource.com - Introduction to writing pipelines-as-code and implementing DevOps with Jenkins 2
- thoughtworks.com: Modernizing your build pipelines π
- jenkins users mailing list: Declarative pipelines vs scripted
- cloudbees.com: Top 10 Best Practices for Jenkins Pipeline Plugin ππ
- When writing a pipeline definition, use Declarative syntax. First, a history lesson. Scripted syntax was released around December of 2014. In February 2017, Declarative syntax was introduced. Until Declarative was released, we had no choice but to use Scripted syntax. However, since that time, many new features, such as matrix, have only been made available for Declarative.
- Use shared libraries. Do you remember the days of when you used inline JavaScript in your web pages? When you introduce a “script” tag into a Declarative pipeline, that’s a warning sign that you are starting to head down the same path. When you decide that the “script” tag is the only way to go, instead of using the “script” tag, you should instead create a custom step in a shared library and use that step within your Declarative pipeline.
- Don’t use shared libraries (the wrong way). Wait, what? You just told me to use shared libraries and now you’re telling me not to use shared libraries. What gives? Many people will treat shared libraries like a programming project. Here’s the thing to keep in mind. Scripted and Declarative syntax are meant to only do CI tasks and not to be a general purpose programming language. Many Jenkins controller performance issues can be traced back to the misuse of scripted syntax and shared libraries written in a way where all the work is being done within the Jenkins controller itself instead of on the agents.
- Only use Scripted syntax when it doesn’t make sense to use Declarative plus a shared library.
- cuelogic.com: Decoding Pipeline as Code (With Jenkins) π Pipeline as code technique rests on the paradigm that delivery pipeline configuration which builds, tests, deploys applications, and software infrastructure must be treated as code.
- mishra-praveen.medium.com: Comprehensive Guide To Jenkins Declarative Pipeline [With Examples]
How to share a Declarative Pipeline. Examples of Declarative Pipelines in Shared Libraries
- mtijhof.wordpress.com: Jenkins: Running a declarative pipeline from your Shared Library π
- Starting with Declarative 1.2, released in late September, 2017, you can define Declarative Pipelines in your shared libraries as well π Only entire pipelines can be defined in shared libraries as of this time. This can only be done in vars/*.groovy, and only in a call method. Only one Declarative Pipeline can be executed in a single build, and if you attempt to execute a second one, your build will fail as a result.
- Declarative Pipeline - Jenkins shared library π
- stackoverflow.com: Can I have an entire declarative pipeline defined and parameterized in a shared library?
- jenkins.io: Share a standard Pipeline across multiple projects with Shared Libraries π
- jenkins.io: Parallel stages with Declarative Pipeline 1.2 π
Jenkins Pipeline Syntax. Scripted Syntax (Groovy DSL syntax) VS Declarative Syntax
- Jenkins Pipeline Syntax: Scripted Syntax (Groovy DSL syntax) & Declarative Syntax π:
- Version 2.5 of the “Pipeline plugin” released in 2016/05/16 introduces support for Declarative Pipeline syntax.
- Declarative Pipeline is a relatively recent addition to Jenkins Pipeline which presents a more simplified and opinionated syntax on top of the Pipeline sub-systems.
- Building Declarative Pipelines with OpenShift DSL Plugin:
- Jenkinsfiles have only become an integral part of Jenkins since version 2 but they have quickly become the de-facto standard for building continuous delivery pipelines with Jenkins. Jenkinsfile allows defining pipelines as code using a Groovy DSL syntax and checking it into source version control which allows you to track, review, audit, and manage the lifecycle of changes to the continuous delivery pipelines the same way that you manage the source code of your application.
- Although the Groovy DSL syntax which is referred to as the scripted syntax is the more well-known and established syntax for building Jenkins pipelines and was the default when Jenkins 2 was released, support for a newer declarative syntax is also added since Jenkins 2.5 in order to offer a simplified way for controlling all aspects of the pipeline. Although the scripted and declarative syntax provides two ways to define your pipeline, they both translate to the same execution blocks in Jenkins and achieve the same result.
- The declarative syntax in its simplest form is composed of an agent which defines the Jenkins slave to be used for executing the pipeline and a number of stages and each stage with a number of steps to be performed.
Extending with Shared Libraries
- Shared-libraries with scripted pipeline syntax are not recommended since more coding involves more maintenance issues. Use Declarative Pipeline Syntax as much as possible.
- Extending with Shared Libraries π
- A sustainable pattern with shared library π
- tomd.xyz: Jenkins shared library: tutorial with examples π How to use a shared library in Jenkins, to allow you to share common code and steps across multiple pipelines. Includes a demo Git repo that you can fork.
- jjba.dev: Jenkins Shared Library with Unit tests Tired of un-testable, un-reliable, repetitive and tedious scripts to deploy your applications with Jenkins? Look no further, here is your solution.
- lambdatest.com: How To Use Shared Libraries In A Jenkins Pipeline? π
Jenkinsfile Runner. Serverless / function-as-a-service build execution
- Jenkinsfile Runner Jenkinsfile Runner is an experiment to package Jenkins pipeline execution as a command line tool. The intend use cases include:
- Use Jenkins in Function-as-a-Service context
- Assist editing Jenkinsfile locally
- Integration test shared libraries
Jenkinsfile Runner slides. Click to expand!
DSL 3. Jenkins Configuration as Code (JCasC)
- Jenkins Configuration as Code Plugin
- devops.com: Using jenkins configuration as code
- opensource.com: Getting started with Jenkins Configuration as Code π JCasC uses YAML formats to set up Jenkins configurations.
- dzone.com: Jenkins Configuration as Code: Need for Speed! π
- Dzone: Running Jenkins Server With Configuration-as-Code π Take a look at the new plugin for Jenkins that allows you to to create pipelines using YAML! Let’s check out the details and examples.
- docs.cloudbees.com: Configuration as Code for CloudBees Core on modern cloud platforms
- cloudbees.com: CloudBees Core Configuration as Code
- Visual Studio Code JCasC-Plugin π This extension is used to integrate a live jenkins instance configuration with your editor. It can be used to edit and validate YAML files.
- Example of Configuration as Code of Jenkins (for Kubernetes) π
- JEP-224: System Read permission: Improve experience of Jenkins Configuration-as-Code users It improves the modifying Web UI configuration controls to support the read-only mode.
- cloudbees.com: All Tier 1 Plugins Support Configuration as Code ππ
- Example of JCasC
- iceburn.medium.com: Jenkins Configuration As Code
- werner-dijkerman.nl: Jenkins as code, part 1: Setting up Jenkins in Docker (JCasC)
Read-only Jenkins Configuration
- Read-only Jenkins Configuration π This feature allows restricting configuration UIs and APIs while providing access to essential Jenkins system configuration, diagnostics, and self-monitoring tools through Web UI. Such mode is critical for instances managed as code, e.g. with Jenkins Configuration-as-Code plugin. It is delivered as a part of the JEP-224: Read-only system configuration effort.
Jenkins Job Builder
- jenkins-job-builder.readthedocs.io π Jenkins Job Builder takes simple descriptions of Jenkins jobs in YAML or JSON format and uses them to configure Jenkins. You can keep your job descriptions in human readable text format in a version control system to make changes and auditing easier. It also has a flexible template system, so creating many similarly configured jobs is easy.
- docs.openstack.org: Jenkins Job Builder
- faun.pub: Automate Jenkins Pipelines management with Jenkins Job Builder π - demo code
Jenkins Template Engine JTE
- plugins.jenkins.io/templating-engine: Jenkins Template Engine JTE π
- cloudbees.com: Managing DevSecOps Pipelines at Scale with Jenkins Templating Engine
- Are you currently helping build or maintain a Jenkins pipeline for more than one application or team? Are you tired of copying and pasting Jenkinsfiles and tweaking them to fit each team’s specific needs? This session will feature a live demonstration of getting up and running with the Jenkins Templating Engine (JTE). Attendees will learn how to stop creating bespoke pipelines on a per-application basis and, instead, create tool-agnostic pipeline templates that multiple teams can inherit - regardless of tech stack.
- For DevSecOps engineers, this means less copying and pasting and more time spent focusing on the fun parts of the job. For managers or executives worried about compliance and standardization, this approach will ensure security is embedded in every step of the software development lifecycle for every application development team they oversee.
- Through JTE, businesses can find order in the chaos of managing DevSecOps pipelines at scale. Enable organizational governance, optimize pipeline code reuse and simplify pipeline management for the whole team.
Jenkins Pipeline Unit Testing Framework
- github.com/jenkinsci/JenkinsPipelineUnit: Framework for unit testing Jenkins pipelines π Jenkins Pipeline Unit is a testing framework for unit testing Jenkins pipelines, written in Groovy Pipeline DSL. If you aren’t using jenkinsUnit to test your jenkins pipeline code, then I’ve got a treat for you. TDD with pipeline is possible and can centralized in a sharedLib can really improve development. (works nicely with Spock too)
Jenkins Architecture. Performance and Scalability
- devopscube.com: Jenkins Architecture Explained β Beginners Guide
- dzone: how to setup scalable jenkins on top of a kubernetes cluster
- devops.com: kubernetes jenkins master slave scalability
- rancher.com: scaling jenkins
- rancher.com: Deploying and Scaling Jenkins on Kubernetes π
- jenkins.io - Tuning Jenkins GC For Responsiveness and Stability with Large Instances π
- dzone.com: How to Set Up Scalable Jenkins on Top of a Kubernetes Cluster π
- devops.com: Kubernetes Jenkins Master-Slave: Scaling the Scalability Issue
- 7 Ways to Optimize Jenkins
- devopscube.com: How to Setup Docker containers as Build Slaves for Jenkins
- cloudbees.com: Troubleshooting Jenkins Performance: Kubernetes Edition - Part 1 (2020) π
- cloudbees.com: Troubleshooting Jenkins Performance: Kubernetes Edition - Part 2 (2020) π
- cloudbees.com: The Two Most Common Issues with Jenkins and How to Fix Them π Jenkins is a fantastic CI/CD solution but it has a significant weak point: Managing & scaling Jenkins for the enterprise is an uphill battle. Tanya Jacob shares the 2 most common issues we hear from enterprises using Jenkins & how to fix them.
- cloudbees.com: Enterprise JVM Administration and Jenkins Performance π
Ansible and Jenkins. Running Ansible Playbooks From Jenkins
- Dzone: Running Ansible Playbooks From Jenkins
- itnext.io: Ansible and Jenkins β automate your scritps π
- ansible-role-jenkins Installs Jenkins CI on RHEL/CentOS and Debian/Ubuntu servers.
Jenkins Tools
- Jenkins CLI
- How to create initial “seed” job
- Jenkinsfile Runner Test Framework
- Jenkins Pipeline Unit testing framework
- Jenkins Custom WAR Packager
- jenkins-version The goal of this tool is to provide a small, simple CLI that can be used to determine the latest Jenkins version, whether that be in the stable or weekly release train, from maven metadata.
Plugin Installation Manager Tool
- Plugin Installation Manager Tool The plugin manager downloads plugins and their dependencies into a folder so that they can easily be imported into an instance of Jenkins. The goal of this tool is to replace the Docker install-plugins.sh script and the many other implementations of plugin management that have been recreated across Jenkins. The tool also allows users to see more information about the plugins they are downloading such as available updates and security warnings. By default, plugins will be downloaded; the user can specify not to download plugins using the –no-download option.
- Jenkins Plugin Manager CLI v1.1.0 is now released: caching of update site data and downloaded plugins, retry on download, and dependency resolution fixes.
Pipeline Development Tools
- Pipeline Development Tools (Command-line Pipeline Linter)
- Validating Jenkinsfile in Vim and/or using CLI / terminal
Custom WAR Docker Packager
- jenkinsci/custom-war-packager π Custom Jenkins WAR packager for Jenkins. Custom WAR Packager (CWP) allows building ready-to-fly Jenkins packages using a YAML specification. The tool can produce Docker images, WAR files, and Jenkinsfile Runner docker images (aka single-shot Jenkins masters). These bundles may include Jenkins core, plugins, extra libraries, and self-configuration via Groovy Hook Scripts or Configuration-as-Code Plugin YAML files.
jenkins-std-lib Jenkins Standard Shared Library
- DontShaveTheYak/jenkins-std-lib: Jenkins Standard Shared Library π A set of useful tools for every day CI/CD jobs. Bringing the Zen of Python to Jenkins. Run GitHub actions on Jenkins. “I still have lots of features I want to add but I’m adding to it when I can. My favorite feature currently is the ability to run GitHub Actions on Jenkins. For teams that use Jenkins but want something simple” (@shady_cruz)
- marketplace.visualstudio.com: Jenkins Extension Pack: DontShaveTheYak
Jenkins Multibranch Pipeline
- The Multibranch Pipeline π enable developer to implement different Jenkinsfiles for different branches of the same project. Itβs can discover branches and execute pipeline automatically with Jenkinsfiles in version control for better management pipeline.
- infracloud.io: Migrating Jenkins Freestyle Job to Multibranch Pipeline π
- youtube: How to Create a Bitbucket Cloud Branch Source Multibranch Pipeline in Jenkins
Multibranch Pipelines with Kubernetes
Jenkins Plugins
- dev.to: 8 Jenkins plugins I can’t live without (2019)
- caylent: 20 Jenkins Plugins You Canβt Live Without (2018) π
- blazemeter.com: Top Jenkins Plugins You Canβt Miss in 2018
- dzone: Top 5 Jenkins Plugins (2017)
- devops.com: 15 must have Jenkins plugins to increase productivity
- jrebel.com: Top 10 Jenkins Plugins and Features (2014)
- devteam.space: 10 Best Jenkins Plugins For DevOps
- devops.com: Top 10 Best Practices for Jenkins Pipeline Plugin π
- jenkins.io: Deprecating non-Java plugins
Selection of Jenkins Plugins
- Job DSL Plugin π
- Jenkins Job DSL API π
- Jenkins Job DSL Plugin documentation A Groovy DSL for Jenkins Jobs - Sweeeeet!
- Jenkins Configuration as Code
- performance-plugin
- Matrix π
- Compress-buildlog
- syslog-logger
- openshift-pipeline
- openshift-sync
- openshift-client
- openshift-login
- openshift-deployer
- kubernetes plugin
- Kubernetes Continuous Deploy π
- Kubernetes CLI π
- Atlassian’s new Bitbucket Server integration for Jenkins π
- Blue Ocean π
- Cloudbees Flow π
- Cloudbees Credentials π
- CloudBees Health Advisor π Jenkins Health Advisor by CloudBees (formerly known as “CloudBees Jenkins Advisor”) proactively notifies you of problems with your Jenkins-based environment. Jenkins Health Advisor by CloudBees identifies numerous issues before they affect your users, including security vulnerabilities, performance problems, and plugin version issues. Best of all, Jenkins Health Advisor by CloudBees is constantly being improved by the CloudBees Support and Engineering teams to cover the most recent identified issues.
- CloudBees Disk Usage Simple
- CloudBees AWS Credentials π
- CloudBees Docker Custom Build Environment
- Code Average API
- Fortify
- SonarQube Scanner π
- SonarScanner for Jenkins π SonarQube plugin for Jenkins with declarative pipeline
- medium: ECS Jenkins Plugin to create ephemeral Slaves in Fargate
- Pipeline: SCM Step (workflow-scm-step) The following plugin provides functionality available through Pipeline-compatible steps.
- Amazon EC2 plugin
- Copy Artifact
- Credentials Binding
- CVS plugin
- SCM Filter Jervis YAML Plugin This plugin is intended for Jenkins infrastructure relying on jervis to deliver software in a self-service manner. This plugin can also be used for Travis CI YAML.
- Deploy Dashboard by Namecheap
- Plugin Usage This plugin gives you the possibility to analyze the usage of your installed plugins.
- Pipeline as YAML (Incubated) π
- Least Load This plugin overrides the default Load Balancer behavior and assigns jobs to nodes with the least load
- Declarative Pipeline Migration Assistant π
- Configuration Slicing
- git-plugin π
- Parameter Separator
- Declarative Pipeline Migration Assistant API π This project includes a plugin that uses details from a Freestyle project to generate a starting Jenkinsfile. The Declarative Pipeline Migration Assistant plugin uses a βbest effortβ approach during generation, which means supported configurations in Freestyle projects will be automatically converted, and placeholder stages will be created for plugins that are not yet supported.
- HashiCorp Vault π
- Matrix Authorization Strategy π
- AWS Secrets Manager Credentials Provider
- QF-Test is a cross-platform software tool for the GUI test automation specialized on Java and Web applications.
- Role-based Authorization Strategy π
- Extensible Choice Parameter
- devopscurry.com: Best Jenkins Plugin for 2021 π
- Allure π This plugin allows to automatically generate Allure Report and attach it to build during Jenkins job run.
- Amazon Web Services SDK
- Metrics This plugin exposes the Metrics API to Jenkins plugins.
- Git Forensics This Git Forensics Jenkins plugin mines and analyzes data from a Git repository. It implements all extension points of Jenkins’ Forensics API Plugin.
- Robot Framework
- Jenkins Prometheus Metrics Plugin π Jenkins Prometheus Plugin expose an endpoint (default /prometheus) with metrics where a Prometheus Server can scrape.
- tekton-plugin: Easily reuse Tekton and Jenkins X from Jenkins Use tektoncd pipeline engine while getting all benefits from jenkinsci as an orchestrator, user interface and reporting eng. - jenkinsci/tekton-client-plugin - youtube: Using the Tekton Client Plugin for Jenkins π
- pipeline-maven: Pipeline Maven Integration π For modern pipelines, I rather recommend looking at the Pipeline Maven Plugin. As many other older job types, Pipeline Maven Plugin is limited to a single node and does not allow implementing multi-platform builds.
- Warnings Next Generation π The Jenkins Next Generation Warnings plugin collects compiler warnings or issues reported by static analysis tools and visualizes the results. It has built-in support for more than hundred report formats. youtube: How to Use the Warnings Next Generation Plugin in Jenkins
- robot-plugin: Robot Framework Plugin This plugin publishes Robot Framework test reports for Jenkins.
- Active Choices π The Active Choices plugin is used in parametrized freestyle Jenkins jobs to create scripted, dynamic and interactive job parameters. Active Choices parameters can be dynamically updated and can be rendered as combo-boxes, check-boxes, radio-buttons or rich HTML UI widgets.
- Text Finder π This plugin lets you search for some text using regular expressions in a set of files or the console log. Based on the outcome, you can downgrade the build result to UNSTABLE, FAILURE, NOT_BUILT, or ABORTED.
- Pull Request Monitoring π Jenkins plugin to monitor pull requests with customizable dashboard. You can also provide a view for your plugin that other developers can use in their dashboard.
- pipeline-graph-view π This plugin provides new Action and View to view a WorkflowRun via the “Pipeline Graph” visualization that was popularized in the Blue Ocean plugin.
- pipeline-graph-view-plugin π This plugin provides new Action and View to view a WorkflowRun via the “Pipeline Graph” visualization that was popularized in the Blue Ocean plugin.
- URL Filter Plugin This plugin enables filtering servlet/http/url requests in Jenkins and blocking the ones which are matched with the given Regex Pattern.
- kubernetes-plugin: Kubernetes plugin for Jenkins π Jenkins plugin to run dynamic agents in a Kubernetes/Docker environment
- OpenTelemetry π Collect Jenkins monitoring data through OpenTelemetry.
- sysdig-secure: Sysdig Secure Container Image Scanner Sysdig Secure is a container security platform that brings together Docker image scanning and run-time protection to identify vulnerabilities, block threats, enforce compliance, and audit activity across your microservices. The Sysdig Secure Jenkins plugin can be used in a Pipeline job, or added as a build step to a Freestyle job to automate the process of running an image analysis, evaluating custom policies against images, and performing security scans.
- qualys-cs: Qualys Container Scanning Connector The Qualys Container Scanning Connector for Jenkins empowers DevOps to assess container images in their existing CI/CD processes with help of Qualys Container Security(CS) module. Integrating this assessment step will help you catch and eliminate container images related flaws. This plugin supports pipeline as well as free-style projects.
- REST List Parameter This Plugin provides parameter type that can request a REST endpoint and offer a list of values parsed from the response value at build start time. The REST responses may contain Json or XML, which can be parsed with Json-Path and xPath respectively. If the REST endpoint requires authentication, then either Basic or Bearer authentication can be used.
- Script Security
- Azure Artifact Manager
- Custom Checkbox Parameter π This plug-in can dynamically create a set of check boxes for users to check before building. The check box settings are configured through YAML or JSON files, and the file content can be obtained through HTTP, HTTPS, or file paths. After checking the check box, the user can use params[‘ParameterName’] in the build script to get the selected value. The result of the user’s selection is returned in the form of a string separated by “,” value1, value2, value3.
- Git Push
- ec2-fleet-plugin The EC2 Fleet Plugin launches EC2 Spot or On Demand instances as worker nodes for Jenkins CI server, automatically scaling the capacity with the load.
- vSphere cloud
- Nomad
- Azure Key Vault
- Pipeline Utility Steps ππ Small, miscellaneous, cross platform utility steps for Jenkins Pipeline jobs githu ref
- InsightVM Container Image Scanner Scan your Docker containers using InsightVM.
- Aqua Security Scanner Adds a Build Step for scanning Docker images, local or hosted on registries, for security vulnerabilities, using the API provided by Aqua Security
- blueocean-rest: REST API for Blue Ocean
- Blue Ocean Pipeline Editor
- AWS Kinesis Consumer
- Cucumber reports
- NPM and Yarn Wrapper and Steps
Plugin Development. Jenkins Plugin Parent POM 4.0
- Plugin Development
- Plugin Development: Dependency Management
- Parent POM for Jenkins Plugins. Plugin POM 4.0 This new parent POM is decoupled from the core Jenkins project, both from the Maven and repository perspectives.
- 4.0 changelog
- Maven is widely used for Jenkins plugin development, more than 90% of plugins use it. In order to simplify plugin development, the Jenkins project offers a standard Parent POM which defines the recommended build, verification and release flow. Such parent POM helps us to ensure quality of the Jenkins plugins. In April 2020 we released a new major release of the parent POM which includes a number of important and sometimes incompatible changes: Jenkins core Bill of materials, full migration to SpotBugs, etc.
- In this presentation James Nord will talk about the changes introduced in Plugin POM 4.0. What do plugin developers and users get by upgrading? How to upgrade? What obstacles to expect, and how to resolve them?
Jenkins Blue Ocean
- Jenkins BlueOcean π
- Blue Ocean plugin
- cd.foundation: Bringing Blue Ocean into the future of Jenkins
Jenkins Blue Ocean Videos. Click to expand!
Cloudbees Flow
Cloudbees Flow Videos. Click to expand!
Monitoring jenkins
- Performance plugin
- Splunk Plugins
- Logstash
- Build Monitor Plugin
- Monitor Pro Plugin
- ALM Performance: Continuously Monitor Performance and Vitality of your Jenkins Deployment
- Monitoring jenkins using instana
- medium: prometheus and grafana dashboard
- youtube: Monitoring Jenkins with Grafana and Prometheus
- youtube: Jenkins Prometheus Grafana Dashboard | Prometheus Jenkins Monitoring | Prometheus.yml | Thetips4you
- dynatrace.com: optimizing jenkins to ensure fast build times with dynatrace
- opsview.com: opspack
- Chrome Extension
- Jenkins plugin to provide automatic status for multibranch jobs (Grafana)
- 20 Jenkins Plugins You Canβt Live Without
- youtube - CloudBeesTV: Jenkins Performance: Avoiding Pitfalls, Diagnosing Issues & Scaling for Growth
- Jenkins opentelemetry-plugin π Publish Jenkins performances metrics to an OpenTelemetry endpoint, including distributed traces of job executions and health metrics of the controller. What if you could transform your jenkinsci pipeline into an observable transaction that can be analyzed using OpenTelemetry backends such as Elastic APM? Code analyzed via code?
- influxdata.com: Monitoring Jenkins CI with InfluxDB
- jenkins.io: Jenkins Remoting Monitoring π Goal: Support monitoring of Jenkins remoting networking with open source monitoring tools such as Prometheus, Grafana, etc.
- Jenkins Remoting monitoring with OpenTelemetry Plugin π Publish Jenkins Remoting monitoring data to an OpenTelemetry endpoint.
- Jenkins: Agents Monitoring End User Survey
- github PR: Enable to provide telemetry data to OpenTelemetry Collector Great step forward for the troubleshooting of JenkinsCI Agents with the visualization of the “Jenkins Remoting Keep Alive” messages as distributed traces
- influxdb-plugin Jenkins plugin to send build metrics into InfluxDB
- youtube.com: CloudBeesTV - How to Monitor Jenkins With Grafana and Prometheus π
- jenkins-infra/jenkins-usage-stats π Jenkins usage statistics reports generator. jenkins-usage-stats handles importing daily Jenkins usage reports into a database, and generating monthly reports from that data.
- stats.jenkins.io π Jenkins infra-statistics
Externalizing Fingerprint Storage for Jenkins
- New FingerprintStorage API to build external fingerprint storage plugins.
- External Fingerprint Storage Phase-1 Updates Externalizing fingerprint storage for Jenkins is a Google Summer of Code 2020 project. Fingerprinting is a way to track which version of a file is being used by a job/build, making dependency tracking easy. The fingerprint engine of Jenkins can track usages of artifacts, credentials, files, images, etc. within the system. Currently, it does this by maintaining a local XML-based database. Advantages of using external storage drivers:
- Remove dependence on Jenkins master disk storage
- Support for configure pay-as-you-use cloud storages
- Easy Backup Management
- Better Reliability and Availability
- Fingerprints can be tracked across Jenkins instances
- Redis Fingerprint Storage Plugin
Jenkins and Spring Boot
- jaxenter.com - CI/CD for Spring Boot Microservices
- piotrminkowski.wordpress.com: Kotlin microservice with spring boot
Docker in Docker. Running Jenkins in Kubernetes
- Building Docker images when running Jenkins in Kubernetes
- itnext.io: docker in docker
- code-maze.com: ci jenkins docker
- medium: quickstart ci with jenkins and docker in docker
- getintodevops.com: the simplest way to run docker in docker
- Docker in Docker on EKS:
CloudBees
CloudBees Rollout and Feature Flags
- CloudBees Rollout π
- rollout.io: CloudBees Rollout Tutorial: Feature Flagging in your React Native App in 5 minutes
- How to Disable Code: The Developer’s Production Kill Switch π
Feature Flags in CloudBees Enterprise On-Premise
- CloudBees Releases Another Industry First: Feature Flagging for On-Premise Use π
- SAN JOSE, CA. β May 5, 2020 β CloudBees, Inc., the enterprise software delivery company, today announced a new release of CloudBees Feature Flags that enables developers to manage production deployments of new functionality in a controlled manner with an on-premise feature manager. The new offering strengthens CloudBeesβ leadership in the continuous integration/continuous delivery (CI/CD) space by extending usersβ ability to leverage feature flag technology in both on-premise and cloud environments. CloudBees Feature Flags is from the company and application formerly known as Rollout, acquired last year by CloudBees.
- Feature flags have emerged as popular tools for deploying new features with the added advantage of enabling risk-free experimentation and fast results. As organizations enhance applications with rich new capabilities, many use feature flags to preview features for select audiences, with the ability to pull them back quickly if the functionality is not successful. In a recent survey, 97% of respondents say that it is important for their organization to implement new application features quickly, yet 65% say it is difficult for their organization to do so safely. CloudBees Feature Flags enables developers to easily release new features with confidence, reduce risk in doing so and manage large numbers of feature flags at scale.
- βVery soon, all features will be released behind a feature flag. Itβs a natural evolution in continuous delivery. CloudBees has led the way in feature flag technology, making it a core part of our overall offering,β said Sacha Labourey, CEO and co-founder, CloudBees. βWith this release, we are providing the same functionality for on-premise environments that previously had only been available as a cloud-based service. We are committed to the ongoing integration, automation and governance of feature flags within the software delivery lifecycle and giving users choice in selecting the best environment for their project β on-premise or cloud.β
- CloudBees Feature Flags integrates with the companyβs deep CI/CD capabilities, giving organizations the most comprehensive feature management capabilities in the software development life cycle (SDLC). The ability to use feature flagging in an on-premise environment also opens up new avenues for usage in industries, such as government, finance, pharmaceuticals, utilities and healthcare, where there can be a mix of on-premise and cloud environments.
- βWe recognize that many companies are realizing the benefits of feature flags,β said Moritz Plassnig, senior vice president and general manager, Software Delivery Management and Software Delivery Automation Cloud at CloudBees. βBy flagging features, they no longer have to sacrifice innovation to lower risk. We felt that it was critical to offer this technology to any company working in on-premise or hybrid environments.β
CloudBees Accelerator
- CloudBees Accelerator Shorten Build and Test Times
- How to Speed Up Software Development with Build and Test Acceleration Tools
Jenkins Scripts
- Two very helpful collections of utility groovy scripts:
- jenkinsci/jenkins-scripts π
- samrocketman/jenkins-script-console-scripts π A repository of one-off script console scripts for Jenkins.
Backup for Jenkins on Kubernetes
Jervis: Jenkins as a service
- Jervis is Sam Gleske’s vision of a good way to roll out Jenkins as a service in very large organizations.
- SCM Filter Jervis YAML Plugin This plugin is intended for Jenkins infrastructure relying on jervis to deliver software in a self-service manner. This plugin can also be used for Travis CI YAML.
Jenkins X (Serverless)
Jenkins X is a specialized Jenkins for Kubernetes: This is how it works from a bird eye the CI/CD: a developer creates a branch, then Jenkins X creates a ephemeral namespace with that branch. The developer tests it and once it is ok, a PR is created, then, the branch is deployed in staging. When I merge it, it goes to QA, and with a manual command “jx promote” it goes to production. Jenkins X deletes automatically after N hours the branch namespace.
Why Do We Need Jenkins X To Be Serverless? Initially, Jenkins X had a stripped-down version of Jenkins but, since the release 2, not a single line of the traditional Jenkins is left in Jenkins X. Now it is fully serverless thanks to Tekton and a lot of custom code written from scratch to support the need for a modern Kubernetes-based solution.
- jenkins-x.io
- itnext.io/tagged/jenkins-x
- itnext.io: Jenkins X β Managing Jenkins
- Video Tutorials:
- blog.csanchez.org: Serverless Jenkins Pipelines with Google Cloud Run
- Jobs execute in Cloud Run (fast, scalable, pay per use compute)
- Ships as a container (extensible)
- Posts cat pics (amazing)
Jenkins and SAP
- blogs.sap.com: Continuous quality using plugins and Jenkins (ABAP & UI5)
- blogs.sap.com: CI/CD Tools for SAP Cloud Platform ABAP Environment
- sap.github.io/jenkins-library Jenkins shared library for Continuous Delivery pipelines. - Project Piper Repository The Project “Piper” offers default pipelines to easily implement CI/CD processes integrating SAP systems. The corresponding “Shared Library” provides a set of “steps” to build your own scenarios beyond defaults.
Jenkins Free Templates for AWS CloudFormation
- templates.cloudonaut.io: Jenkins 2.0: highly available master
- templates.cloudonaut.io: Jenkins 2.0: highly available master and dynamic agents
Videos
Click to expand!
Tweets
Click to expand!
Linus Torvalds: Shared libraries are not a good thing in generalhttps://t.co/j94eT3n4qW pic.twitter.com/pZp4m50qtx
— nixCraft (@nixcraft) May 1, 2021
Please everyone in technology stop using #jenkins for CI/CD systems. It is one of the worst non immutable systems out there. Also don't get me started with pipelines. Otherwise #devops future is just going to be managing multi decade old jenkins servers :( What a nightmare.
— The Sheff (@thesheff17) July 13, 2021
Hudson as in 2008 is dead. Jenkins as in 2012 is legacy. Jenkins as in 2021 is different: Pipeline, CasC, K8s, etc. The secret of long term survival is constant evolution. @jenkinsci has been changing A LOT, and it should keep doing so.
— Oleg Nenashev (@oleg_nenashev) April 29, 2021
What do you want to see in Jenkins next? https://t.co/v5U40obh7M pic.twitter.com/GHkhEj81x4
Some @jenkinsci tricks you should knowβ
— gekocloud (@geko_cloud) June 11, 2021
A threadπ§΅π#jenkins #devops
@kuisathaverat and I just recorded one of our sessions for the upcoming #DevOpsWorld with real examples how distributed traces with #OpenTelemetry in #JenkinsCI can help to troubleshoot and apply performance improvements without the need of debugging logs. π great work mate π€©
— Victor Mrtez (@AnInfinite) July 22, 2021
You can save a lot of time and resources if you configure the clone your @jenkinsci jobs to perform a shallow, no tags clone instead of a full clone. The screenshot shows how to configure it in a Jenkinsfile.#Jenkins #cicd pic.twitter.com/yI0EFGTYbQ
— Igorski (@IgorskiCo) September 13, 2021
For everyone participating in the the @jenkinsci panel by @incredibuild, here are my slides about evolution of CI/CD tools. Jenkins and other "classic" tools remain very relevant in 2021 https://t.co/iFyNe6Mqn9
— Oleg Nenashev (@oleg_nenashev) September 22, 2021
Why did I not think of this before @jenkinsci if you want your build parameters to be sticky:
— π Stephen Connolly (@connolly_s) October 20, 2021
parameters {
string name: 'STICKY', defaultValue: params.STICKY?:'initial value'
} pic.twitter.com/QCRFYuTfJS