X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng-templates.yaml;h=89d8ec83bda8b46236b341ab742bb7dfb40830ab;hb=2dd50188862522fdbd3f0066336e3855ee39796d;hp=3b6dd91265e289a3ae1a2e6b2589abbdae569daf;hpb=c8e2080ff26c282ebba21fe4beb6a44df96ca5bd;p=releng%2Fbuilder.git diff --git a/jjb/releng-templates.yaml b/jjb/releng-templates.yaml index 3b6dd9126..89d8ec83b 100644 --- a/jjb/releng-templates.yaml +++ b/jjb/releng-templates.yaml @@ -1,26 +1,29 @@ - job-template: - name: '{name}-release-java' + name: '{project-name}-release-java' # Job template for producing a release candidate by creating a staging repo # in Nexus. project-type: maven - node: dynamic_merge + node: '{build-node}' jdk: '{jdk}' logrotate: daysToKeep: '30' parameters: - - project-parameter: + - opendaylight-infra-parameters: project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' - build-tag - stage-id-parameter: stage-id: '{stage-id}' scm: - git: - credentials-id: '{ssh-credentials}' + credentials-id: 'opendaylight-jenkins-ssh' url: '$GIT_BASE' branches: - '$BUILD_TAG' @@ -29,76 +32,91 @@ wipe-workspace: true wrappers: - - build-timeout - - ssh-agent-credentials: - users: - - '{ssh-credentials}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' prebuilders: - wipe-org-opendaylight-repo - jacoco-nojava-workaround - provide-maven-settings: - global-settings-file: '{odl-global-settings}' - settings-file: '{autorelease-settings}' + global-settings-file: 'odl-global-settings' + settings-file: 'autorelease-settings' maven: maven-name: '{mvn33}' root-pom: 'pom.xml' - goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Djenkins -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage' + 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' maven-opts: '-Xmx1024m -XX:MaxPermSize=256m' - settings: '{autorelease-settings}' - global-settings: '{odl-global-settings}' + settings: 'autorelease-settings' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp post-step-run-condition: UNSTABLE postbuilders: - releng-stage-release publishers: - - archive-artifacts: - artifacts: '*.log' - email-notification: email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: '{mvn33}' - job-template: - name: '{name}-publish-p2repo' + name: '{project-name}-publish-p2repo' # Job template for publishing a p2 repo given a URL to a zipped p2repo. project-type: maven - node: dynamic_merge + node: '{build-node}' jdk: '{jdk}' parameters: - - project-parameter: + - opendaylight-infra-parameters: project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' - p2zip-parameter + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + prebuilders: - 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: maven-name: '{mvn33}' root-pom: 'pom.xml' - goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r' - settings: '{project-settings}' - global-settings: '{odl-global-settings}' + goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r' + settings: '{mvn-settings}' + global-settings: 'odl-global-settings' post-step-run-condition: UNSTABLE postbuilders: - releng-update-p2composite-metadata: maven-version: '{mvn33}' - settings: '{project-settings}' - global-settings: '{odl-global-settings}' + settings: '{mvn-settings}' + global-settings: 'odl-global-settings' publishers: - email-notification: email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: '{mvn33}' + +# Python Related - job-template: - name: '{name}-verify-python-{stream}' + name: '{project-name}-verify-python-{stream}' # Job template for python verify jobs # @@ -109,10 +127,10 @@ # 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. + # the workspace. Empty works if tox.ini is at project root. project-type: freestyle - node: dynamic_verify + node: '{build-node}' concurrent: true logrotate: @@ -122,16 +140,15 @@ artifactNumToKeep: '-1' parameters: - - project-parameter: - project: '{project}' - - gerrit-parameters: + - opendaylight-infra-parameters: project: '{project}' branch: '{branch}' refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' scm: - git: - credentials-id: '{ssh-credentials}' + credentials-id: 'opendaylight-jenkins-ssh' url: '$GIT_BASE' basedir: 'repo' refspec: '$GERRIT_REFSPEC' @@ -141,10 +158,8 @@ choosing-strategy: 'gerrit' wrappers: - - build-timeout - - ssh-agent-credentials: - users: - - '{ssh-credentials}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' triggers: - gerrit: @@ -182,28 +197,27 @@ publishers: - email-notification: email-prefix: '[{project}]' + - opendaylight-infra-shiplogs: + maven-version: '{mvn33}' - job-template: - name: '{name}-merge-rtd-{stream}' + name: '{project-name}-merge-rtd-{stream}' # Template for ReadTheDocs triggering project-type: freestyle - node: dynamic_verify + node: '{build-node}' concurrent: false parameters: - - project-parameter: - project: '{project}' - - gerrit-parameters: + - opendaylight-infra-parameters: project: '{project}' branch: '{branch}' refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' wrappers: - - build-timeout - - ssh-agent-credentials: - users: - - '{ssh-credentials}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' triggers: - gerrit-trigger-patch-merged: @@ -217,3 +231,100 @@ publishers: - email-notification: 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. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium 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 + + logrotate: + daysToKeep: '7' + numToKeep: '-1' + artifactDaysToKeep: '-1' + artifactNumToKeep: '-1' + + parameters: + - opendaylight-infra-parameters: + 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: + server-name: 'OpenDaylight' + trigger-on: + - patchset-created-event: + exclude-drafts: 'true' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: '{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-prefix: '[{project}]' + - opendaylight-infra-shiplogs: + maven-version: '{mvn33}'