Aucune description

Akshay Mankar da22302f20 Add render functions to render to JSON il y a 5 ans
defaults 8eb1b38fbc Fix name of pipeline's oldName to old_name il y a 5 ans
examples 743f69564b More compact formatting with dhall-1.26.1 il y a 5 ans
helpers 4040fe3a0c Add simple `in_parallel` helper to package.dhall il y a 5 ans
lib 500165c224 Upgrade to dhall 11.0.0 il y a 5 ans
render da22302f20 Add render functions to render to JSON il y a 5 ans
resource-types 257c0f000a Update all types with concourse v5.5.1 spec il y a 5 ans
resources 257c0f000a Update all types with concourse v5.5.1 spec il y a 5 ans
schemas 18e0e506c7 Add schemas il y a 5 ans
types 764a5fa686 Add support for in_parallel il y a 5 ans
utils 860e026a57 Format all files il y a 5 ans
README.md 2c9c6a8636 Create README il y a 5 ans
package.dhall da22302f20 Add render functions to render to JSON il y a 5 ans

README.md

Dhall Concourse

Note: A lot of this README is inspired (some of it copied) from the dhall-kubernetes README, so thanks to the authors!

Dhall Concourse provides Dhall bindings for Concourse, so you can generate concourse pipelines from Dhall expressions. This will let you easily typecheck, template and modularize your Concourse pipelines.

Why do I need this?

There are a lot of issues one could face while building any non-trivial pipeline. Few them could be:

  1. Pipeline yaml becomes very big and unmanageable
  2. Same set of jobs are required to be run in different environments
  3. Same set of hooks but with slight changes in all jobs. E.g. slack notifications, releasing resources on failure, etc.

Most common way to deal with these have been to use a templating language like erb, but it gets very messy very fast. We can do a lot better.

Dhall solves all of this, being a programming language with builtin templating, all while being non-Turing complete, strongly typed and strongly normalizing (i.e.: reduces everything to a normal form, no matter how much abstraction you build), so saving you from the "oh-noes-I-made-my-config-in-code-and-now-its-too-abstract" nightmare.

For a Dhall Tutorial, see the readme of the project, or the full tutorial.

Prerequisites

You need a patched version of dhall for this which supports the type JSON and function toJSON : forall(a : Type) -> a -> JSON. It is implemented at https://github.com/akshaymankar/dhall-recursive-json. It can be installed using instructions in the README.

Examples

There are a few examples in the examples directory.