diff --git a/docs/jenkins.md b/docs/jenkins.md index a9c6b359..91fc3d2d 100644 --- a/docs/jenkins.md +++ b/docs/jenkins.md @@ -59,7 +59,7 @@ 35. [Tweets](#tweets) ## Jenkins - - [Back of the Napkin Guide to Updating Jenkins](https://www.jenkins.io/blog/2023/10/31/marc-s-napkin-upgrade-guide//) - A personal guide detailing the process of updating Jenkins servers, particularly for those less experienced. It covers pre-work like plugin management and changelog review, backup strategies for security roles and user configurations, and emphasizes taking snapshots before starting the upgrade. + - [Back of the Napkin Guide to Updating Jenkins](https://www.jenkins.io/blog/2023/10/31/marc-s-napkin-upgrade-guide///) - A personal guide detailing the process of updating Jenkins servers, particularly for those less experienced. It covers pre-work like plugin management and changelog review, backup strategies for security roles and user configurations, and emphasizes taking snapshots before starting the upgrade. - [CloudBees](https://www.cloudbees.com/) - [Jenkins.io (new Jenkins 2.0 site) π](https://www.jenkins.io//) @@ -69,38 +69,38 @@ - [dzone: getting started with jenkins the ultimate guide](https://dzone.com/articles/getting-started-with-jenkins-the-ultimate-guide) - [dzone: jenkins in a nutshell](https://dzone.com/articles/jenkins-in-a-nutshell) - [opensource.com: running jenkins builds containers π](https://opensource.com/article/18/4/running-jenkins-builds-containers) -- [WebSocket support in now available for Jenkins CLI and agent networking!](https://www.jenkins.io//blog/2020/02/02/web-socket/) -- [webhookrelay.com: Receive Github webhooks on Jenkins without public IP π](https://webhookrelay.com/blog/github-jenkins-guide//) +- [WebSocket support in now available for Jenkins CLI and agent networking!](https://www.jenkins.io/blog/2020/02/02/web-socket//) +- [webhookrelay.com: Receive Github webhooks on Jenkins without public IP π](https://webhookrelay.com/blog/github-jenkins-guide///) - [Dzone refcard: Jenkins on PaaS](https://dzone.com/refcardz/jenkins-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](https://www.jenkins.io/blog/2020/05/06/docker-agent-image-renaming//) 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 π](https://www.jenkins.io/blog/2020/05/11/docker-windows-agents//) -- [Jenkins: Shifting Gears ππ](https://www.jenkins.io/blog/2018/08/31/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 π](https://aws.amazon.com/blogs/opensource/why-jenkins-still-continuously-serves-developers//) -- [On Jenkins Terminology Updates](https://www.jenkins.io/blog/2020/06/18/terminology-update//) +- [jenkins.io 2020-05-06: Slave to Agent renaming. Renaming of the official Docker images for Jenkins agents](https://www.jenkins.io/blog/2020/05/06/docker-agent-image-renaming///) 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 π](https://www.jenkins.io/blog/2020/05/11/docker-windows-agents///) +- [Jenkins: Shifting Gears ππ](https://www.jenkins.io/blog/2018/08/31/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 π](https://aws.amazon.com/blogs/opensource/why-jenkins-still-continuously-serves-developers///) +- [On Jenkins Terminology Updates](https://www.jenkins.io/blog/2020/06/18/terminology-update///) - [medium: Deploy your App Using CI/CD Pipeline](https://medium.com/wind-of-change/creating-a-ci-cd-pipeline-6ff9aeb0848c) - [medium: CI/CD Pipeline of Jenkins Using Groovy Language With Monitoring on the Top of Kubernetes π](https://medium.com/swlh/ci-cd-pipeline-of-jenkins-using-groovy-language-with-monitoring-on-the-top-of-kubernetes-b37f962fb0ac) - [Cross account ECR push with Jenkins](https://devopsformula.hashnode.dev/cross-account-ecr-push-with-jenkins) - [dzone.com: Easily Automate Your CI/CD Pipeline With Jenkins, Helm, and Kubernetes π](https://dzone.com/articles/easily-automate-your-cicd-pipeline-with-jenkins-he) 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](https://medium.com/@rishabh1799/building-pipeline-and-launching-jenkins-in-container-d4faf39de173) -- [lambdatest.com: Best Jenkins Pipeline Tutorial For Beginners (Examples) π](https://www.testmuai.com/blog/jenkins-pipeline-tutorial//) +- [lambdatest.com: Best Jenkins Pipeline Tutorial For Beginners (Examples) π](https://www.testmuai.com/blog/jenkins-pipeline-tutorial///) - [youtube: MSBuild With Jenkins | Jenkins For C# / .NET Applications](https://www.youtube.com/watch?v=uC7vajbnZS4) - [betsol.com: DevOps Using Jenkins, Docker, and Kubernetes](https://www.betsol.com/blog/devops-using-jenkins-docker-and-kubernetes/) - [Setup Chained Jenkins Declarative Pipeline Projects with Triggers π](https://medium.com/@rosaniline/setup-chained-jenkins-declarative-pipeline-projects-with-triggers-d3d04f1daf75) - [linkedin: Jenkins Server setup with dynamic worker nodes](https://www.linkedin.com/pulse/jenkins-server-setup-dynamic-worker-nodes-shishir-khandelwal/) - [medium: CI/CD with Dockers and Jenkins](https://medium.com/avmconsulting-blog/ci-cd-with-dockers-and-jenkins-70b6f801f9f7) -- [jenkins.io: Docker image updates](https://www.jenkins.io/blog/2021/02/08/docker-base-os-upgrade//) +- [jenkins.io: Docker image updates](https://www.jenkins.io/blog/2021/02/08/docker-base-os-upgrade///) - [blog.executeautomation.com: Running Jenkins Build Agent within Docker container β Part A](https://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?](https://www.testmuai.com/blog/how-to-setup-continuous-integration-with-git-jenkins//) +- [lambdatest.com: How To Set Up Continuous Integration With Git and Jenkins?](https://www.testmuai.com/blog/how-to-setup-continuous-integration-with-git-jenkins///) - [itnext.io: Jenkins: running workers in Kubernetes and Docker images build](https://itnext.io/jenkins-running-workers-in-kubernetes-and-docker-images-build-83299a10f3ca) -- [aws.amazon.com: How to cost optimize Jenkins jobs on Kubernetes with EC2 Spot Instances π](https://aws.amazon.com/tutorials/cost-optimize-jenkins//) +- [aws.amazon.com: How to cost optimize Jenkins jobs on Kubernetes with EC2 Spot Instances π](https://builder.aws.com/learn//) - [medium: CI/CD Pipeline of Jenkins Using Groovy Language With Monitoring on the Top of Kubernetes](https://medium.com/swlh/ci-cd-pipeline-of-jenkins-using-groovy-language-with-monitoring-on-the-top-of-kubernetes-b37f962fb0ac) -- [amazon.com: Building a serverless Jenkins environment on AWS Fargate](https://aws.amazon.com/es/blogs/devops/building-a-serverless-jenkins-environment-on-aws-fargate//) +- [amazon.com: Building a serverless Jenkins environment on AWS Fargate](https://aws.amazon.com/es/blogs/devops/building-a-serverless-jenkins-environment-on-aws-fargate///) - [youtube: How to Create a GitLab Multibranch Pipeline in Jenkins](https://www.youtube.com/watch?app=desktop&v=y4XGFluzPHY&ab_channel=CloudBeesTV) -- [lambdatest.com: Jenkins Tutorial π](https://www.testmuai.com/learning-hub/jenkins/) +- [lambdatest.com: Jenkins Tutorial π](https://www.testmuai.com/learning-hub/jenkins//) - [youtube/Bribe By Bytes: Jenkins Pipelines | Pipeline Concept | Types of Pipelines | Part 1](https://www.youtube.com/watch?v=iddMXjmr7mk&t=657s&ab_channel=BribeByBytes) -- [jenkins.io: Easily reuse Tekton and Jenkins X from Jenkins π](https://www.jenkins.io/blog/2021/04/21/tekton-plugin//) 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?](https://www.harness.io/blog/pipeline-as-code/) -- [lambdatest.com: How To Set Jenkins Pipeline Environment Variables? π](https://www.testmuai.com/blog/set-jenkins-pipeline-environment-variables-list//) +- [jenkins.io: Easily reuse Tekton and Jenkins X from Jenkins π](https://www.jenkins.io/blog/2021/04/21/tekton-plugin///) 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?](https://www.harness.io/blog/) +- [lambdatest.com: How To Set Jenkins Pipeline Environment Variables? π](https://www.testmuai.com/blog/set-jenkins-pipeline-environment-variables-list///) - [slideshare.net: Jeff Geerling - Jenkins or: How I learned to stop worrying and love automation π](https://www.slideshare.net/slideshow/jenkins-or-how-i-learned-to-stop-worrying-and-love-automation/90281025) 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 π](https://www.youtube.com/watch?v=mbeQWBNaNKQ&ab_channel=CloudBeesTV) - [opensource.com: Make Jenkins logs pretty](https://opensource.com/article/21/5/jenkins-logs) Jenkins' default logs can be hard to read, but they don't have to be. @@ -123,7 +123,7 @@ jenkinsci CloudBees' advice is to use build tool features when possible (Maven/G - [medium: Integrate BitBucket & Jenkins](https://medium.com/ampersand-academy/integrate-bitbucket-jenkins-c6e51103d0fe) 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](https://developer.okta.com/blog/2021/07/08/jenkins-ci-dotnet-update-secrets) - [developers.redhat.com: Deploy Helm charts with Jenkins CI/CD in Red Hat OpenShift 4 π](https://developers.redhat.com/articles/2021/05/24/deploy-helm-charts-jenkins-cicd-red-hat-openshift-4) -- [jenkins.io: Git Username/Password Credentials Binding for sh, bat, and powershell π](https://www.jenkins.io/blog/2021/07/27/git-credentials-binding-phase-1//) 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. +- [jenkins.io: Git Username/Password Credentials Binding for sh, bat, and powershell π](https://www.jenkins.io/blog/2021/07/27/git-credentials-binding-phase-1///) 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 π](https://www.youtube.com/watch?v=tJOlk-B66R4&ab_channel=ServerlessLand) 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](https://blogs.sap.com/2021/07/29/sap-cloud-integration-automated-testing-using-jenkins-and-pipeline-as-a-code-approach/) - [github.com/jenkins-infra/jenkins.io/issues](https://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. @@ -133,23 +133,23 @@ jenkinsci CloudBees' advice is to use build tool features when possible (Maven/G - [itnext.io: Jenkins Tutorial β Part 7 β Interactive Pipelines π](https://itnext.io/jenkins-tutorial-part-7-interactive-pipelines-a739b23ac41c?gi=563a447caa2b) - [dev.to: Send notification to slack from the Jenkins CI Job and Jenkinsfile](https://dev.to/eavnitech/send-notification-to-slack-from-the-jenkins-ci-job-and-jenkinsfile-e-avni-tech-2lm5) - [dev.to: Setting up a CI/CD with Jenkins](https://dev.to/kennethatria/setting-up-a-ci-cd-with-jenkins-4hln) -- [fabiogomezdiaz.com: How to Run Packer Pipelines on Jenkins: Part 1 - Traditional Jenkins](https://fabiogomezdiaz.com/posts/how-to-run-packer-pipelines-on-jenkins-part1-traditional-jenkins//) -- [jenkins.io: Docker images use Java 11 by default π](https://www.jenkins.io/blog/2021/08/17/docker-images-use-jdk-11-by-default//) The default Java version in the Jenkins Docker images is switching to Java 11. +- [fabiogomezdiaz.com: How to Run Packer Pipelines on Jenkins: Part 1 - Traditional Jenkins](https://fabiogomezdiaz.com/posts/how-to-run-packer-pipelines-on-jenkins-part1-traditional-jenkins///) +- [jenkins.io: Docker images use Java 11 by default π](https://www.jenkins.io/blog/2021/08/17/docker-images-use-jdk-11-by-default///) The default Java version in the Jenkins Docker images is switching to Java 11. - [community.jenkins.io: DSTY - jenkins-std-lib (Shared Library) - Interact with files/directories using Groovy!](https://community.jenkins.io/t/dsty-jenkins-std-lib-shared-library-interact-with-files-directories-using-groovy/398) - [Pipeline Utility Steps π](https://plugins.jenkins.io/pipeline-utility-steps/) Small, miscellaneous, cross platform utility steps for Jenkins Pipeline jobs [githu ref](https://github.com/jenkinsci/pipeline-utility-steps-plugin) - [Connecting and authenticating to Jenkins with Teleport Application Access](https://github.com/gravitational/teleport/discussions/8330) This shows integrating a Jenkins with Teleport Application Access for Access and Authentication. - [dzone: Parameterize Jenkinsfile in MultiBranch Jobs π](https://dzone.com/articles/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?](https://automationreinvented.blogspot.com/2021/08/how-to-create-parameterized-job-in.html) - [infoworld.com: Continuous integration with Docker and Jenkins](https://www.infoworld.com/article/2270388/continuous-integration-with-docker-and-jenkins.html) How to pull from Git, build a Docker image, and publish the image to Docker Hub. -- [==lambdatest.com: What Is Jenkins Used For?== π](https://www.testmuai.com/blog/what-is-jenkins//) +- [==lambdatest.com: What Is Jenkins Used For?== π](https://www.testmuai.com/blog/what-is-jenkins///) - [automationqahub.com: How To Publish ExtentReport Using Jenkins](https://automationqahub.com/how-to-publish-extentreport-using-jenkins/) - [==developers.redhat.com: A developer's guide to CI/CD and GitOps with Jenkins Pipelines==](https://developers.redhat.com/articles/2022/01/13/developers-guide-cicd-and-gitops-jenkins-pipelines) - [==inder-devops.medium.com: CI/CD setup in just 5 mins with basic yaml configuration==](https://inder-devops.medium.com/ci-cd-setup-in-just-5-mins-with-basic-yaml-configuration-95b8e894a110) - [youtube: Cloud Learn Hub - How to Integrate Jenkins with Ansible Tower?](https://www.youtube.com/watch?v=E3Xyu29LIwY&ab_channel=CLOUDLEARNHUB) - [==youtube: Tech World with Nana - Jenkins Tutorial for Beginners==](https://www.youtube.com/playlist?list=PLy7NrYWoggjw_LIiDK1LXdNN82uYuuuiC) -- [==camunda.com: How We Overcame Long-Running Job Limitations in Jenkins Declarative Pipelines==](https://camunda.com/blog/2022/02/how-we-overcame-long-running-job-limitations-in-jenkins-declarative-pipelines//) -- [==aws.amazon.com: Jenkins high availability and disaster recovery on AWS== π](https://aws.amazon.com/blogs/devops/jenkins-high-availability-and-disaster-recovery-on-aws//) +- [==camunda.com: How We Overcame Long-Running Job Limitations in Jenkins Declarative Pipelines==](https://camunda.com/blog/2022/02/how-we-overcame-long-running-job-limitations-in-jenkins-declarative-pipelines///) +- [==aws.amazon.com: Jenkins high availability and disaster recovery on AWS== π](https://aws.amazon.com/blogs/devops/jenkins-high-availability-and-disaster-recovery-on-aws///) - [blog.searce.com: Jenkins Distributed Cluster Using Dynamic Build Agents On GKE](https://blog.searce.com/jenkins-distributed-cluster-using-dynamic-build-agents-on-gke-e2262a59dcb3) 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](https://www.fosstechnix.com/validate-jenkinsfile-using-visual-studio-code//) +- [fosstechnix.com: How to Validate Jenkinsfile using Visual Studio Code](https://www.fosstechnix.com/validate-jenkinsfile-using-visual-studio-code///) - [freecodecamp.org: Learn Jenkins by Building a CI/CD Pipeline π](https://www.freecodecamp.org/news/learn-jenkins-by-building-a-ci-cd-pipeline/) - [medium.com/ni-tech-talk: Creating Customized Kubernetes Pod Templates using Groovy in Jenkins Pipeline π](https://medium.com/ni-tech-talk/creating-customized-kubernetes-pod-templates-using-groovy-in-jenkins-pipeline-7007f023a585) - [palak-bhawsar.hashnode.dev: Automated CI/CD pipeline for Java Project](https://palak-bhawsar.hashnode.dev/automated-cicd-pipeline-for-java-project) @@ -182,7 +182,7 @@ jenkinsci CloudBees' advice is to use build tool features when possible (Maven/G [](https://jenkinsistheway.io) -[](https://aws.amazon.com/blogs/opensource/why-jenkins-still-continuously-serves-developers//) +[](https://aws.amazon.com/blogs/opensource/why-jenkins-still-continuously-serves-developers///) @@ -199,8 +199,8 @@ jenkinsci CloudBees' advice is to use build tool features when possible (Maven/G ## Jenkins on Kubernetes -- [jenkins.io: Document Jenkins on Kubernetes: Installing Jenkins on Kubernetes Documentation Release π](https://www.jenkins.io/blog/2020/11/05/installing-jenkins-on-kubernetes//) -- [jenkins.io: Installing Jenkins on Kubernetes π](https://www.jenkins.io/doc/book/installing/kubernetes//) +- [jenkins.io: Document Jenkins on Kubernetes: Installing Jenkins on Kubernetes Documentation Release π](https://www.jenkins.io/blog/2020/11/05/installing-jenkins-on-kubernetes///) +- [jenkins.io: Installing Jenkins on Kubernetes π](https://www.jenkins.io/doc/book/installing/kubernetes///) - [ssbostan/jenkins-stack-kubernetes π](https://github.com/ssbostan/jenkins-stack-kubernetes) Scripts and manifests to deploy Jenkins on Kubernetes - [ssbostan/jenkins-tutorial π](https://github.com/ssbostan/jenkins-tutorial) - [itnext.io: Jenkins Tutorial β Part 7 β Interactive Pipelines](https://itnext.io/jenkins-tutorial-part-7-interactive-pipelines-a739b23ac41c) @@ -212,8 +212,8 @@ jenkinsci CloudBees' advice is to use build tool features when possible (Maven/G ### Kubernetes Native Jenkins Operator - [github.com/jenkinsci/kubernetes-operator: π](https://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!](https://www.jenkins.io/blog/2021/04/15/jenkins-operator-sub-project//) -- [jenkins.io: Security Validator for Jenkins Operator for Kubernetes](https://www.jenkins.io/blog/2021/08/23/jenkins-operator-security-work-report//) +- [jenkins.io: Jenkins Operator becomes an official sub-project!](https://www.jenkins.io/blog/2021/04/15/jenkins-operator-sub-project///) +- [jenkins.io: Security Validator for Jenkins Operator for Kubernetes](https://www.jenkins.io/blog/2021/08/23/jenkins-operator-security-work-report///) - [cd.foundation: Going Cloud Native with Jenkins Kubernetes Operator](https://cd.foundation/blog/2021/09/02/going-cloud-native-with-jenkins-kubernetes-operator/) ## Groovy @@ -234,30 +234,30 @@ jenkinsci CloudBees' advice is to use build tool features when possible (Maven/G ## Jenkins Special Interest Groups (SIG) -- [Jenkins SIG Platform π](https://www.jenkins.io/sigs/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 π](https://www.jenkins.io/sigs/cloud-native//) +- [Jenkins SIG Platform π](https://www.jenkins.io/sigs/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 π](https://www.jenkins.io/sigs/cloud-native///) ## Running Jenkins on Java 11. Use OpenJDK 11 -- [Running Jenkins on Java 11 π](https://www.jenkins.io/doc/administration/requirements/jenkins-on-java-11//#:~:text=The%20easiest%20way%20to%20run,images%2C%20use%20the%20jdk11%20tag.) +- [Running Jenkins on Java 11 π](https://www.jenkins.io/doc/administration/requirements/jenkins-on-java-11///#:~:text=The%20easiest%20way%20to%20run,images%2C%20use%20the%20jdk11%20tag.) - [Oracle's Java 11 trap - Use OpenJDK instead! π](https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-11-trap.html) - [Itβs time! Migrating to Java 11 π](https://medium.com/criciumadev/its-time-migrating-to-java-11-5eb3868354f9) ## Online Learning -- [==blog.techiescamp.com/jenkins-course== πππ](https://blog.techiescamp.com/jenkins-course//) - - [Lesson 5.1: Introduction to Jenkins Multibranch Pipeline](https://blog.techiescamp.com/docs/jenkins-multibranch-pipeline//) +- [==blog.techiescamp.com/jenkins-course== πππ](https://blog.techiescamp.com/jenkins-course///) + - [Lesson 5.1: Introduction to Jenkins Multibranch Pipeline](https://blog.techiescamp.com/docs/jenkins-multibranch-pipeline///) - [udemy.com: Master Jenkins CI For DevOps and Developers](https://www.udemy.com/the-complete-jenkins-course-for-developers-and-devops/) - [udemy.com: Learn DevOps: CI/CD with Jenkins using Pipelines and Docker](https://www.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 π](https://github.com/wardviaene/jenkins-course) ## Jenkins Configuration as Code Solutions. 3 available DSLs -- [Job DSL](https://plugins.jenkins.io/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](https://www.jenkins.io/solutions/pipeline//) and [Configuration as Code](https://www.jenkins.io/projects/jcasc//) plugins. It is important to understand the differences between these plugins and Job DSL for managing Jenkins configuration efficiently. +- [Job DSL](https://plugins.jenkins.io/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](https://www.jenkins.io/solutions/pipeline///) and [Configuration as Code](https://www.jenkins.io/projects/jcasc///) plugins. It is important to understand the differences between these plugins and Job DSL for managing Jenkins configuration efficiently. - In consequence 3 [DSL](https://en.wikipedia.org/wiki/Domain-specific_language)s are available to configure jenkins as code: - DSL 1: [Job DSL](https://plugins.jenkins.io/job-dsl/) - - DSL 2: [Jenkins (Declarative) Pipeline](https://www.jenkins.io/solutions/pipeline//) - - DSL 3: [Jenkins Configuration as Code (JCasC)](https://www.jenkins.io/projects/jcasc//) + - DSL 2: [Jenkins (Declarative) Pipeline](https://www.jenkins.io/solutions/pipeline///) + - DSL 3: [Jenkins Configuration as Code (JCasC)](https://www.jenkins.io/projects/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 @@ -266,43 +266,43 @@ jenkinsci CloudBees' advice is to use build tool features when possible (Maven/G - [Job DSL Plugin π](https://plugins.jenkins.io/job-dsl/) - [github.com/jenkinsci/job-dsl-plugin](https://github.com/jenkinsci/job-dsl-plugin/wiki) - [Jenkins Job DSL Plugin documentation π](https://github.com/jenkinsci/job-dsl-plugin#documentation) A Groovy DSL for Jenkins Jobs - Sweeeeet! -- [Jenkins Job DSL API π](https://jenkinsci.github.io/job-dsl-plugin//) - - [mavenJob](https://jenkinsci.github.io/job-dsl-plugin//#path/mavenJob) +- [Jenkins Job DSL API π](https://jenkinsci.github.io/job-dsl-plugin///) + - [mavenJob](https://jenkinsci.github.io/job-dsl-plugin///#path/mavenJob) - [Continuation Passing Style (CPS)](https://github.com/cloudbees/groovy-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. - - [Jenkins Pipeline execution engine based on Continuation Passing Style (CPS) transformation of Groovy scripts. DSL Methods:](https://jenkinsci.github.io/job-dsl-plugin//#plugin/workflow-cps): - - [cps](https://jenkinsci.github.io/job-dsl-plugin//#method/javaposse.jobdsl.dsl.helpers.workflow.WorkflowDefinitionContext.cps): WorkflowDefinitionContext - - [cpsScm](https://jenkinsci.github.io/job-dsl-plugin//#method/javaposse.jobdsl.dsl.helpers.workflow.WorkflowDefinitionContext.cpsScm): WorkflowDefinitionContext - - [Defines a Groovy CPS DSL definition: pipelineJob definition cps script](https://jenkinsci.github.io/job-dsl-plugin//#path/pipelineJob-definition-cps-script) + - [Jenkins Pipeline execution engine based on Continuation Passing Style (CPS) transformation of Groovy scripts. DSL Methods:](https://jenkinsci.github.io/job-dsl-plugin///#plugin/workflow-cps): + - [cps](https://jenkinsci.github.io/job-dsl-plugin///#method/javaposse.jobdsl.dsl.helpers.workflow.WorkflowDefinitionContext.cps): WorkflowDefinitionContext + - [cpsScm](https://jenkinsci.github.io/job-dsl-plugin///#method/javaposse.jobdsl.dsl.helpers.workflow.WorkflowDefinitionContext.cpsScm): WorkflowDefinitionContext + - [Defines a Groovy CPS DSL definition: pipelineJob definition cps script](https://jenkinsci.github.io/job-dsl-plugin///#path/pipelineJob-definition-cps-script) - [Example of a pipeline with parameters](https://github.com/polarpoint-io/groovy-jenkins-pipelines/blob/master/jobs/parameterisedPipelines.groovy) - [job-dsl **Gradle** Example](https://github.com/sheehan/job-dsl-gradle-example) -- [Jenkins DSL for **Nexus**](https://accenture.github.io/adop-cartridges-cookbook/docs/recipes/archiving-artefact-to-nexus//) +- [Jenkins DSL for **Nexus**](https://accenture.github.io/adop-cartridges-cookbook/docs/recipes/archiving-artefact-to-nexus///) - Jenkins DSL for **Maven**: - - [ref 1](https://jenkinsci.github.io/job-dsl-plugin//#method/javaposse.jobdsl.dsl.helpers.step.StepContext.maven) - - [ref 2](https://deors.wordpress.com/2019/04/25/jenkins-ci-pipeline-java-spring-boot-maven-docker//) + - [ref 1](https://jenkinsci.github.io/job-dsl-plugin///#method/javaposse.jobdsl.dsl.helpers.step.StepContext.maven) + - [ref 2](https://deors.wordpress.com/2019/04/25/jenkins-ci-pipeline-java-spring-boot-maven-docker///) - [Pipeline Global Library for ci.jenkins.io](https://github.com/jenkins-infra/pipeline-library) Collection of custom steps and variables for our Jenkins instance(s) - [medium: Jenkins Jobs as Code with Groovy DSL (Job DSL plugin) π](https://tech.gogoair.com/jenkins-jobs-as-code-with-groovy-dsl-c8143837593a) ### DSL 2. Jenkins Pipeline. Pipeline as Code with Jenkins -- [Pipeline as Code with Jenkins π](https://www.jenkins.io/solutions/pipeline//) - - [**Why Pipeline?**](https://www.jenkins.io/doc/book/pipeline//#why) 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: +- [Pipeline as Code with Jenkins π](https://www.jenkins.io/solutions/pipeline///) + - [**Why Pipeline?**](https://www.jenkins.io/doc/book/pipeline///#why) 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](https://en.wikipedia.org/wiki/Domain-specific_language) and multiple options for integration with other plugins. -- [jenkins.io - doc/book/pipeline π](https://www.jenkins.io//doc/book/pipeline/) -- [jenkins.io - **Jenkinsfile** π](https://www.jenkins.io//doc/book/pipeline/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](https://marketplace.visualstudio.com/items?itemName=jmMeessen.jenkins-declarative-support) is aimed at making the manipulation of this file type easier. +- [jenkins.io - doc/book/pipeline π](https://www.jenkins.io/doc/book/pipeline//) +- [jenkins.io - **Jenkinsfile** π](https://www.jenkins.io/doc/book/pipeline//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](https://marketplace.visualstudio.com/items?itemName=jmMeessen.jenkins-declarative-support) is aimed at making the manipulation of this file type easier. - [Dzone refcard: **Continuous Delivery with Jenkins Pipeline** π](https://dzone.com/refcardz/continuous-delivery-with-jenkins-pipeline) - [GitHub Gist - Faheetah/Jenkinsfile.groovy: **Jenkinsfile idiosynchrasies with escaping and quotes**](https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4) -- [jenkins.io: Jenkins CD and Pipelines Microsite](https://www.jenkins.io/solutions/pipeline///) +- [jenkins.io: Jenkins CD and Pipelines Microsite](https://www.jenkins.io/solutions/pipeline////) - [DZone refcard: declarative pipeline with jenkins π](https://dzone.com/refcardz/declarative-pipeline-with-jenkins) -- [sdtimes.com: CI/CD pipelines are expanding π](https://sdtimes.com/devops/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. +- [sdtimes.com: CI/CD pipelines are expanding π](https://sdtimes.com/devops/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) π](https://www.magalix.com/blog/create-a-ci/cd-pipeline-with-kubernetes-and-jenkins) - [dzone: learn how to setup a cicd pipeline from scratch π](https://dzone.com/articles/learn-how-to-setup-a-cicd-pipeline-from-scratch) - [opensource.com - building cicd pipelines with jenkins π](https://opensource.com/article/19/9/intro-building-cicd-pipelines-jenkins) -- [devopscube.com: Jenkins Pipeline as Code Tutorial For Beginners π](https://devopscube.com/jenkins-pipeline-as-code//) -- [loves.cloud: CI/CD Pipeline Using Docker and Jenkins](https://loves.cloud/ci-cd-pipeline-using-docker-and-jenkins//) +- [devopscube.com: Jenkins Pipeline as Code Tutorial For Beginners π](https://devopscube.com/jenkins-pipeline-as-code///) +- [loves.cloud: CI/CD Pipeline Using Docker and Jenkins](https://loves.cloud/ci-cd-pipeline-using-docker-and-jenkins///) - [github.com/LovesCloud/java-groovy-docker](https://github.com/LovesCloud/java-groovy-docker/) - [medium: jenkins cicd getting started with groovy and docker](https://medium.com/@fvtool/jenkins-cicd-getting-started-with-groovy-and-docker-containers-part-2-b03a1b934a49) - [Dzone: Top 10 Best Practices for Jenkins Pipeline](https://dzone.com/articles/top-10-best-practices-for-jenkins-pipeline) @@ -319,22 +319,22 @@ jenkinsci CloudBees' advice is to use build tool features when possible (Maven/G #### 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 π](https://mtijhof.wordpress.com/2019/04/22/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 π](https://www.jenkins.io/doc/book/pipeline//shared-libraries//) 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. +- [mtijhof.wordpress.com: Jenkins: Running a declarative pipeline from your Shared Library π](https://mtijhof.wordpress.com/2019/04/22/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 π](https://www.jenkins.io/doc/book/pipeline//shared-libraries///) 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 π](https://github.com/gfkse/jenkins-shared-library) - [stackoverflow.com: Can I have an entire declarative pipeline defined and parameterized in a shared library?](https://stackoverflow.com/questions/45889796/can-i-have-an-entire-declarative-pipeline-defined-and-parameterized-in-a-shared) -- [jenkins.io: Share a standard Pipeline across multiple projects with Shared Libraries π](https://www.jenkins.io/blog/2017/10/02/pipeline-templates-with-shared-libraries//) -- [jenkins.io: Parallel stages with Declarative Pipeline 1.2 π](https://www.jenkins.io/blog/2017/09/25/declarative-1//) +- [jenkins.io: Share a standard Pipeline across multiple projects with Shared Libraries π](https://www.jenkins.io/blog/2017/10/02/pipeline-templates-with-shared-libraries///) +- [jenkins.io: Parallel stages with Declarative Pipeline 1.2 π](https://www.jenkins.io/blog/2017/09/25/declarative-1///)