Merge "Make Merge and Verify job triggers overrideable"
[releng/global-jjb.git] / jjb / lf-python-jobs.yaml
1 ---
2 - job-group:
3     name: '{project-name}-python-jobs'
4
5     # This job group contains all the recommended jobs that should be deployed
6     # for any project ci that is using Gerrit.
7
8     jobs:
9       - gerrit-tox-verify
10
11 - job-group:
12     name: '{project-name}-github-python-jobs'
13
14     # This job group contains all the recommended jobs that should be deployed
15     # for any project ci that is using GitHub.
16
17     jobs:
18       - github-tox-verify
19
20 ####################
21 # Anchors & Macros #
22 ####################
23
24 - lf_tox_verify: &lf_tox_verify
25     name: lf-tox-verify
26
27     # Required Variables:
28     #     branch:    git branch (default: master)
29     #     tox-dir:   directory containing the project's tox.ini relative to
30     #                the workspace. Empty works if tox.ini is at project root.
31
32     project-type: freestyle
33     node: '{build-node}'
34     concurrent: true
35
36     ######################
37     # Default parameters #
38     ######################
39
40     branch: master
41     build-timeout: 10
42     git-url: '$GIT_URL/$GERRIT_PROJECT'
43     stream: master
44     submodule-recursive: true
45     tox-dir: ''
46     tox-envs: ''
47
48     #####################
49     # Job Configuration #
50     #####################
51
52     properties:
53       - lf-infra-properties:
54           build-days-to-keep: 7
55
56     parameters:
57       - lf-infra-parameters:
58           project: '{project}'
59           branch: '{branch}'
60           stream: '{stream}'
61       - lf-infra-tox-parameters:
62           tox-dir: '{tox-dir}'
63           tox-envs: '{tox-envs}'
64
65     wrappers:
66       - lf-infra-wrappers:
67           build-timeout: '{build-timeout}'
68           jenkins-ssh-credential: '{jenkins-ssh-credential}'
69
70     builders:
71       - shell: !include-raw-escape:
72           # Workaround issue where the tox run later breaks the lftools virtualenv.
73           # Without running the install first the run in the publisher will fail
74           # due to missing lftools because it gets installed into a tox venv.
75           - ../shell/lftools-install.sh
76       - shell: !include-raw-escape:
77           - ../shell/tox-install.sh
78           - ../shell/tox-run.sh
79
80     publishers:
81       - lf-infra-publish
82
83 #################
84 # Job Templates #
85 #################
86
87 - job-template:
88     # Python projects typically use tox to run testing.
89     name: '{project-name}-tox-verify-{stream}'
90     id: gerrit-tox-verify
91     <<: *lf_tox_verify
92
93     ######################
94     # Default parameters #
95     ######################
96
97     gerrit_verify_triggers:
98       - patchset-created-event:
99           exclude-drafts: false
100           exclude-trivial-rebase: false
101           exclude-no-code-change: false
102       - draft-published-event
103       - comment-added-contains-event:
104           comment-contains-value: recheck$
105
106     #####################
107     # Job Configuration #
108     #####################
109
110     scm:
111       - lf-infra-gerrit-scm:
112           jenkins-ssh-credential: '{jenkins-ssh-credential}'
113           git-url: '{git-url}'
114           refspec: '$GERRIT_REFSPEC'
115           branch: '$GERRIT_BRANCH'
116           submodule-recursive: '{submodule-recursive}'
117           choosing-strategy: gerrit
118
119     triggers:
120       - gerrit:
121           server-name: '{gerrit-server-name}'
122           trigger-on: '{obj:gerrit_verify_triggers}'
123           projects:
124             - project-compare-type: ANT
125               project-pattern: '{project}'
126               branches:
127                 - branch-compare-type: ANT
128                   branch-pattern: '**/{branch}'
129
130 - job-template:
131     # Python projects typically use tox to run testing.
132     name: '{project-name}-tox-verify-{stream}'
133     id: github-tox-verify
134     <<: *lf_tox_verify
135
136     properties:
137       - github:
138           url: '{git-url}/{github-org}/{project}'
139
140     scm:
141       - lf-infra-github-scm:
142           url: '{git-clone-url}{github-org}/{project}'
143           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
144           branch: '{branch}'
145           submodule-recursive: '{submodule-recursive}'
146           choosing-strategy: default
147           jenkins-ssh-credential: '{jenkins-ssh-credential}'
148
149     triggers:
150       - github-pull-request:
151           trigger-phrase: '^recheck$'
152           only-trigger-phrase: false
153           status-context: 'JJB Verify'
154           permit-all: true
155           github-hooks: true
156           auto-close-on-fail: false