Building an Extensible, Resumable DSL on Top of Apache Groovy – Jesse Glick
In 2014, a few Jenkins hackers set out to implement a new way of defining continuous delivery pipelines in Jenkins. Dissatisfied with chaining jobs together, configured in the web UI, the effort started with Apache Groovy as the foundation and grew from there. Today the result of that effort, named Jenkins Pipeline, supports a rich DSL with “steps” provided by a Jenkins plugins, built-in auto-generated documentation, and execution resumability which allow Pipelines to continue executing while the master is offline.
In this talk we’ll take a peek behind the scenes of Jenkins Pipeline. Touring the various constraints we started with, whether imposed by Jenkins or Groovy, and discussing which features of Groovy were brought to bear during the implementation. If you’re embedding, extending or are simply interested in the internals of Groovy this talk should have plenty of food for thought
This talk explores using the Groovy scripting language as the basis for Agile testing. It covers tools, libraries and techniques for Unit and BDD style testing. The goal is to show how an open source scripting language such as Groovy can be useful for your testing but many of the ideas are applicable to any language and toolset. It covers different runners like JUnit, TestNG, Spock, auxiliary libraries like Geb as well as techniques like all combinations, all-pairs and property-based testing.
This talk reviews the features in Groovy which make it easy to work with databases. It reviews the features of Groovy SQL including Groovy’s LINQ-like lazy evaluation technology called datasets. In addition, it looks at working with a couple of NoSQL databases: MongoDB (using GMongo) and Neo4J (using it’s Java API and via Gremlin support).