GitLab CI Configuration Language

Problem to solve

With the includes and extends that the GitLab CI supports, it feels like we're hitting the end of the capabilities of YAML.

For example it is not possible to define Yaml Anchors in an include and use them in the main file.

Target audience

Companies that maintain a lot of projects and need to configure and maintain those.

Further details

Proposal

It would be greate to be able to use a configuration language that actually supports things like imports natively.

Therefore I'd like to propose a second language in which the configuration file can be written: Dhall

By using this language, it would be possible to implement every use case that the CI configuration could need while still being non-touring complete. As a benefit, Dhall provides a YAML compiler so that the same file format can be generated.

What does success look like, and how can we measure that?

A configuration language instead of a serialization format is used to configure the CI. Templates / Function for the CI are provided. In the best case something like dhall-kubernetes is provided.

Links / references

Edited by Jonatan Männchen