... and escape YAML-hell along the way
Build and CI/CD systems are powerful tools which complement each other well.
Systems like Gradle or maven take us a long way from code to running software artifacts. But if we get into a highly collaborative setting the need for a central CI/CD system will emerge soon. Scalable and reproduceable build environments for a team are just too helpful to go without them.
Sadly testing and developing complex pipelines often turns out to be tedious, because we have to wait for the central system to pick up and process our jobs. Wouldn't it be fabulous if we could develop and run our pipeline steps locally without modifying them? Exactly this is where dagger.io is coming into play.
Through the smart combination of using containers to isolate build steps and cuelang for expressive, declarative and type safe configuration of our pipeline dagger.io creates a flexible build system which - thanks to containers - can be extended in different programming languages.
In the talk we will look into the concepts and components of dagger.io by example and learn about its inherent advantages in comparison to other build and CI/CD systems. We will learn why we definitely want to use cuelang instead of YAML in the future and define our first own build steps.