| --- |
| |
| - job_boiler_plate: &job_boiler_plate |
| name: job-boiler-plate |
| |
| project-type: freestyle |
| node: '{build-node}' |
| |
| ###################### |
| # Default parameters # |
| ###################### |
| |
| branch: master |
| git-url: '$GIT_URL/$GERRIT_PROJECT' |
| |
| ##################### |
| # Job Configuration # |
| ##################### |
| |
| properties: |
| - lf-infra-properties: |
| project: '{project}' |
| build-days-to-keep: '{build-days-to-keep}' |
| #- github: |
| # url: '{git-url}/{github-org}/{project}' |
| |
| parameters: |
| - lf-infra-parameters: |
| project: '{project}' |
| branch: '{stream}' |
| stream: '{stream}' |
| lftools-version: '{lftools-version}' |
| |
| wrappers: |
| - lf-infra-wrappers: |
| build-timeout: '{build-timeout}' |
| jenkins-ssh-credential: '{jenkins-ssh-credential}' |
| |
| |
| - verify_boiler_plate: &verify_boiler_plate |
| name: verify_boiler_plate |
| |
| concurrent: true |
| |
| scm: |
| - onf-infra-gerrit-scm: |
| git-url: '{git-url}' |
| refspec: '$GERRIT_REFSPEC' |
| branch: '$GERRIT_BRANCH' |
| submodule-disable: '{submodule-disable}' |
| submodule-recursive: '{submodule-recursive}' |
| submodule-timeout: '{submodule-timeout}' |
| choosing-strategy: gerrit |
| jenkins-ssh-credential: '{jenkins-ssh-credential}' |
| basedir: "$WORKSPACE" |
| |
| triggers: |
| - gerrit: |
| #server-name: '{gerrit-server-name}' |
| server-name: 'ONOS Project Gerrit' |
| #trigger-on: '{obj:gerrit_verify_triggers}' |
| trigger-on: |
| - patchset-created-event: |
| exclude-drafts: true |
| exclude-trivial-rebase: false |
| exclude-no-code-change: true |
| - draft-published-event: true |
| - comment-added-contains-event: |
| comment-contains-value: '(?i)^.*recheck$' |
| projects: |
| - project-compare-type: PLAIN |
| project-pattern: '{project}' |
| branches: |
| - branch-compare-type: ANT |
| branch-pattern: '**/{stream}' |
| #file-paths: '{obj:gerrit_trigger_file_paths}' |
| |
| - weekly_boiler_plate: &weekly_boiler_plate |
| name: weekly_boiler_plate |
| |
| concurrent: true |
| |
| scm: |
| - onf-infra-gerrit-scm: |
| git-url: '{git-url}' |
| refspec: '$GERRIT_REFSPEC' |
| branch: '$GERRIT_BRANCH' |
| submodule-disable: '{submodule-disable}' |
| submodule-recursive: '{submodule-recursive}' |
| submodule-timeout: '{submodule-timeout}' |
| choosing-strategy: gerrit |
| jenkins-ssh-credential: '{jenkins-ssh-credential}' |
| basedir: "$WORKSPACE" |
| |
| triggers: |
| - timed: '@weekly' |
| |
| # FIXME - there is a Slack integration plugin in 2.0.3 |
| publishers: |
| - raw: |
| xml: | |
| <jenkins.plugins.slack.SlackNotifier plugin="slack@2.3"> |
| <baseUrl/> |
| <teamDomain/> |
| <authToken/> |
| <authTokenCredentialId>slack-token</authTokenCredentialId> |
| <botUser>false</botUser> |
| <room>build-status</room> |
| <startNotification>false</startNotification> |
| <notifySuccess>false</notifySuccess> |
| <notifyAborted>true</notifyAborted> |
| <notifyNotBuilt>true</notifyNotBuilt> |
| <notifyUnstable>true</notifyUnstable> |
| <notifyRegression>true</notifyRegression> |
| <notifyFailure>true</notifyFailure> |
| <notifyBackToNormal>true</notifyBackToNormal> |
| <notifyRepeatedFailure>false</notifyRepeatedFailure> |
| <includeTestSummary>false</includeTestSummary> |
| <includeFailedTests>false</includeFailedTests> |
| <commitInfoChoice>AUTHORS_AND_TITLES</commitInfoChoice> |
| <includeCustomMessage>false</includeCustomMessage> |
| <customMessage/> |
| </jenkins.plugins.slack.SlackNotifier> |
| |
| |
| |
| - weekly_boiler_plate_with_slack: &weekly_boiler_plate_with_slack |
| name: weekly_boiler_plate_with_slack |
| |
| concurrent: true |
| |
| scm: |
| - onf-infra-gerrit-scm: |
| git-url: '{git-url}' |
| refspec: '$GERRIT_REFSPEC' |
| branch: '$GERRIT_BRANCH' |
| submodule-disable: '{submodule-disable}' |
| submodule-recursive: '{submodule-recursive}' |
| submodule-timeout: '{submodule-timeout}' |
| choosing-strategy: gerrit |
| jenkins-ssh-credential: '{jenkins-ssh-credential}' |
| basedir: "$WORKSPACE" |
| |
| triggers: |
| - timed: '@weekly' |
| |
| # FIXME - there is a Slack integration plugin in 2.0.3 |
| publishers: |
| - raw: |
| xml: | |
| <jenkins.plugins.slack.SlackNotifier plugin="slack@2.3"> |
| <baseUrl/> |
| <teamDomain/> |
| <authToken/> |
| <authTokenCredentialId>slack-token</authTokenCredentialId> |
| <botUser>false</botUser> |
| <room>build-status</room> |
| <startNotification>false</startNotification> |
| <notifySuccess>false</notifySuccess> |
| <notifyAborted>true</notifyAborted> |
| <notifyNotBuilt>true</notifyNotBuilt> |
| <notifyUnstable>true</notifyUnstable> |
| <notifyRegression>true</notifyRegression> |
| <notifyFailure>true</notifyFailure> |
| <notifyBackToNormal>true</notifyBackToNormal> |
| <notifyRepeatedFailure>false</notifyRepeatedFailure> |
| <includeTestSummary>false</includeTestSummary> |
| <includeFailedTests>false</includeFailedTests> |
| <commitInfoChoice>AUTHORS_AND_TITLES</commitInfoChoice> |
| <includeCustomMessage>false</includeCustomMessage> |
| <customMessage/> |
| </jenkins.plugins.slack.SlackNotifier> |
| |
| - release_build_boiler_plate: &release_build_boiler_plate |
| name: release_build_boiler_plate |
| |
| concurrent: true |
| |
| parameters: |
| - lf-infra-parameters: |
| project: '{project}' |
| branch: '{stream}' |
| stream: '{stream}' |
| lftools-version: '{lftools-version}' |
| |
| - string: |
| name: ONOS_VERSION |
| default: '1.15' |
| description: 'Version tag of ONOS to build' |
| |
| - string: |
| name: ONOS_NEXT_VERSION |
| default: '1.15.0-SNAPSHOT' |
| description: 'Version of ONOS to reset tree to' |
| |
| scm: |
| - onf-infra-gerrit-scm: |
| git-url: '{git-url}' |
| refspec: '$GERRIT_REFSPEC' |
| branch: '$GERRIT_BRANCH' |
| submodule-disable: '{submodule-disable}' |
| submodule-recursive: '{submodule-recursive}' |
| submodule-timeout: '{submodule-timeout}' |
| choosing-strategy: gerrit |
| jenkins-ssh-credential: '{jenkins-ssh-credential}' |
| basedir: "$WORKSPACE" |
| |
| - docker_build_boiler_plate: &docker_build_boiler_plate |
| name: release_build_boiler_plate |
| |
| concurrent: true |
| |
| parameters: |
| - lf-infra-parameters: |
| project: '{project}' |
| branch: '{stream}' |
| stream: '{stream}' |
| lftools-version: '{lftools-version}' |
| |
| - string: |
| name: ONOS_TAG |
| default: '' |
| description: 'Tag of ONOS to build' |
| |
| scm: |
| - onf-infra-gerrit-scm: |
| git-url: '{git-url}' |
| refspec: '$GERRIT_REFSPEC' |
| branch: '$GERRIT_BRANCH' |
| submodule-disable: '{submodule-disable}' |
| submodule-recursive: '{submodule-recursive}' |
| submodule-timeout: '{submodule-timeout}' |
| choosing-strategy: gerrit |
| jenkins-ssh-credential: '{jenkins-ssh-credential}' |
| basedir: "$WORKSPACE" |
| |
| - job-template: |
| #default name is global |
| name: '{project-name}-{stream}-verify' |
| |
| # Job template for Java verify jobs |
| # |
| # The purpose of this job templte is to run "maven clean install" for |
| # projects using this template. |
| # |
| # Required Variables: |
| # branch: git branch (eg. master) |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *verify_boiler_plate |
| |
| builders: |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: onos-verify.sh |
| # JJB 1.6.2 does not support parameter expansion on filename? |
| #- shell: !include-raw-escape: {project-name}-verify.sh |
| |
| - job-template: |
| #default name is global |
| name: '{project-name}-{stream}-bazel-verify' |
| |
| # Job template for Java verify jobs |
| # |
| # Required Variables: |
| # branch: git branch (eg. master) |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *verify_boiler_plate |
| |
| builders: |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: install-bazel.sh |
| - shell: !include-raw-escape: onos-bazel-verify.sh |
| # JJB 1.6.2 does not support parameter expansion on filename? |
| #- shell: !include-raw-escape: {project-name}-verify.sh |
| |
| # workaround for lack of parameter expansion support in shell: (see above) |
| - job-template: |
| #default name is global |
| name: 'onos-yang-tools-{stream}-verify' |
| |
| # Job template for Java verify jobs |
| # |
| # The purpose of this job templte is to run "maven clean install" for |
| # projects using this template. |
| # |
| # Required Variables: |
| # branch: git branch (eg. master) |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *verify_boiler_plate |
| |
| builders: |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: onos-yang-tools-verify.sh |
| |
| - job-template: |
| #default name is global |
| name: 'onos-yang-tools-release-build' |
| |
| # Job template for ONOS Yang tools release jobs |
| # |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| parameters: |
| - lf-infra-parameters: |
| project: '{project}' |
| branch: '{stream}' |
| stream: '{stream}' |
| lftools-version: '{lftools-version}' |
| |
| - string: |
| name: YANGTOOLS_VERSION |
| default: '2.4.4' |
| description: 'Version tag of ONOS Yang tools to build and release' |
| |
| - string: |
| name: YANGTOOLS_NEXT_VERSION |
| default: '2.5-SNAPSHOT' |
| description: 'Version of ONOS Yang tools to reset tree to afterwards' |
| |
| scm: |
| - onf-infra-gerrit-scm: |
| git-url: '{git-url}' |
| refspec: '$GERRIT_REFSPEC' |
| branch: '$GERRIT_BRANCH' |
| submodule-disable: '{submodule-disable}' |
| submodule-recursive: '{submodule-recursive}' |
| submodule-timeout: '{submodule-timeout}' |
| choosing-strategy: gerrit |
| jenkins-ssh-credential: '{jenkins-ssh-credential}' |
| basedir: "$WORKSPACE" |
| |
| builders: |
| - lf-provide-maven-settings: |
| settings-file: 'release-build-maven-settings' |
| global-settings-file: 'release-build-maven-settings' |
| - config-file-provider: |
| files: |
| - file-id: 'onos-build-credentials' |
| target: 'onos-build-credentials' |
| variable: 'CREDENTIALS_FILE' |
| - file-id: 'buck-config-local' |
| target: '.buckconfig.local' |
| variable: 'BUCK_CONFIG_FILE' |
| - file-id: 'gpg-key' |
| target: 'jenkins.key' |
| variable: 'GPG_KEY_FILE' |
| - file-id: 'release-build-maven-settings' |
| target: 'settings.xml' |
| variable: 'MAVEN_SETTINGS' |
| - file-id: 'api-onosproject-ssh-key' |
| target: 'id_rsa.pub' |
| variable: 'API_ONOSPROJECT_SSH_KEY' |
| |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: onos-yang-tools-release-build.sh |
| # JJB 1.6.2 does not support parameter expansion on filename? |
| #- shell: !include-raw-escape: {project-name}-verify.sh |
| |
| |
| # workaround for lack of parameter expansion support in shell: (see above) |
| - job-template: |
| #default name is global |
| name: 'onos-app-samples-{stream}-verify' |
| |
| # Job template for Java verify jobs |
| # |
| # The purpose of this job templte is to run "maven clean install" for |
| # projects using this template. |
| # |
| # Required Variables: |
| # branch: git branch (eg. master) |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *verify_boiler_plate |
| |
| builders: |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: onos-app-samples-verify.sh |
| |
| # workaround for lack of parameter expansion support in shell: (see above) |
| - job-template: |
| #default name is global |
| name: 'onos-loxi-{stream}-verify' |
| |
| # Job template for Java verify jobs |
| # |
| # The purpose of this job templte is to run "maven clean install" for |
| # projects using this template. |
| # |
| # Required Variables: |
| # branch: git branch (eg. master) |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *verify_boiler_plate |
| |
| builders: |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: onos-loxi-verify.sh |
| |
| - job-template: |
| #default name is global |
| name: 'onos-{stream}-release-build-verify' |
| |
| # Job template for Java release check jobs |
| # |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *weekly_boiler_plate |
| |
| builders: |
| - config-file-provider: |
| files: |
| - file-id: 'gpg-key' |
| target: 'jenkins.key' |
| variable: 'GPG_KEY_FILE' |
| |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: install-bazel.sh |
| - shell: !include-raw-escape: onos-release-build-verify.sh |
| # JJB 1.6.2 does not support parameter expansion on filename? |
| #- shell: !include-raw-escape: {project-name}-verify.sh |
| |
| - job-template: |
| #default name is global |
| name: 'onos-release-build' |
| |
| # Job template for Java release jobs |
| # |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *release_build_boiler_plate |
| |
| builders: |
| - lf-provide-maven-settings: |
| settings-file: 'release-build-maven-settings' |
| global-settings-file: 'release-build-maven-settings' |
| - config-file-provider: |
| files: |
| - file-id: 'onos-build-credentials' |
| target: 'onos-build-credentials' |
| variable: 'CREDENTIALS_FILE' |
| - file-id: 'buck-config-local' |
| target: '.buckconfig.local' |
| variable: 'BUCK_CONFIG_FILE' |
| - file-id: 'gpg-key' |
| target: 'jenkins.key' |
| variable: 'GPG_KEY_FILE' |
| - file-id: 'release-build-maven-settings' |
| target: 'settings.xml' |
| variable: 'MAVEN_SETTINGS' |
| - file-id: 'api-onosproject-ssh-key' |
| target: 'id_rsa.pub' |
| variable: 'API_ONOSPROJECT_SSH_KEY' |
| |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: onos-release-build.sh |
| # JJB 1.6.2 does not support parameter expansion on filename? |
| #- shell: !include-raw-escape: {project-name}-verify.sh |
| |
| - job-template: |
| #default name is global |
| name: 'onos-bazel-release-build' |
| |
| # Job template for Java release jobs |
| # |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *release_build_boiler_plate |
| |
| builders: |
| - lf-provide-maven-settings: |
| settings-file: 'release-build-maven-settings' |
| global-settings-file: 'release-build-maven-settings' |
| - config-file-provider: |
| files: |
| - file-id: 'onos-build-credentials' |
| target: 'onos-build-credentials' |
| variable: 'CREDENTIALS_FILE' |
| - file-id: 'gpg-key' |
| target: 'jenkins.key' |
| variable: 'GPG_KEY_FILE' |
| - file-id: 'release-build-maven-settings' |
| target: 'settings.xml' |
| variable: 'MAVEN_SETTINGS' |
| - file-id: 'api-onosproject-ssh-key' |
| target: 'id_rsa.pub' |
| variable: 'API_ONOSPROJECT_SSH_KEY' |
| |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: install-bazel.sh |
| - shell: !include-raw-escape: onos-bazel-release-build.sh |
| # JJB 1.6.2 does not support parameter expansion on filename? |
| #- shell: !include-raw-escape: {project-name}-verify.sh |
| |
| - job-template: |
| #default name is global |
| name: 'onos-docker-build' |
| |
| # Job template for Docker jobs |
| # |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *docker_build_boiler_plate |
| |
| builders: |
| - lf-provide-maven-settings: |
| settings-file: 'release-build-maven-settings' |
| global-settings-file: 'release-build-maven-settings' |
| - config-file-provider: |
| files: |
| - file-id: 'onos-build-credentials' |
| target: 'onos-build-credentials' |
| variable: 'CREDENTIALS_FILE' |
| - file-id: 'buck-config-local' |
| target: '.buckconfig.local' |
| variable: 'BUCK_CONFIG_FILE' |
| - file-id: 'gpg-key' |
| target: 'jenkins.key' |
| variable: 'GPG_KEY_FILE' |
| - file-id: 'release-build-maven-settings' |
| target: 'settings.xml' |
| variable: 'MAVEN_SETTINGS' |
| - file-id: 'api-onosproject-ssh-key' |
| target: 'id_rsa.pub' |
| variable: 'API_ONOSPROJECT_SSH_KEY' |
| |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: onos-docker-build.sh |
| # JJB 1.6.2 does not support parameter expansion on filename? |
| #- shell: !include-raw-escape: {project-name}-verify.sh |
| |
| - job-template: |
| #default name is global |
| name: 'onos-{stream}-maven-verify' |
| |
| <<: *job_boiler_plate |
| # yamllint disable-line rule:key-duplicates |
| <<: *weekly_boiler_plate_with_slack |
| |
| builders: |
| #put shell scripts in file then make sure shell check is installed on verify vms |
| - shell: !include-raw-escape: onos-maven-verify.sh |
| # JJB 1.6.2 does not support parameter expansion on filename? |
| #- shell: !include-raw-escape: {project-name}-verify.sh |
| |
| - project: |
| name: onos |
| project-name: onos |
| project: onos |
| |
| build-timeout: '30' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: |
| - 'onos-1.10' |
| - 'onos-1.11' |
| - 'onos-1.12' |
| - 'onos-1.13' |
| - 'onos-1.14' |
| |
| jobs: |
| - '{project-name}-{stream}-verify' |
| |
| - project: |
| name: onos-bazel |
| project-name: onos-bazel |
| project: onos |
| |
| build-timeout: '30' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: |
| - 'master' |
| - 'onos-1.14' |
| - 'onos-1.15' |
| - 'onos-2.0' |
| - 'onos-2.1' |
| - 'onos-2.2' |
| - 'onos-2.3' |
| - 'onos-2.4' |
| - 'upan-connect18' |
| - 'upan-connect18-1.14' |
| |
| jobs: |
| - '{project-name}-{stream}-bazel-verify' |
| |
| - project: |
| name: onos-yang-tools |
| project-name: onos-yang-tools |
| project: onos-yang-tools |
| |
| build-timeout: '30' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: |
| - 'master' |
| |
| jobs: |
| - 'onos-yang-tools-{stream}-verify' |
| |
| - project: |
| name: onos-yang-tools-release-build |
| project-name: onos-yang-tools-release-build |
| project: onos-yang-tools |
| |
| build-timeout: '240' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: 'master' |
| |
| jobs: |
| - 'onos-yang-tools-release-build' |
| |
| |
| - project: |
| name: onos-app-samples |
| project-name: onos-app-samples |
| project: onos-app-samples |
| |
| build-timeout: '30' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: |
| - 'master' |
| |
| jobs: |
| - 'onos-app-samples-{stream}-verify' |
| |
| - project: |
| name: onos-loxi |
| project-name: onos-loxi |
| project: onos-loxi |
| |
| build-timeout: '30' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: |
| - 'master' |
| |
| jobs: |
| - 'onos-loxi-{stream}-verify' |
| |
| - project: |
| name: onos-release |
| project-name: onos-release |
| project: onos |
| |
| build-timeout: '240' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: |
| - 'master' |
| - 'onos-2.4' |
| - 'onos-2.2' |
| - 'onos-1.15' |
| - 'onos-1.12' |
| |
| jobs: |
| - 'onos-{stream}-release-build-verify' |
| |
| - project: |
| name: onos-maven-verify |
| project-name: onos-maven-verify |
| project: onos |
| |
| build-timeout: '30' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: |
| - 'onos-1.12' |
| |
| jobs: |
| - 'onos-{stream}-maven-verify' |
| |
| - project: |
| name: onos-release-build |
| project-name: onos-release-build |
| project: onos |
| |
| build-timeout: '240' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: 'master' |
| |
| jobs: |
| - 'onos-release-build' |
| |
| - project: |
| name: onos-bazel-release-build |
| project-name: onos-bazel-release-build |
| project: onos |
| |
| build-timeout: '240' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: 'master' |
| |
| jobs: |
| - 'onos-bazel-release-build' |
| |
| - project: |
| name: onos-docker-build |
| project-name: onos-docker-build |
| project: onos |
| |
| build-timeout: '90' |
| build-node: 'ubuntu16.04-basebuild-8c-15g' |
| |
| stream: 'master' |
| |
| jobs: |
| - 'onos-docker-build' |
| |