Merge "Add Maven job to build dependencies with patches"
[releng/global-jjb.git] / jjb / lf-node-jobs.yaml
1 ---
2 - job-group:
3     name: '{project-name}-github-node-jobs'
4
5     # Job group containing recommended jobs to deploy for a Node Project.
6
7     node-version: 6.11.4
8
9     jobs:
10       - github-node-verify
11
12 - job-group:
13     name: '{project-name}-node-jobs'
14
15     # Job group containing recommended jobs to deploy for a Node Project.
16
17     node-version: 6.11.4
18
19     jobs:
20       - gerrit-node-verify
21
22 ###############
23 # Node Verify #
24 ###############
25
26 - lf_node_verify: &lf_node_verify
27     name: lf-node-verify
28
29     # Verify job for NodeJS projects
30     #
31     # Required parameters:
32     #
33     #     :build-node: The node to run build on.
34     #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
35     #         be configured in defaults.yaml)
36     #     :node-version: Version of NodeJS to install. A default is configured
37     #         via the job-group if a job-group is used.
38     #
39     # Optional parameters:
40     #
41     #     :branch: The branch to build against. (default: master)
42     #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
43     #     :build-timeout: Timeout in seconds before aborting build. (default: 10)
44     #     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
45     #     :node-dir: Path to a NodeJS project to run node test against
46     #         (default: '')
47     #     :stream: Keyword that can be used to represent a release code-name.
48     #         Often the same as the branch. (default: master)
49     #     :submodule-recursive: Whether to checkout submodules recursively.
50     #         (default: true)
51     #
52     #     :gerrit_verify_triggers: Override Gerrit Triggers.
53     #     :gerrit_trigger_file_paths: Override file paths which can be used to
54     #         filter which file modifications will trigger a build.
55
56     ######################
57     # Default parameters #
58     ######################
59
60     branch: master
61     build-days-to-keep: 7
62     build-timeout: 10
63     git-url: '$GIT_URL/$GERRIT_PROJECT'
64     node-dir: ''
65     stream: master
66     submodule-recursive: true
67
68     gerrit_trigger_file_paths:
69       - compare-type: ANT
70         pattern: '{node-dir}/**'
71
72     gerrit_verify_triggers:
73       - patchset-created-event:
74           exclude-drafts: false
75           exclude-trivial-rebase: false
76           exclude-no-code-change: false
77       - draft-published-event
78       - comment-added-contains-event:
79           comment-contains-value: recheck$
80
81     #####################
82     # Job Configuration #
83     #####################
84
85     project-type: freestyle
86     node: '{build-node}'
87     concurrent: true
88
89     properties:
90       - lf-infra-properties:
91           build-days-to-keep: '{build-days-to-keep}'
92
93     parameters:
94       - lf-infra-parameters:
95           project: '{project}'
96           branch: '{branch}'
97           stream: '{stream}'
98           lftools-version: '{lftools-version}'
99       - lf-infra-node-parameters:
100           node-dir: '{node-dir}'
101           node-version: '{node-version}'
102
103     wrappers:
104       - lf-infra-wrappers:
105           build-timeout: '{build-timeout}'
106           jenkins-ssh-credential: '{jenkins-ssh-credential}'
107
108     builders:
109       - shell: !include-raw-escape:
110           - ../shell/node-install.sh
111           - ../shell/node-run.sh
112
113     publishers:
114       - lf-infra-publish
115
116 - job-template:
117     name: '{project-name}-node-verify-{stream}'
118     id: gerrit-node-verify
119     <<: *lf_node_verify
120
121     scm:
122       - lf-infra-gerrit-scm:
123           jenkins-ssh-credential: '{jenkins-ssh-credential}'
124           git-url: '{git-url}'
125           refspec: '$GERRIT_REFSPEC'
126           branch: 'origin/$GERRIT_BRANCH'
127           submodule-recursive: '{submodule-recursive}'
128           choosing-strategy: gerrit
129
130     triggers:
131       - gerrit:
132           server-name: '{gerrit-server-name}'
133           trigger-on: '{obj:gerrit_verify_triggers}'
134           projects:
135             - project-compare-type: ANT
136               project-pattern: '{project}'
137               branches:
138                 - branch-compare-type: ANT
139                   branch-pattern: '**/{branch}'
140               file-paths: '{obj:gerrit_trigger_file_paths}'
141
142 - job-template:
143     name: '{project-name}-node-verify-{stream}'
144     id: github-node-verify
145     <<: *lf_node_verify
146
147     properties:
148       - github:
149           url: '{git-url}/{github-org}/{project}'
150
151     scm:
152       - lf-infra-github-scm:
153           url: '{git-clone-url}{github-org}/{project}'
154           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
155           branch: '{branch}'
156           submodule-recursive: '{submodule-recursive}'
157           choosing-strategy: default
158           jenkins-ssh-credential: '{jenkins-ssh-credential}'
159
160     triggers:
161       - github-pull-request:
162           trigger-phrase: '^recheck$'
163           only-trigger-phrase: false
164           status-context: 'Node Verify'
165           permit-all: true
166           github-hooks: true
167           auto-close-on-fail: false