Script to generate initial ODL job template
[releng/builder.git] / README.md
1 = How to test locally
2     - Use the official Jenkins docker image:
3         docker run -d -p 8080:8080 jenkins:weekly"
4     - Then install the Jenkins Plugin Dependencies as listed below
5     - Run JJB with:
6         jenkins-jobs -l DEBUG --conf jenkins.ini update jjb
7
8 = Jenkins Plugin Dependencies
9     - Email-ext Plugin
10     - Gerrit Trigger Plugin
11     - Git Plugin
12     - Sonar Plugin
13     - SSH-Agent Plugin
14
15 = Creating jobs from OpenDaylight templates
16
17 The ODL Releng project provides 3 job templates which can be used to
18 define basic jobs.
19
20 Note: The templates below depend on a modified JJB version to add
21       support for Config File Provider module in the Maven Project
22       module for JJB. This custom version of JJB can be found at:
23       https://github.com/zxiiro/jenkins-job-builder/tree/support-config-file-provider
24
25 == Verify Job Template
26
27 The Verify job template creates a Gerrit Trigger job that will trigger
28 when a new patch is submitted to Gerrit.
29
30 == Merge Job Template
31
32 The Merge job template is similar to the Verify Job Template except it
33 will trigger once a Gerrit patch is merged into
34 the repo.
35
36 == Daily Job Template
37
38 The Daily (or Nightly) Job Template creates a job which will run on a
39 Daily basis and also Submits Sonar reports.
40
41
42 == Basic Job Configuration
43
44 To create jobs based on the above templates you can use the example
45 template which will create 6 jobs (verify, merge, and daily jobs for both
46 master and stable/helium branch).
47
48 Run the following steps from the repo root to create initial job config.
49
50     python scripts/jjb-init-project.py <project-name>
51
52     # Example
53     python scripts/jjb-init-project.py aaa
54
55     # Optionally pass the following options:
56     #
57     # -g / --mvn-goals : With your job's Maven Goals necessary to build
58     #                    (defaults to "clean install")
59     #          Example : -g "clean install"
60     #
61     # -o / --mvn-opts  : With your job's Maven Options necessary to build
62     #                    (defaults to empty)
63     #          Example : -o "-Xmx1024m"
64
65 If all your project requires is the basic verify, merge, and
66 daily jobs then using the job.template should be all you need to
67 configure for your jobs.