7 name: lf-infra-clm-python
10 properties-content: "CLM_PROJECT_NAME={clm-project-name}"
11 - shell: !include-raw-escape: ../shell/nexus-iq-cli.sh
14 name: lf-infra-tox-install
17 properties-content: "PYTHON={python-version}"
18 - shell: !include-raw-escape: ../shell/tox-install.sh
21 name: lf-infra-tox-run
24 properties-content: "PARALLEL={parallel}"
25 - shell: !include-raw-escape: ../shell/tox-run.sh
31 - lf_python_common: &lf_python_common
32 name: lf-python-common
34 ######################
35 # Default parameters #
36 ######################
45 project-type: freestyle
49 - lf-infra-properties:
50 build-days-to-keep: "{build-days-to-keep}"
53 - lf-infra-parameters:
60 build-timeout: "{build-timeout}"
61 jenkins-ssh-credential: "{jenkins-ssh-credential}"
70 - lf_python_clm_xc: &lf_python_xc_clm
71 name: lf-python-xc-clm
73 ######################
74 # Default parameters #
75 ######################
78 build-days-to-keep: 30 # 30 days for troubleshooting purposes
81 git-url: "$GIT_URL/$PROJECT"
82 github-url: "https://github.com"
83 java-version: openjdk8
84 nexus-iq-cli-version: 1.44.0-01
85 nexus-iq-namespace: "" # Recommend a trailing dash when set. Example: odl-
86 pre-build-script: " # pre-build script goes here"
88 submodule-recursive: true
90 submodule-disable: false
92 gerrit_trigger_file_paths:
93 - compare-type: REG_EXP
96 # github_included_regions MUST match gerrit_trigger_file_paths
97 github_included_regions:
100 #####################
101 # Job Configuration #
102 #####################
104 disabled: "{disable-job}"
107 - lf-infra-parameters:
112 name: NEXUS_IQ_CLI_VERSION
113 default: "{nexus-iq-cli-version}"
114 description: Nexus IQ CLI package to download and use.
117 - credentials-binding:
118 - username-password-separated:
119 credential-id: nexus-iq-xc-clm
121 password: CLM_PASSWORD
123 - lf-update-java-alternatives:
124 java-version: "{java-version}"
125 - shell: "{pre-build-script}"
126 - lf-infra-clm-python:
127 clm-project-name: "{nexus-iq-namespace}{project-name}"
130 name: "{project-name}-python-clm-{stream}"
131 id: gerrit-python-xc-clm
132 <<: *lf_python_common
133 <<: *lf_python_xc_clm
135 ######################
136 # Default parameters #
137 ######################
140 - comment-added-contains-event:
141 comment-contains-value: '^Patch Set\s+\d+:\s+run-clm\s*$'
143 #####################
144 # Job Configuration #
145 #####################
148 - lf-infra-gerrit-scm:
149 jenkins-ssh-credential: "{jenkins-ssh-credential}"
151 refspec: "$GERRIT_REFSPEC"
152 branch: "$GERRIT_BRANCH"
153 submodule-recursive: "{submodule-recursive}"
154 submodule-timeout: "{submodule-timeout}"
155 submodule-disable: "{submodule-disable}"
156 choosing-strategy: default
159 # Build weekly on Saturdays
162 server-name: "{gerrit-server-name}"
163 trigger-on: "{obj:gerrit_clm_triggers}"
165 - project-compare-type: ANT
166 project-pattern: "{project}"
168 - branch-compare-type: ANT
169 branch-pattern: "**/{branch}"
170 file-paths: "{obj:gerrit_trigger_file_paths}"
178 name: "{project-name}-python-clm-{stream}"
179 id: github-python-xc-clm
180 <<: *lf_python_common
181 <<: *lf_python_xc_clm
184 - lf-infra-properties:
185 build-days-to-keep: "{build-days-to-keep}"
187 url: "{github-url}/{github-org}/{project}"
190 - lf-infra-github-scm:
191 url: "{git-clone-url}{github-org}/{project}"
193 branch: "refs/heads/{branch}"
194 submodule-recursive: "{submodule-recursive}"
195 submodule-timeout: "{submodule-timeout}"
196 submodule-disable: "{submodule-disable}"
197 choosing-strategy: default
198 jenkins-ssh-credential: "{jenkins-ssh-credential}"
201 # Build weekly on Saturdays
203 - github-pull-request:
204 trigger-phrase: "^run-clm$"
205 only-trigger-phrase: false
206 status-context: "CLM"
209 white-list-target-branches:
211 included-regions: "{obj:github_included_regions}"
213 #########################
214 # Python Sonar with Tox #
215 #########################
217 - lf_tox_sonar: &lf_tox_sonar
220 ######################
221 # Default parameters #
222 ######################
224 branch: master # Sonar should always be run on master branch
225 build-days-to-keep: 7
227 cron: "H H * * *" # run daily
229 git-url: "$GIT_URL/$PROJECT"
230 github-url: "https://github.com"
231 java-version: openjdk8
232 mvn-global-settings: global-settings
236 mvn-settings: "{mvn-settings}"
239 pre-build-script: "# pre-build script goes here"
240 python-version: python3
241 sonar-mvn-goal: "sonar:sonar"
243 sonarcloud-project-key: ""
244 sonarcloud-project-organization: ""
245 sonarcloud-api-token: ""
247 submodule-recursive: true
248 submodule-timeout: 10
249 submodule-disable: false
253 gerrit_trigger_file_paths:
254 - compare-type: REG_EXP
257 # github_included_regions MUST match gerrit_trigger_file_paths
258 github_included_regions:
261 #####################
262 # Job Configuration #
263 #####################
265 disabled: "{disable-job}"
268 - lf-infra-parameters:
272 - lf-infra-maven-parameters:
273 mvn-opts: "{mvn-opts}"
274 mvn-params: "{mvn-params}"
275 mvn-version: "{mvn-version}"
276 - lf-infra-tox-parameters:
278 tox-envs: "{tox-envs}"
280 name: ARCHIVE_ARTIFACTS
281 default: "{archive-artifacts}"
282 description: Artifacts to archive to the logs server.
285 # Sets an env var for shell scripts to be able to call the dynamically
286 # installed maven without having to calculate the path themselves.
287 # yamllint disable-line rule:line-length
288 default: "/w/tools/hudson.tasks.Maven_MavenInstallation/{mvn-version}/bin/mvn"
289 description: "Maven selector to be used by shell scripts"
291 name: SONAR_MAVEN_GOAL
292 default: "{sonar-mvn-goal}"
294 Maven goals to pass to the Sonar call. Typically sonar:sonar
295 however to use a specific version of the sonar-maven-plugin we
296 can call "org.codehaus.mojo:sonar-maven-plugin:3.3.0.603:sonar".
300 - lf-infra-tox-install:
301 python-version: "{python-version}"
302 - shell: "{pre-build-script}"
304 parallel: "{parallel}"
305 - lf-provide-maven-settings:
306 global-settings-file: "{mvn-global-settings}"
307 settings-file: "{mvn-settings}"
310 condition-kind: boolean-expression
311 condition-expression: "{sonarcloud}"
313 - shell: echo 'Using SonarCloud'
314 - lf-infra-maven-sonarcloud:
315 java-version: "{java-version}"
316 mvn-goals: "{mvn-goals}"
317 mvn-settings: "{mvn-settings}"
318 mvn-version: "{mvn-version}"
319 sonarcloud-project-key: "{sonarcloud-project-key}"
320 # yamllint disable-line rule:line-length
321 sonarcloud-project-organization: "{sonarcloud-project-organization}"
322 sonarcloud-api-token: "{sonarcloud-api-token}"
327 condition-kind: boolean-expression
328 condition-expression: "{sonarcloud}"
330 - shell: echo 'Using SonarQube'
331 - lf-infra-maven-sonar:
332 java-version: "{java-version}"
333 mvn-goals: "{mvn-goals}"
334 mvn-settings: "{mvn-settings}"
335 mvn-version: "{mvn-version}"
341 name: "{project-name}-tox-sonar"
343 <<: *lf_python_common
346 ######################
347 # Default parameters #
348 ######################
350 gerrit_sonar_triggers:
351 - comment-added-contains-event:
352 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
354 #####################
355 # Job Configuration #
356 #####################
359 - lf-infra-gerrit-scm:
360 jenkins-ssh-credential: "{jenkins-ssh-credential}"
362 refspec: $GERRIT_REFSPEC
363 branch: $GERRIT_BRANCH
364 submodule-recursive: "{submodule-recursive}"
365 submodule-timeout: "{submodule-timeout}"
366 submodule-disable: "{submodule-disable}"
367 choosing-strategy: default
370 - timed: "{obj:cron}"
372 server-name: "{gerrit-server-name}"
373 trigger-on: "{obj:gerrit_sonar_triggers}"
375 - project-compare-type: "ANT"
376 project-pattern: "{project}"
378 - branch-compare-type: "ANT"
379 branch-pattern: "**/{branch}"
380 file-paths: "{obj:gerrit_trigger_file_paths}"
388 name: "{project-name}-tox-sonar"
390 <<: *lf_python_common
394 - lf-infra-properties:
395 build-days-to-keep: "{build-days-to-keep}"
397 url: "{github-url}/{github-org}/{project}"
400 - lf-infra-github-scm:
401 url: "{git-clone-url}{github-org}/{project}"
402 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
404 submodule-recursive: "{submodule-recursive}"
405 submodule-timeout: "{submodule-timeout}"
406 submodule-disable: "{submodule-disable}"
407 choosing-strategy: default
408 jenkins-ssh-credential: "{jenkins-ssh-credential}"
411 - github-pull-request:
412 trigger-phrase: "^run-sonar$"
413 only-trigger-phrase: false
414 status-context: "Python Sonar"
417 white-list-target-branches:
419 included-regions: "{obj:github_included_regions}"
425 - lf_tox_sonarqube: &lf_tox_sonarqube
426 name: lf-tox-sonarqube
428 ######################
429 # Default parameters #
430 ######################
434 branch: master # Sonar should always be run on master branch
435 build-days-to-keep: 7
439 git-url: "$GIT_URL/$PROJECT"
440 github-url: "https://github.com"
442 pre-build-script: "# pre-build script goes here"
443 python-version: python3
445 submodule-recursive: true
446 submodule-timeout: 10
447 submodule-disable: false
451 sonar-additional-args: ""
453 sonar-project-file: "sonar-project.properties"
457 #####################
458 # Job Configuration #
459 #####################
461 project-type: freestyle
463 disabled: "{disable-job}"
466 - lf-infra-properties:
467 build-days-to-keep: "{build-days-to-keep}"
471 build-timeout: "{build-timeout}"
472 jenkins-ssh-credential: "{jenkins-ssh-credential}"
475 - lf-infra-parameters:
479 - lf-infra-tox-parameters:
481 tox-envs: "{tox-envs}"
483 name: ARCHIVE_ARTIFACTS
484 default: "{archive-artifacts}"
485 description: Artifacts to archive to the logs server.
489 - lf-infra-tox-install:
490 python-version: "{python-version}"
491 - shell: "{pre-build-script}"
493 parallel: "{parallel}"
495 sonar-task: "{sonar-task}"
496 sonar-project-file: "{sonar-project-file}"
497 sonar-properties: "{sonar-properties}"
498 sonar-java-opts: "{sonar-java-opts}"
499 sonar-additional-args: "{sonar-additional-args}"
505 name: "{project-name}-tox-sonarqube"
506 id: gerrit-tox-sonarqube
508 <<: *lf_tox_sonarqube
511 - lf-infra-gerrit-scm:
512 branch: "$GERRIT_BRANCH"
513 jenkins-ssh-credential: "{jenkins-ssh-credential}"
515 refspec: "$GERRIT_REFSPEC"
516 submodule-recursive: "{submodule-recursive}"
517 submodule-timeout: "{submodule-timeout}"
518 submodule-disable: "{submodule-disable}"
519 choosing-strategy: default
522 - timed: "{obj:cron}"
524 server-name: "{gerrit-server-name}"
526 - comment-added-contains-event:
527 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
529 - project-compare-type: "ANT"
530 project-pattern: "{project}"
532 - branch-compare-type: "ANT"
533 branch-pattern: "**/{branch}"
536 name: "{project-name}-tox-sonarqube"
537 id: github-tox-sonarqube
539 <<: *lf_tox_sonarqube
542 - lf-infra-github-scm:
544 jenkins-ssh-credential: "{jenkins-ssh-credential}"
545 url: "{git-clone-url}{github-org}/{project}"
546 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
547 submodule-recursive: "{submodule-recursive}"
548 submodule-timeout: "{submodule-timeout}"
549 submodule-disable: "{submodule-disable}"
550 choosing-strategy: default
553 - github-pull-request:
554 trigger-phrase: "^run-sonar$"
555 only-trigger-phrase: false
556 status-context: "Tox Sonarqube"
559 white-list-target-branches:
566 - lf_tox_common: &lf_tox_common
569 ######################
570 # Default parameters #
571 ######################
574 build-days-to-keep: 7
577 git-url: "$GIT_URL/$GERRIT_PROJECT"
578 github-url: "https://github.com"
580 pre-build-script: "# pre-build script goes here"
581 python-version: python3
583 submodule-recursive: true
584 submodule-timeout: 10
585 submodule-disable: false
589 gerrit_trigger_file_paths:
590 - compare-type: REG_EXP
593 # github_included_regions MUST match gerrit_trigger_file_paths
594 github_included_regions:
597 #####################
598 # Job Configuration #
599 #####################
601 project-type: freestyle
604 disabled: "{disable-job}"
607 - lf-infra-properties:
608 build-days-to-keep: "{build-days-to-keep}"
611 - lf-infra-parameters:
615 - lf-infra-tox-parameters:
617 tox-envs: "{tox-envs}"
621 build-timeout: "{build-timeout}"
622 jenkins-ssh-credential: "{jenkins-ssh-credential}"
626 - lf-infra-tox-install:
627 python-version: "{python-version}"
628 - shell: "{pre-build-script}"
630 parallel: "{parallel}"
636 # Python projects typically use tox to run testing.
637 name: "{project-name}-tox-verify-{stream}"
638 id: gerrit-tox-verify
641 ######################
642 # Default parameters #
643 ######################
645 gerrit-skip-vote: false
646 gerrit_verify_triggers:
647 - patchset-created-event:
649 exclude-trivial-rebase: false
650 exclude-no-code-change: false
651 - draft-published-event
652 - comment-added-contains-event:
653 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
655 #####################
656 # Job Configuration #
657 #####################
660 - lf-infra-gerrit-scm:
661 jenkins-ssh-credential: "{jenkins-ssh-credential}"
663 refspec: "$GERRIT_REFSPEC"
664 branch: "$GERRIT_BRANCH"
665 submodule-recursive: "{submodule-recursive}"
666 submodule-timeout: "{submodule-timeout}"
667 submodule-disable: "{submodule-disable}"
668 choosing-strategy: gerrit
672 server-name: "{gerrit-server-name}"
673 trigger-on: "{obj:gerrit_verify_triggers}"
675 - project-compare-type: ANT
676 project-pattern: "{project}"
678 - branch-compare-type: ANT
679 branch-pattern: "**/{branch}"
680 file-paths: "{obj:gerrit_trigger_file_paths}"
682 successful: "{gerrit-skip-vote}"
683 failed: "{gerrit-skip-vote}"
684 unstable: "{gerrit-skip-vote}"
685 notbuilt: "{gerrit-skip-vote}"
688 # Python projects typically use tox to run testing.
689 name: "{project-name}-tox-verify-{stream}"
690 id: github-tox-verify
694 - lf-infra-properties:
695 build-days-to-keep: "{build-days-to-keep}"
697 url: "{github-url}/{github-org}/{project}"
700 - lf-infra-github-scm:
701 url: "{git-clone-url}{github-org}/{project}"
702 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
704 submodule-recursive: "{submodule-recursive}"
705 submodule-timeout: "{submodule-timeout}"
706 submodule-disable: "{submodule-disable}"
707 choosing-strategy: default
708 jenkins-ssh-credential: "{jenkins-ssh-credential}"
711 - github-pull-request:
712 trigger-phrase: "^(recheck|reverify)$"
713 only-trigger-phrase: false
714 status-context: "Tox Verify"
717 white-list-target-branches:
719 included-regions: "{obj:github_included_regions}"
722 # Run tox after merge of gerrit change set
723 name: "{project-name}-tox-merge-{stream}"
727 ######################
728 # Default parameters #
729 ######################
731 gerrit_merge_triggers:
732 - change-merged-event
733 - comment-added-contains-event:
734 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
736 #####################
737 # Job Configuration #
738 #####################
741 - lf-infra-gerrit-scm:
742 jenkins-ssh-credential: "{jenkins-ssh-credential}"
744 refspec: "$GERRIT_REFSPEC"
745 branch: "$GERRIT_BRANCH"
746 submodule-recursive: "{submodule-recursive}"
747 submodule-timeout: "{submodule-timeout}"
748 submodule-disable: "{submodule-disable}"
749 # merge jobs always build from tip
750 choosing-strategy: default
754 server-name: "{gerrit-server-name}"
755 trigger-on: "{obj:gerrit_merge_triggers}"
757 - project-compare-type: ANT
758 project-pattern: "{project}"
760 - branch-compare-type: ANT
761 branch-pattern: "**/{branch}"
762 file-paths: "{obj:gerrit_trigger_file_paths}"
765 # Run tox after merge of github pull request
766 name: "{project-name}-tox-merge-{stream}"
771 - lf-infra-properties:
772 build-days-to-keep: "{build-days-to-keep}"
774 url: "{github-url}/{github-org}/{project}"
777 - lf-infra-github-scm:
778 url: "{git-clone-url}{github-org}/{project}"
780 branch: "refs/heads/{branch}"
781 submodule-recursive: "{submodule-recursive}"
782 submodule-timeout: "{submodule-timeout}"
783 submodule-disable: "{submodule-disable}"
784 choosing-strategy: default
785 jenkins-ssh-credential: "{jenkins-ssh-credential}"
788 - github-pull-request:
789 trigger-phrase: "^remerge$"
790 only-trigger-phrase: true
791 status-context: "Tox Merge"
796 white-list: "{obj:github_pr_whitelist}"
797 admin-list: "{obj:github_pr_admin_list}"
798 white-list-target-branches:
800 included-regions: "{obj:github_included_regions}"
806 - lf_pypi_common: &lf_pypi_common
809 ######################
810 # Default parameters #
811 ######################
816 build-days-to-keep: 7
820 git-url: "$GIT_URL/$GERRIT_PROJECT"
821 github-url: "https://github.com"
823 pre-build-script: "# pre-build script goes here"
824 python-version: python3
826 submodule-disable: false
827 submodule-recursive: true
828 submodule-timeout: 10
832 gerrit_trigger_file_paths:
833 - compare-type: REG_EXP
836 # github_included_regions MUST match gerrit_trigger_file_paths
837 github_included_regions:
840 #####################
841 # Job Configuration #
842 #####################
844 project-type: freestyle
846 disabled: "{disable-job}"
849 - lf-infra-properties:
850 build-days-to-keep: "{build-days-to-keep}"
853 - lf-infra-parameters:
857 - lf-infra-tox-parameters:
859 tox-envs: "{tox-envs}"
861 name: BUILD_BDIST_WHEEL
862 default: "{dist-binary}"
863 description: "Set to True (checked) to build a binary distribution"
867 description: "Set to True (checked) to skip uploading artifacts"
871 build-timeout: "{build-timeout}"
872 jenkins-ssh-credential: "{jenkins-ssh-credential}"
877 - lf_pypi_verify_builders: &lf_pypi_verify_builders
878 name: lf-pypi-verify-builders
882 - lf-infra-tox-install:
883 python-version: "{python-version}"
884 - shell: "{pre-build-script}"
886 parallel: "{parallel}"
887 - shell: !include-raw-escape: ../shell/pypi-dist-build.sh
889 - lf_pypi_merge_builders: &lf_pypi_merge_builders
890 name: lf-pypi-merge-builders
894 - lf-infra-tox-install:
895 python-version: "{python-version}"
896 - shell: "{pre-build-script}"
898 parallel: "{parallel}"
899 - shell: !include-raw-escape: ../shell/pypi-dist-build.sh
900 - config-file-provider:
903 target: "$HOME/.pypirc"
905 properties-content: "REPOSITORY={pypi-repo}"
906 - shell: !include-raw-escape: ../shell/pypi-upload.sh
909 name: "{project-name}-pypi-verify-{stream}"
910 id: gerrit-pypi-verify
912 <<: *lf_pypi_verify_builders
915 - lf-infra-gerrit-scm:
916 jenkins-ssh-credential: "{jenkins-ssh-credential}"
918 refspec: "$GERRIT_REFSPEC"
919 branch: "$GERRIT_BRANCH"
920 submodule-recursive: "{submodule-recursive}"
921 submodule-timeout: "{submodule-timeout}"
922 submodule-disable: "{submodule-disable}"
923 choosing-strategy: gerrit
927 server-name: "{gerrit-server-name}"
929 - patchset-created-event:
931 exclude-trivial-rebase: false
932 exclude-no-code-change: false
933 - draft-published-event
934 - comment-added-contains-event:
935 # yamllint disable-line rule:line-length
936 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
938 - project-compare-type: ANT
939 project-pattern: "{project}"
941 - branch-compare-type: ANT
942 branch-pattern: "**/{branch}"
943 file-paths: "{obj:gerrit_trigger_file_paths}"
946 name: "{project-name}-pypi-verify-{stream}"
947 id: github-pypi-verify
949 <<: *lf_pypi_verify_builders
953 url: "{github-url}/{github-org}/{project}"
956 - lf-infra-github-scm:
957 url: "{git-clone-url}{github-org}/{project}"
958 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
960 submodule-recursive: "{submodule-recursive}"
961 submodule-timeout: "{submodule-timeout}"
962 submodule-disable: "{submodule-disable}"
963 choosing-strategy: default
964 jenkins-ssh-credential: "{jenkins-ssh-credential}"
967 - github-pull-request:
968 trigger-phrase: "^(recheck|reverify)$"
969 only-trigger-phrase: false
970 status-context: "PyPI Verify"
973 white-list-target-branches:
975 included-regions: "{obj:github_included_regions}"
978 name: "{project-name}-pypi-merge-{stream}"
979 id: gerrit-pypi-merge
981 <<: *lf_pypi_merge_builders
987 - lf-infra-gerrit-scm:
988 jenkins-ssh-credential: "{jenkins-ssh-credential}"
990 refspec: "$GERRIT_REFSPEC"
991 branch: "$GERRIT_BRANCH"
992 submodule-recursive: "{submodule-recursive}"
993 submodule-timeout: "{submodule-timeout}"
994 submodule-disable: "{submodule-disable}"
995 # merge jobs always build from tip
996 choosing-strategy: default
999 - timed: "{obj:cron}"
1001 server-name: "{gerrit-server-name}"
1003 - change-merged-event
1004 - comment-added-contains-event:
1005 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
1007 - project-compare-type: ANT
1008 project-pattern: "{project}"
1010 - branch-compare-type: ANT
1011 branch-pattern: "**/{branch}"
1012 file-paths: "{obj:gerrit_trigger_file_paths}"
1015 name: "{project-name}-pypi-merge-{stream}"
1016 id: github-pypi-merge
1018 <<: *lf_pypi_merge_builders
1021 pypi-repo: pypi-test
1025 url: "{github-url}/{github-org}/{project}"
1028 - lf-infra-github-scm:
1029 url: "{git-clone-url}{github-org}/{project}"
1031 branch: "refs/heads/{branch}"
1032 submodule-recursive: "{submodule-recursive}"
1033 submodule-timeout: "{submodule-timeout}"
1034 submodule-disable: "{submodule-disable}"
1035 choosing-strategy: default
1036 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1039 - timed: "{obj:cron}"
1040 - github-pull-request:
1041 trigger-phrase: "^remerge$"
1042 only-trigger-phrase: false
1043 status-context: "Merge"
1048 white-list: "{obj:github_pr_whitelist}"
1049 admin-list: "{obj:github_pr_admin_list}"
1050 white-list-target-branches:
1052 included-regions: "{obj:github_included_regions}"