All Projects → wcm-io-devops → Jenkins Pipeline Library

wcm-io-devops / Jenkins Pipeline Library

Licence: apache-2.0
wcm.io Jenkins Pipeline Library for CI/CD

Programming Languages

groovy
2714 projects

Projects that are alternatives of or similar to Jenkins Pipeline Library

Pipeline
Pipeline is a package to build multi-staged concurrent workflows with a centralized logging output.
Stars: ✭ 433 (+223.13%)
Mutual labels:  pipeline, jenkins, ci-cd
Jenkins Library
Jenkins shared library for Continuous Delivery pipelines.
Stars: ✭ 521 (+288.81%)
Mutual labels:  jenkins, ci-cd
Jx
Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton
Stars: ✭ 4,041 (+2915.67%)
Mutual labels:  pipeline, jenkins
Git Push Deploy
Simple Automated CI/CD Pipeline for GitHub and GitLab Projects
Stars: ✭ 21 (-84.33%)
Mutual labels:  pipeline, ci-cd
Ccmenu
CCMenu is a Mac application to monitor continuous integration servers.
Stars: ✭ 306 (+128.36%)
Mutual labels:  jenkins, ci-cd
Devops Guide
DevOps Guide - Development to Production all configurations with basic notes to debug efficiently.
Stars: ✭ 4,119 (+2973.88%)
Mutual labels:  jenkins, ci-cd
Spug
开源运维平台:面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。
Stars: ✭ 6,810 (+4982.09%)
Mutual labels:  jenkins, ci-cd
rurality
开源运维平台设计及开发样例、CMS、RBAC、python开发教程、管理系统设计及开发样例、jenkinsfile(pipeline)/ansible使用教程,一切想到的,想不到的,应有尽有
Stars: ✭ 51 (-61.94%)
Mutual labels:  jenkins, pipeline
Jenkins Workflow
contains handy groovy workflow-libs scripts
Stars: ✭ 41 (-69.4%)
Mutual labels:  pipeline, jenkins
Jenkins Os
Groovy pipeline jobs that build and test Container Linux with Jenkins
Stars: ✭ 43 (-67.91%)
Mutual labels:  pipeline, jenkins
Gitlab Branch Source Plugin
Jenkins-Plugin to create a multi-branch-project from gitlab
Stars: ✭ 76 (-43.28%)
Mutual labels:  pipeline, jenkins
pipeline-as-code-with-jenkins
Pipeline as Code with Jenkins
Stars: ✭ 56 (-58.21%)
Mutual labels:  jenkins, pipeline
solutions-terraform-jenkins-gitops
Demonstrates the use of Jenkins and Terraform to manage Infrastructure as Code using GitOps practices
Stars: ✭ 49 (-63.43%)
Mutual labels:  jenkins, ci-cd
pipeline-lib
Global shared library for Glia pipeline jobs
Stars: ✭ 68 (-49.25%)
Mutual labels:  jenkins, ci-cd
Quiz
Example real time quiz application with .NET Core, React, DDD, Event Sourcing, Docker and built-in infrastructure for CI/CD with k8s, jenkins and helm
Stars: ✭ 100 (-25.37%)
Mutual labels:  jenkins, ci-cd
Argo Cd
Declarative continuous deployment for Kubernetes.
Stars: ✭ 7,887 (+5785.82%)
Mutual labels:  pipeline, ci-cd
cheat-sheet-pdf
📜 A Cheat-Sheet Collection from the WWW
Stars: ✭ 728 (+443.28%)
Mutual labels:  jenkins, ci-cd
cloud-s4-sdk-pipeline-docker
The Cloud SDK continuous delivery infrastructure makes heavy use of docker images. This are the docker sources of these images.
Stars: ✭ 13 (-90.3%)
Mutual labels:  jenkins, ci-cd
Jenkins Library
Shared Library for Jenkine Pipeline
Stars: ✭ 32 (-76.12%)
Mutual labels:  pipeline, jenkins
Jira Steps Plugin
Jenkins pipeline steps for integration with JIRA.
Stars: ✭ 88 (-34.33%)
Mutual labels:  pipeline, jenkins

Build Code Coverage Maven Central Sonatype Snapshots

Jenkins Pipeline Library

Since Jenkins Pipeline has reached a certain state of production scripted pipelines are the way to go.

But: Not everything known from the UI is available in Pipeline and configuring and writing scripts is not so easy for the normal developer.

The target of this library is to take out some complexity (and yes adding some too) of the pipeline creation and to bring back some known functionality (for example GIT_BRANCH and SCM_URL environment variables, mail notification on still unstable etc.)

Want to see an example? Have look at Usage examples

Table of contents

Key concepts

The pipeline library was developed with a focus to ease Java and Maven build processes within companies which have a more or less similiar project structure e.g.

  • Maven/Java
  • local Artifact Server (like Sonatype Nexus or Artifactory)
  • GIT

The assumption is that in these environments

  • Jenkins has a dedicated user account to checkout code (or one per project)
  • the artifact server caches public artifacts and acts as a internal artifact server

❓ So why configure maven repositories and scm credentials in every pipeline?

So the key concepts of the pipeline enable you to

  • Auto provide credentials (no worries, only Jenkins credential ids, not the credential itself) (see Credentials)
  • Auto provide maven settings (see ManagedFiles)
  • configure each job the same way (see ConfigStructure)
  • log and see the things you are interested in (see Logging)

to builds.

Running this pipeline library will result in more structured and easier to maintain pipeline scripts.

Configured properly this library enables you to checkout scm with these lines of code:

import static io.wcm.devops.jenkins.pipeline.utils.ConfigConstants.*
checkoutScm( (SCM) : [
        (SCM_URL) : "[email protected]/group/project.git",
    ]
)

Or running maven with local and global maven settings with these lines of code:

import static io.wcm.devops.jenkins.pipeline.utils.ConfigConstants.*
execMaven( 
    (SCM) : [
        (SCM_URL) : "[email protected]/group/project.git",
    ],
    (MAVEN): [
        (MAVEN_GOALS) : [ "clean", "install" ]
    ]
)

❓ Looking for an example on how a pipeline script looks like when using Pipeline? Have a look at Usage examples

💡 Have a look at the setup tutorial to start using Pipeline Library.

Requirements

Have a look at requirements to get the library running.

Steps

The pipeline library comes with the following steps:

Utilities

Credential and managed file auto lookup

Support for command line execution

Setup your environment to use the pipeline library

Please refer to SetupTutorial for detailed instruction on how to setup the library in your environment.

Building/Testing

The library uses two approaches for testing.

The class parts are tested by unit testing using JUnit/Surefire. All unit tests have the naming format *Test.groovy and are located below test/io.

The step parts are tested by using Jenkins Pipeline Unit with jUnit/Failsafe. All integration tests have the naming format *IT.groovy and are located below test/vars.

Building with maven

mvn clean install

Add license file headers

mvn license:update-file-header

Changes / Version History

Please have a look at the Releases

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].