JenkinsPipelineUnit - Framework for unit testing Jenkins pipelines

  •        43

Jenkins Pipeline Unit is a testing framework for unit testing Jenkins pipelines, written in Groovy Pipeline DSL. If you use Jenkins as your CI workhorse (like us @ lesfurets.com) and you enjoy writing pipeline-as-code, you already know that pipeline code is very powerful but can get pretty complex.

https://github.com/jenkinsci/JenkinsPipelineUnit

Tags
Implementation
License
Platform

   




Related Projects

job-dsl-plugin - A Groovy DSL for Jenkins Jobs - Sweeeeet!

  •    Groovy

The Jenkins "Job DSL / Plugin" is made up of two parts: The Domain Specific Language (DSL) that allows users to describe Jobs using in a groovy-based language, and a Jenkins Plugin which manages the scripts and the updating of the Jenkins jobs which are created and maintained as a result. This project has moved to jenkinsci/job-dsl-plugin. This repo is no longer updated, yet the issue tracker is still used for the project.

pipeline-plugin - Jenkins Pipeline plugin

  •    

Building continuous delivery pipelines and similarly complex tasks in Jenkins using freestyle projects and traditional plugins can be awkward. You need to mix Parameterized Trigger, Copy Artifact, Promoted Builds, Conditional Build Step, and more just to express what should be a simple script. The Pipeline plugin (formerly known as Workflow) suite attempts to make it possible to directly write that script, what people often call a pipeline, while integrating with Jenkins features like agents and publishers. See the official documentation on jenkins.io.

lambdacd - a library to define a continuous delivery pipeline in code

  •    Clojure

I'd love to hear from you! If you have a question, a bug report or feature request please reach out. LambdaCD is built in Clojure and ClojureScript with Leiningen as a build-tool. The ./go script is your main entry-point that wraps all important development tasks. Call it without arguments to see all the options.

Jenkins - Continuous Integration Server

  •    Java

Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. It focuses on two things, Building/testing software projects continuously and Monitoring executions of externally-run jobs. Jenkins can distribute build/test loads to multiple computers.

screwdriver - An open source build platform designed for continuous delivery.

  •    Javascript

Screwdriver is a self-contained, pluggable service to help you build, test, and continuously deliver software using the latest containerization technologies. Screwdriver began as a hack for simplified interfacing with Jenkins at Yahoo in 2012. As the volume of builds increased, it became clear that Jenkins was not stable or feasible to use at the scale we were running builds. In 2016, we rebuilt Screwdriver from scratch in open source with our best coding practices and CICD goals in mind. Screwdriver is executor and SCM-agnostic, meaning you can choose whichever plugin better suits your need or build your own. It's completely free and open source, and our team is actively maintaining the code.


Spinnaker - Global Continuous Delivery

  •    Python

Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence. It helps codify the process of safely and reliably deploying artifacts to the cloud. It can deploy across multiple cloud providers: AWS EC2, Google Compute Engine, Microsoft Azure, OpenStack and Cloud Foundry.

atoum - The modern, simple and intuitive PHP unit testing framework.

  •    PHP

To accomplish that, it massively uses capabilities provided by PHP, to give the developer a whole new way of writing unit tests. Therefore, it can be installed and integrated into an existing project extremely easily, since it is only a single PHAR archive, which is the one and only entry point for the developer. Also, thanks to its fluent interface, it allows for writing unit tests in a fashion close to natural language. It also makes it easier to implement stubbing within tests, thanks to intelligent uses of anonymous functions and closures. atoum natively, and by default, performs the execution of each unit test within a separate PHP process, to warrant isolation. Of course, it can be used seamlessly for continuous integration, and given its design, it can be made to cope with specific needs extremely easily. atoum also accomplishes all of this without affecting performance, since it has been developed to boast a reduced memory footprint while allowing for hastened test execution. It can also generate unit test execution reports in the Xunit format, which makes it compatible with continuous integration tools such as Jenkins. atoum also generates code coverage reports, in order to make it possible to supervise unit tests. Finally, even though it is developed mainly on UNIX, it can also work on Windows. If Xdebug or equivalent gets displayed, then the module is properly installed.

data-integration - A lightweight opinionated ETL framework, halfway between plain scripts and Apache Airflow

  •    Python

Data integration pipelines as code: pipelines, tasks and commands are created using declarative Python code. PostgreSQL as a data processing engine.

configuration-as-code-plugin - Jenkins Configuration as Code Plugin

  •    Java

Manage Jenkins master configuration as code

DALI - A library containing both highly optimized building blocks and an execution engine for data pre-processing in deep learning applications

  •    C++

