This makes merge and verify jobs that use Gerrit Trigger be able to
override the default trigger defined by the job. This is useful in cases
where a project may have topic branches that they do not wish to
configure their build rules differently. For example in OpenDaylight the
NetVirt project has a need for topic branches but they don't want to
run testing against every patch submission in the topic branches and
would prefer to run them manually. This patch would allow them to
reconfigure the triggers in that case for the topic branch.
Based on a POC from:
https://git.opendaylight.org/gerrit/61385
Change-Id: Idf1d301572bb33f5b540f1011658cdd3f3fc69f5
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
causes the archive script to do a globstar search for that pattern and archives
any files it finds matching.
causes the archive script to do a globstar search for that pattern and archives
any files it finds matching.
+## Overriding merge and verify triggers
+
+The default trigger conditions for Merge and Verify job types are overrideable
+in a project configuration by overriding the following variables:
+
+- gerrit_merge_triggers
+- gerrit_verify_triggers
+
+These variables take a list of trigger-on values as defined in JJB docs here:
+<https://docs.openstack.org/infra/jenkins-job-builder/triggers.html#triggers.gerrit>
+
## Appendix
### ShellCheck
## Appendix
### ShellCheck
git-url: '$GIT_URL/$GERRIT_PROJECT'
git-url: '$GIT_URL/$GERRIT_PROJECT'
+ gerrit_merge_triggers:
+ - change-merged-event
+ - comment-added-contains-event:
+ comment-contains-value: remerge$
+
#####################
# Job Configuration #
#####################
#####################
# Job Configuration #
#####################
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
- trigger-on:
- - change-merged-event
- - comment-added-contains-event:
- comment-contains-value: remerge$
+ trigger-on: '{obj:gerrit_merge_triggers}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
git-url: '$GIT_URL/$GERRIT_PROJECT'
git-url: '$GIT_URL/$GERRIT_PROJECT'
+ gerrit_verify_triggers:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: recheck$
+
#####################
# Job Configuration #
#####################
#####################
# Job Configuration #
#####################
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
- trigger-on:
- - patchset-created-event:
- exclude-drafts: false
- exclude-trivial-rebase: false
- exclude-no-code-change: false
- - draft-published-event
- - comment-added-contains-event:
- comment-contains-value: recheck$
+ trigger-on: '{obj:gerrit_verify_triggers}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
git-url: '$GIT_URL/$GERRIT_PROJECT'
git-url: '$GIT_URL/$GERRIT_PROJECT'
+ gerrit_merge_triggers:
+ - change-merged-event
+ - comment-added-contains-event:
+ comment-contains-value: remerge$
+
#####################
# Job Configuration #
#####################
#####################
# Job Configuration #
#####################
- timed: '00 10 1 * *'
- gerrit:
server-name: '{gerrit-server-name}'
- timed: '00 10 1 * *'
- gerrit:
server-name: '{gerrit-server-name}'
- trigger-on:
- - change-merged-event
- - comment-added-contains-event:
- comment-contains-value: remerge$
+ trigger-on: '{obj:gerrit_merge_triggers}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
build-timeout: 10
git-url: '$GIT_URL/$GERRIT_PROJECT'
build-timeout: 10
git-url: '$GIT_URL/$GERRIT_PROJECT'
+ gerrit_verify_triggers:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: recheck$
+
#####################
# Job Configuration #
#####################
#####################
# Job Configuration #
#####################
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
- trigger-on:
- - patchset-created-event:
- exclude-drafts: false
- exclude-trivial-rebase: false
- exclude-no-code-change: false
- - draft-published-event
- - comment-added-contains-event:
- comment-contains-value: recheck$
+ trigger-on: '{obj:gerrit_verify_triggers}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
id: gerrit-tox-verify
<<: *lf_tox_verify
id: gerrit-tox-verify
<<: *lf_tox_verify
+ ######################
+ # Default parameters #
+ ######################
+
+ gerrit_verify_triggers:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: recheck$
+
+ #####################
+ # Job Configuration #
+ #####################
+
scm:
- lf-infra-gerrit-scm:
jenkins-ssh-credential: '{jenkins-ssh-credential}'
scm:
- lf-infra-gerrit-scm:
jenkins-ssh-credential: '{jenkins-ssh-credential}'
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
- trigger-on:
- - patchset-created-event:
- exclude-drafts: false
- exclude-trivial-rebase: false
- exclude-no-code-change: false
- - draft-published-event
- - comment-added-contains-event:
- comment-contains-value: recheck$
+ trigger-on: '{obj:gerrit_verify_triggers}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'