Pipeline script is a Domain Specific Language (DSL) for describing delivery pipelines (pipeline) as used in the practise of Continuous Delivery (CD), Continuous Deployment and in the basis also Continuous Integration (CI).
The purpose of this project is to be the specification of the pipeline script DSL. And provide a reference implementation to parse the syntax into a model that can be used by other projects to configure existing CI/CD tools with.
One DSL to describe delivery pipelines in a CI/CD tool agnostic way.
Each CI/CD tool then has its own adapter/importer/way to read the DSL and transform it to the tool specific way of configuring pipelines.
Currently this project is in the specification phase.
This means we’re looking for a common language in the delivery pipelines domain. Looking at configurations used by existing tools like Jenkins, Jenkins Job DSL, Jenkins Workflow DSL, Travis-CI, Wercker, CircleCI, Concourse, Walter, etc. and the best practices in the CI/CD domain.
THIS PROJECT IS ABANDONED
In the specs
directory you can find different pipeline scripts for the different situations, which
together make up the pipeline script specification.
See specs/README.adoc
for more details on the specification.
The purpose of this source is to build a reference implementation to parse the syntax into a model that can be used to configure existing CI/CD tools..
These are spread over the subprojects in the subprojects
directory.
The following sections describe the purpose of the different subprojects.
The different adapter implementations. Each adapter converts a Pipeline Script into adapter tool specific configuration.
eg.: * Jenkins adapter * go.cd adapter * concourse.ci adapter * walter-cd adapter * teamcity adapter
The different SCM listener implementations. Each SCM implementation understands the SCM manager specific webhook format, and return the pipeline script info.
eg.: * Github SCM * Gitlab SCM * Stash/Bitbucket server SCM * Bitbucket cloud SCM
The different listener applications that support the different combinations of SCM and adapter implementations.
eg.: * Github SCM, Jenkins adapter * Gitlab SCM, Jenkins adapter * Stash/Bitbucket server SCM, Jenkins adapter * Bitbucket cloud SCM, Jenkins adapter
-
Create webhook listeners
-
one for each SCM manager {github|gitlab|stash/bitbucket server|…} and adapter implementation {jenkins|..} combination
-