The standard Release Engineering approach uses global-jjb (repository link). Your project will have a ci-management repository (ONAP's ci-management repo) that you can make a patch set on Gerrit (here's the corresponding patchset for demo.yaml)
As an example let's look at a new job for ONAP: https://github.com/onap/ci-management/blob/master/jjb/demo/demo.yaml
Basically to create a job for JJB you'll need to make a patch that constitutes the name of the job, here `demo`, `demo-sonar` and `demo-info` (with `demo-project-view` creating the view on Jenkins).
Declaring which templates to use for a new job will pull in predefined jobs to run.
How big a builder you need.
Which branches (aka streams) to run against.
And most of the rest of the options are environment variables for `mvn` or settings for our global-jjb artifact archiving, logging, etc.
Also please refer to the best practices documentation.