Today’s deep learning applications include complex, multi-stage pre-processing data pipelines that include compute-intensive steps mainly carried out on the CPU. For instance, steps such as load data from disk, decode, crop, random resize, color and spatial augmentations and format conversions are carried out on the CPUs, limiting the performance and scalability of training and inference tasks. In addition, the deep learning frameworks today have multiple data pre-processing implementations, resulting in challenges such as portability of training and inference workflows and code maintainability. NVIDIA Data Loading Library (DALI) is a collection of highly optimized building blocks and an execution engine to accelerate input data pre-processing for deep learning applications. DALI provides both performance and flexibility of accelerating different data pipelines, as a single library, that can be easily integrated into different deep learning training and inference applications.

gocircuit

  •    Go

The Spawn operator will start its argument function on a desired remote host in a new goroutine, while making it possible to communicate between the parent and child goroutines using the same Go code that you would use to communicate between traditional goroutines. Above, the channel feedback is transparently “stretched” between the parent goroutine, executing locally, and the child goroutine, executing remotely and hosting the anonymous function execution. As a result, distributed application code becomes orders of magnitude shorter, as compared to using traditional alternatives. For instance, we have been able to write large real-world cloud applications — e.g. streaming multi-stage MapReduce pipelines — in as many as 200 lines of code from the ground up.

pipeline - Pipeline is a package to build multi-staged concurrent workflows with a centralized logging output

  •    Go

A package to build multi-staged concurrent workflows with a centralized logging output. The package could be used to define and execute CI/CD tasks(either sequential or concurrent). A tool with similar goals would be Jenkins Pipeline. However, compared to Jenkins Pipeline, this package has fewer constructs since the logic is specified in code, as opposed to a Jenkinsfile.

Gitlab - The platform for modern developers

  •    Ruby

GitLab Community Edition (CE) is open source software to collaborate on code. Create projects and repositories, manage access and do code reviews. Each project has a wiki backed up by a separate git repository. Use the ticketing system included in GitLab or integrate your existing system and lot more.

azure-pipelines-agent - Azure Pipelines Build and Release Agent

  •    CSharp

Supported on Windows, OSX, Ubuntu and Red Hat. Written for the .NET Core CLR as one code base in C#.

jenkins - Development repository for Jenkins Chef cookbook

  •    Ruby

Installs and configures Jenkins CI master & node slaves. Resource providers to support automation via jenkins-cli, including job create/update. This cookbook does not install, manage, or manipulate a JDK, as that is outside of the scope of Jenkins. The package installation method will automatically pull in a valid Java if one does not exist on Debian. RHEL jenkins packages do not depend on java as there are far too many options for a package to do the right thing. We recommend including the java cookbook on your system which allows for either openJDK or Oracle JDK installations.

Selunit - Selenium + Continuous Integration

  •    Java

Selunit combines comprehensively Selenium tests in Selenese HTML format (default Selenium IDE format) with Continuous Integration. It provides a flexible Maven plugin for executing Selenese suites in batch and outputs test results in JUnit format. This allows running, controlling and analyzing Selenium tests and reports within all modern CI servers e.g. Hudson or Jenkins without additional tools.

ansible-role-jenkins - Ansible Role - Jenkins CI

  •    Groovy

Installs Jenkins CI on RHEL/CentOS and Debian/Ubuntu servers. Requires curl to be installed on the server. Also, newer versions of Jenkins require Java 8+ (see the test playbooks inside the tests/ directory for an example of how to use newer versions of Java for your OS).

django-jenkins - Plug and play continuous integration with django and jenkins

  •    Python

This will create reports/ directory with junit xml, Coverage and Pylint reports. If present, it is supposed to be a list/tuple of django apps for Jenkins to run. Tests, reports, and coverage are generated only for the apps from this list.

gaia - Build powerful pipelines in any programming language.

  •    Go

Develop powerful pipelines with the help of SDKs and simply check-in your code into a git repository. Gaia automatically clones your code repository, compiles your code to a binary and executes it on-demand. All results are streamed back and formatted to a user-friendly graphical output. Automation Engineer, DevOps, SRE, Cloud Engineer, Platform Engineer - they all have one in common: The majority of tech people are not motivated to take up this work and they are hard to recruit.

kafka-monitor - Monitor the availability of Kakfa clusters with generated messages.

  •    Java

Kafka Monitor is a framework to implement and execute long-running kafka system tests in a real cluster. It complements Kafka’s existing system tests by capturing potential bugs or regressions that are only likely to occur after prolonged period of time or with low probability. Moreover, it allows you to monitor Kafka cluster using end-to-end pipelines to obtain a number of derived vital stats such as end-to-end latency, service availability and message loss rate. You can easily deploy Kafka Monitor to test and monitor your Kafka cluster without requiring any change to your application.Kafka Monitor can automatically create the monitor topic with the specified config and increase partition count of the monitor topic to ensure partition# >= broker#. It can also reassign partition and trigger preferred leader election to ensure that each broker acts as leader of at least one partition of the monitor topic. This allows Kafka Monitor to detect performance issue on every broker without requiring users to manually manage the partition assignment of the monitor topic.