--- - job-template: name: '{project-name}-release-java' # Job template for producing a release candidate by creating a staging repo # in Nexus. project-type: freestyle node: '{build-node}' jdk: '{jdk}' properties: - opendaylight-infra-properties: build-days-to-keep: 30 parameters: - opendaylight-infra-parameters: os-cloud: '{os-cloud}' project: '{project}' branch: '{branch}' refspec: 'refs/heads/{branch}' artifacts: '{archive-artifacts}' - build-tag - stage-id-parameter: stage-id: '{stage-id}' scm: - git: credentials-id: 'opendaylight-jenkins-ssh' url: '$GIT_BASE' branches: - '$BUILD_TAG' skip-tag: true shallow-clone: true wipe-workspace: true wrappers: - opendaylight-infra-wrappers: build-timeout: '{build-timeout}' builders: - wipe-org-opendaylight-repo - jacoco-nojava-workaround - provide-maven-settings: global-settings-file: 'odl-global-settings' settings-file: 'autorelease-settings' - maven-target: maven-version: 'mvn33' pom: 'pom.xml' goals: > clean deploy -V -B -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Djenkins -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage java-opts: - '-Xmx1024m -XX:MaxPermSize=256m' settings: 'autorelease-settings' settings-type: cfp global-settings: 'odl-global-settings' global-settings-type: cfp - releng-stage-release publishers: - email-notification: email-recipients: '{email-recipients}' email-prefix: '[releng]' - opendaylight-infra-shiplogs: maven-version: 'mvn33' - job-template: name: '{project-name}-publish-p2repo' # Job template for publishing a p2 repo given a URL to a zipped p2repo. project-type: freestyle node: '{build-node}' jdk: '{jdk}' parameters: - opendaylight-infra-parameters: os-cloud: '{os-cloud}' project: '{project}' branch: '{branch}' refspec: 'refs/heads/{branch}' artifacts: '{archive-artifacts}' - p2zip-parameter wrappers: - opendaylight-infra-wrappers: build-timeout: '{build-timeout}' builders: - wipe-org-opendaylight-repo - jacoco-nojava-workaround - releng-fetch-p2zip-if-necessary: maven-version: 'mvn33' settings: '{mvn-settings}' global-settings: 'odl-global-settings' - releng-generate-p2pom - maven-target: maven-version: 'mvn33' pom: 'pom.xml' goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r' settings: '{mvn-settings}' settings-type: cfp global-settings: 'odl-global-settings' global-settings-type: cfp - releng-update-p2composite-metadata: maven-version: 'mvn33' settings: '{mvn-settings}' global-settings: 'odl-global-settings' publishers: - email-notification: email-recipients: '{email-recipients}' email-prefix: '[releng]' - opendaylight-infra-shiplogs: maven-version: 'mvn33' # Generic tox-based verify action - tox_builder_verify: &tox_builder_verify name: tox_builder_verify # Required Variables: # branch: git branch (eg. stable/boron or master) # toxdir: directory containing the project's tox.ini relative to # the workspace. Empty works if tox.ini is at project root. # Note that stream value is not needed. project-type: freestyle node: '{build-node}' concurrent: true properties: - opendaylight-infra-properties: build-days-to-keep: 7 parameters: - opendaylight-infra-parameters: os-cloud: '{os-cloud}' project: '{project}' branch: '{branch}' refspec: 'refs/heads/{branch}' artifacts: '{archive-artifacts}' scm: - git: credentials-id: 'opendaylight-jenkins-ssh' url: '$GIT_BASE' basedir: 'repo' refspec: '$GERRIT_REFSPEC' branches: - 'origin/$GERRIT_BRANCH' skip-tag: true choosing-strategy: 'gerrit' submodule: recursive: true wrappers: - opendaylight-infra-wrappers: build-timeout: '{build-timeout}' triggers: - gerrit-trigger-patch-submitted: server: '{server-name}' project: '{project}' branch: '{branch}' files: '{toxdir}/**' builders: - shell: | virtualenv $WORKSPACE/venv-tox source $WORKSPACE/venv-tox/bin/activate pip install --upgrade pip pip install --upgrade tox argparse pip freeze cd $WORKSPACE/repo/{toxdir} tox publishers: - email-notification: email-recipients: '{email-recipients}' email-prefix: '[{project}]' - opendaylight-infra-shiplogs: maven-version: 'mvn33' - job-template: name: '{project-name}-verify-tox-{stream}' # Job template for verify jobs executing tox envlist # # The purpose of this job template is to run tox for projects using this # template. # # Required Variables: # stream: release stream (eg. stable-lithium or beryllium) # branch: git branch (eg. stable/lithium or master) # toxdir: directory containing the project's tox.ini relative to # the workspace. Empty works if tox.ini is at project root. build-node: centos7-java-builder-2c-4g <<: *tox_builder_verify # Specification for projects outside release cycle, to avoid referring a stream. # This is useful mailny for integration-test-jobs, which defines streams for Integration/Distribution, # but the tox job is related to Integration/Test only. - job-template: name: '{project-name}-verify-tox-master' # Job template for verify jobs executing tox envlist # # The purpose of this job template is to run tox for projects using this # template. # # Required Variables: # toxdir: directory containing the project's tox.ini relative to # the workspace. Empty works if tox.ini is at project root. build-node: centos7-java-builder-2c-4g branch: master <<: *tox_builder_verify # Python (pep8) specific, project should migrate to {project-name}-verify-tox-{stream} - job-template: name: '{project-name}-verify-python-{stream}' # Job template for python verify jobs # # The purpose of this job template is to run tox for projects using this # template. # # Required Variables: # stream: release stream (eg. stable-lithium or beryllium) # branch: git branch (eg. stable/lithium or master) # toxdir: directory containing the project's tox.ini relative to # the workspace. Empty works if tox.ini is at project root. build-node: centos7-java-builder-2c-4g <<: *tox_builder_verify - job-template: name: '{project-name}-merge-rtd-{stream}' # Template for ReadTheDocs triggering project-type: freestyle node: '{build-node}' concurrent: false parameters: - opendaylight-infra-parameters: os-cloud: '{os-cloud}' project: '{project}' branch: '{branch}' refspec: 'refs/heads/{branch}' artifacts: '{archive-artifacts}' wrappers: - opendaylight-infra-wrappers: build-timeout: '{build-timeout}' triggers: - gerrit-trigger-patch-merged: server-name: '{server-name}' name: '{project}' branch: '{branch}' builders: - shell: | curl -X POST https://readthedocs.org/build/{rtdproject} publishers: - email-notification: email-recipients: '{email-recipients}' email-prefix: '[{project}]' - opendaylight-infra-shiplogs: maven-version: 'mvn33' # Node related - job-template: name: '{project-name}-verify-node-{stream}' # Job template for python verify jobs # # The purpose of this job template is to run node tests for projects using # this template. It uses python virtualenv to install nodeenv and create a # virtualenv for nodejs. # # Required Variables: # stream: release stream (eg. boron or carbon) # branch: git branch (eg. stable/boron or master) # nodedir: directory of nodejs project to run node test against # nodever: version of node to install in virtualenv project-type: freestyle node: '{build-node}' concurrent: true properties: - opendaylight-infra-properties: build-days-to-keep: 7 parameters: - opendaylight-infra-parameters: os-cloud: '{os-cloud}' project: '{project}' branch: '{branch}' refspec: 'refs/heads/{branch}' artifacts: '{archive-artifacts}' scm: - git: credentials-id: 'opendaylight-jenkins-ssh' url: '$GIT_BASE' basedir: 'repo' refspec: '$GERRIT_REFSPEC' branches: - 'origin/$GERRIT_BRANCH' skip-tag: true choosing-strategy: 'gerrit' wrappers: - opendaylight-infra-wrappers: build-timeout: '{build-timeout}' triggers: - gerrit-trigger-patch-submitted: server: '{server-name}' project: '{project}' branch: '{branch}' files: '{nodedir}/**' builders: - shell: | #!/bin/bash # Prepare Python virtualenv $WORKSPACE/venv-python source $WORKSPACE/venv-python/bin/activate pip install --upgrade pip pip install --upgrade tox argparse nodeenv pip freeze # Prepare node nodeenv --node={nodever} --prebuilt $WORKSPACE/venv-node source $WORKSPACE/venv-node/bin/activate cd $WORKSPACE/repo/{nodedir} npm install npm test publishers: - email-notification: email-recipients: '{email-recipients}' email-prefix: '[{project}]' - opendaylight-infra-shiplogs: maven-version: 'mvn33'