CI is run by Jenkins at elasticsearch-ci. Jobs live in the jobs.t directory, these are defined in YML using a syntax simmilar to JJB. Macros are not allowed, and each job must be defined in its own file. Merging of the default configuration is customized so unlike in standard JJB, it recurses into YML objects. Further (internal) documentation on the setup is available .