X-Git-Url: https://gerrit.nordix.org/gitweb?a=blobdiff_plain;f=jjb%2Fglobal%2Fjjb-macros.yaml;h=c1c6abea06f14e8cfa3b0b3663c5a46360e8d26b;hb=HEAD;hp=c5cd27f8e0e41f75d8179c5d9e7e713f25f1e8b3;hpb=352a9b1f6d7cc0617e9ce7db9bbc91b287d2c053;p=infra%2Fcicd.git diff --git a/jjb/global/jjb-macros.yaml b/jjb/global/jjb-macros.yaml index c5cd27f8e..c1c6abea0 100644 --- a/jjb/global/jjb-macros.yaml +++ b/jjb/global/jjb-macros.yaml @@ -1,17 +1,4 @@ --- -# these parameters are used for infra related variables -- parameter: - name: infra-parameters - parameters: - - string: - name: JJB_GIT_REPO - default: https://git.openstack.org/openstack-infra/jenkins-job-builder - description: OpenStack JJB repo - - string: - name: JJB_VERSION - default: 2.2.1 - description: OpenStack JJB version to install - matches to LFN JJB version - # these parameters are used for setting the Gerrit Project on Nordix - parameter: name: project-parameters @@ -35,11 +22,11 @@ description: Non-interactive user to stream Gerrit Events on Nordix Gerrit - string: name: GIT_BASE_HTTPS - default: https://gerrit.nordix.org/ + default: https://gerrit.nordix.org description: HTTPS URL of Project Repo on Nordix Gerrit to clone repo - string: name: GIT_BASE_SSH - default: ssh://$GERRIT_USER@gerrit.nordix.org:29418/ + default: ssh://$GERRIT_USER@gerrit.nordix.org:29418 description: HTTPS URL of Project Repo on Nordix Gerrit to clone repo - parameter: @@ -51,13 +38,106 @@ description: Non-interactive user to stream Gerrit Events on ONAP Gerrit - string: name: GIT_BASE_HTTPS - default: https://gerrit.onap.org/r/p/ + default: https://gerrit.onap.org/r/p description: HTTPS URL to Project Repo on ONAP Gerrit to clone repo - string: name: GIT_BASE_SSH - default: ssh://$GERRIT_USER@gerrit.onap.org:29418/ + default: ssh://$GERRIT_USER@gerrit.onap.org:29418 description: SSH URL to Project Repo on ONAP Gerrit to clone repo +- parameter: + name: acumos-gerrit-parameters + parameters: + - string: + name: GERRIT_USER + default: nordix + description: Non-interactive user to stream Gerrit Events on Acumos Gerrit + - string: + name: GIT_BASE_HTTPS + default: https://gerrit.acumos.org/r/p + description: HTTPS URL to Project Repo on Acumos Gerrit to clone repo + - string: + name: GIT_BASE_SSH + default: ssh://$GERRIT_USER@gerrit.acumos.org:29418 + description: SSH URL to Project Repo on Acumos Gerrit to clone repo + +- parameter: + name: odl-gerrit-parameters + parameters: + - string: + name: GERRIT_USER + default: nordix + description: Non-interactive user to stream Gerrit Events on ODL Gerrit + - string: + name: GIT_BASE_HTTPS + default: https://git.opendaylight.org/gerrit + description: HTTPS URL to Project Repo on OODL Gerrit to clone repo + - string: + name: GIT_BASE_SSH + default: ssh://$GERRIT_USER@git.opendaylight.org:29418 + description: SSH URL to Project Repo on ODL Gerrit to clone repo + +- parameter: + name: opendev-gerrit-parameters + parameters: + - string: + name: GERRIT_USER + default: nordix + description: Non-interactive user to stream Gerrit Events on OpenDev Gerrit + - string: + name: GIT_BASE_HTTPS + default: https://review.opendev.org + description: HTTPS URL to Project Repo on OpenDev Gerrit to clone repo + - string: + name: GIT_BASE_SSH + default: ssh://$GERRIT_USER@review.opendev.org:29418 + description: SSH URL to Project Repo on OpenDev Gerrit to clone repo + +- parameter: + name: oransc-gerrit-parameters + parameters: + - string: + name: GERRIT_USER + default: nordix + description: Non-interactive user to stream Gerrit Events on ORAN-SC Gerrit + - string: + name: GIT_BASE_HTTPS + default: https://gerrit.o-ran-sc.org/r + description: HTTPS URL to Project Repo on ORAN-SC Gerrit to clone repo + - string: + name: GIT_BASE_SSH + default: ssh://$GERRIT_USER@gerrit.o-ran-sc.org:29418 + description: SSH URL to Project Repo on ORAN-SC Gerrit to clone repo + +- parameter: + name: fdio-gerrit-parameters + parameters: + - string: + name: GERRIT_USER + default: nordix + description: Non-interactive user to stream Gerrit Events on Fast Data Project Gerrit + - string: + name: GIT_BASE_HTTPS + default: https://gerrit.fd.io/r + description: HTTPS URL to Project Repo on Fast Data Project Gerrit to clone repo + - string: + name: GIT_BASE_SSH + default: ssh://$GERRIT_USER@gerrit.fd.io:29418 + description: SSH URL to Project Repo on Fast Data Project Gerrit to clone repo + +# Verify job for Geode git tags to make sure there are in agreed format +- builder: + name: 'verify-geode-tag-macro' + builders: + - shell: + !include-raw: ./verify_geode_tag.sh + +- builder: + name: 'wait-pkg-mgr-macro' + builders: + - shell: + !include-raw: ./scripts/wait-for-pkg-manager.sh + # defaults for job build history - property: name: logrotate-default @@ -68,12 +148,13 @@ artifact-days-to-keep: 60 artifact-num-to-keep: 200 -# defaults for SCM and Gerrit +# defaults for SCM, Gerrit and GitHub - scm: name: git-scm scm: - git: - url: '$GIT_BASE_HTTPS/$PROJECT' + url: '$GIT_BASE_SSH/$PROJECT' + credentials-id: '{ssh-credentials-id}' branches: - 'refs/heads/{branch}' refspec: '{refspec}' @@ -83,15 +164,19 @@ shallow-clone: false use-author: false ignore-notify: false - wipe-workspace: true + wipe-workspace: '{wipe_workspace}' prune: false + clean: + after: false + before: '{clean_before}' choosing-strategy: 'default' - scm: name: git-scm-gerrit scm: - git: - url: '$GIT_BASE_HTTPS/$PROJECT' + url: '$GIT_BASE_SSH/$PROJECT' + credentials-id: '{ssh-credentials-id}' branches: - 'refs/heads/{branch}' refspec: '{refspec}' @@ -101,11 +186,36 @@ shallow-clone: false use-author: false ignore-notify: false - wipe-workspace: true + wipe-workspace: '{wipe_workspace}' prune: false + clean: + after: false + before: '{clean_before}' choosing-strategy: 'gerrit' -# triggers for Nordix and upstream Gerrits +- scm: + name: git-scm-github + scm: + - git: + url: 'https://github.com/$PROJECT.git' + branches: + - '*/{branch}' + refspec: '{refspec}' + timeout: 15 + per-build-tag: false + skip-tag: true + shallow-clone: false + use-author: false + ignore-notify: false + wipe-workspace: '{wipe_workspace}' + prune: false + clean: + after: false + before: '{clean_before}' + choosing-strategy: 'default' + basedir: '{base_dir}' + +# triggers for Nordix Gerrit - trigger: name: nordix-gerrit-trigger-patchset-created triggers: @@ -122,7 +232,7 @@ - comment-added-contains-event: comment-contains-value: 'reverify' projects: - - project-compare-type: 'ANT' + - project-compare-type: 'REG_EXP' project-pattern: '{project}' branches: - branch-compare-type: 'ANT' @@ -155,6 +265,176 @@ - compare-type: 'ANT' pattern: '{files}' +- trigger: + name: nordix-gerrit-push-upstream + triggers: + - gerrit: + server-name: 'Nordix Gerrit' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'push-upstream' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + +- trigger: + name: nordix-gerrit-patchset-created-or-push-upstream + triggers: + - gerrit: + server-name: 'Nordix Gerrit' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'push-upstream' + - patchset-created-event: + exclude-drafts: true + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + +# triggers for ONAP Gerrit +- trigger: + name: onap-gerrit-trigger-change-merged + triggers: + - gerrit: + server-name: 'ONAP Gerrit' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + silent: true + silent-start: true + +# triggers for Acumos Gerrit +- trigger: + name: acumos-gerrit-trigger-change-merged + triggers: + - gerrit: + server-name: 'Acumos Gerrit' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + silent: true + silent-start: true + +# triggers for ODL Gerrit +- trigger: + name: odl-gerrit-trigger-change-merged + triggers: + - gerrit: + server-name: 'ODL Gerrit' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + silent: true + silent-start: true + +# triggers for OpenDev Gerrit +- trigger: + name: opendev-gerrit-trigger-change-merged + triggers: + - gerrit: + server-name: 'OpenDev Gerrit' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + silent: true + silent-start: true + +# triggers for ORANSC Gerrit +- trigger: + name: oransc-gerrit-trigger-change-merged + triggers: + - gerrit: + server-name: 'ORANSC Gerrit' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + silent: true + silent-start: true + +# triggers for Fast Data Project Gerrit +- trigger: + name: fdio-gerrit-trigger-change-merged + triggers: + - gerrit: + server-name: 'FDio Gerrit' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + silent: true + silent-start: true + # wrappers to use for jobs - wrapper: name: nordixinfra-jjb-creds-wrapper @@ -164,3 +444,89 @@ credential-id: nordixinfra-jjb-creds username: JJB_USERNAME password: JJB_USERTOKEN + +# wrappers to use for jobs +- wrapper: + name: nordixinfra-harbor-creds-wrapper + wrappers: + - credentials-binding: + - username-password-separated: + credential-id: nordix-cicd-harbor-credentials + username: HARBOR_USERNAME + password: HARBOR_PASSWORD + +# wrappers to use for jobs +- wrapper: + name: nordixinfra-eiffel-github-token + wrappers: + - credentials-binding: + - username-password-separated: + credential-id: nordixinfra-eiffel-username-personal-access-token + username: NORDIXINFRA_GITHUB_USERNAME + password: NORDIXINFRA_GITHUB_TOKEN + +# wrappers to use for jobs +- wrapper: + name: nordix-gerrit-http-api-token + wrappers: + - credentials-binding: + - username-password-separated: + credential-id: nordixinfra-nordix-gerrit-http-api-token + username: GERRIT_USER + password: GERRIT_API_KEY + +# timeout wrapper to use for jobs +- wrapper: + name: build-timeout + wrappers: + - timeout: + timeout: '{timeout}' + timeout-var: 'BUILD_TIMEOUT' + fail: true + +# wrapper to fix jenkins build workspace permissions +- wrapper: + name: fix-workspace-permissions + wrappers: + - pre-scm-buildstep: + failOnError: true + buildsteps: + - shell: | + #!/bin/bash + sudo chown -R $USER:$USER $WORKSPACE || exit 1 + +- publisher: + name: notify-slack + publishers: + - slack: + room: '{slack-channel}' + notify-start: '{notify-start}' + notify-success: '{notify-success}' + notify-failure: '{notify-failure}' + notify-back-to-normal: '{notify-back-to-normal}' + +# property to discard old builds +- property: + name: logrotate + properties: + - build-discarder: + days-to-keep: 30 + num-to-keep: 100 + artifact-days-to-keep: 30 + artifact-num-to-keep: 100 + +- property: + name: est-ms-teams-rebase-jobs-webhook + properties: + - office-365-connector: + webhooks: + - url: "${EST_MS_TEAMS_NORDIX_REBASE_JOBS_WEBHOOK}" + name: full + start-notification: true + notify-success: true + notify-aborted: true + notify-not-built: true + notify-unstable: true + notify-failure: true + notify-back-to-normal: true + notify-repeated-failure: true