cron: 'H 0 * * *'
# Default variable values
+ mvn-version: mvn33
extra-mvn-opts: ''
properties:
parameters:
- maven-exec:
maven-version: 'mvn33'
- - opendaylight-infra-parameters:
- os-cloud: '{os-cloud}'
+ - lf-infra-parameters:
project: '{project}'
+ stream: '{stream}'
branch: '{branch}'
- refspec: 'refs/heads/{branch}'
- artifacts: '{archive-artifacts}'
- distribution-karaf-version:
karaf-version: '{karaf-version}'
- autorelease-release-tag:
release-tag: '{next-release-tag}'
- - autorelease-release-branch:
- release-branch: '{branch}'
- string:
name: EXTRA_MVN_OPTS
default: '{extra-mvn-opts}'
-Dskip.karaf.featureTest=true # To disable karaf SingleFeatureTests
--fail-never # NEVER fail the build, regardless of project result
--fail-at-end # Only fail the build afterwards; allow all non-impacted builds to continue
+ - string:
+ name: ARCHIVE_ARTIFACTS
+ default: '{archive-artifacts}'
+ description: Artifacts to archive to the logs server.
- bool:
name: TRIGGER_DOWNSTREAM_JOBS
default: true
+ description: |
+ Used by the post-build-script step to determine if downstream
+ jobs should be triggered for this run or not.
scm:
- git:
refspec: '$GERRIT_REFSPEC'
branches:
- '$GERRIT_BRANCH'
- choosing-strategy: 'gerrit'
+ choosing-strategy: default
skip-tag: true
submodule:
recursive: true
builders:
# force jenkins install of maven version before any shell scripts use it
- - maven-target:
- maven-version: 'mvn33'
- goals: '-version'
- settings: 'autorelease-settings'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
+ - lf-maven-install:
+ mvn-version: '{mvn-version}'
- wipe-local-maven-repo
- jacoco-nojava-workaround
- shell: "./scripts/list-project-dependencies.sh"
- autorelease-cfp:
autorelease-settings: 'autorelease-settings'
global-settings: 'odl-global-settings'
- - autorelease-generate-taglist
+ - autorelease-generate-release-patches
- autorelease-distribute-taglist
- distribute-build-url:
path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
- - autorelease-generate-release-patches
# In a perfect world projects should be releasing separately and we consume them
# via a project that pulls the release bits from each project from Nexus.
# Keep the patches compatible with that ideal, but apply an edit
publishers:
- opendaylight-infra-notify-status
-
- postbuildscript:
builders:
- conditional-step:
condition-kind: boolean-expression
- condition-expression: TRIGGER_DOWNSTREAM_JOBS
+ condition-expression: $TRIGGER_DOWNSTREAM_JOBS
steps:
- trigger-builds:
- project: 'integration-distribution-test-{integration-test}'
predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
property-file: variables.jenkins-trigger
fail-on-missing: true
- script-only-if-succeeded: true
- script-only-if-failed: true
+ script-only-if-succeeded: false
+ script-only-if-failed: false
- lf-infra-publish
- job-template:
publishers:
- lf-infra-publish
+
+- job-template:
+ name: '{project-name}-validate-autorelease-{stream}'
+ disabled: false
+
+ project-type: freestyle
+ node: '{build-node}'
+ concurrent: true
+ jdk: openjdk8
+
+ properties:
+ - lf-infra-properties:
+ build-days-to-keep: 7
+
+ parameters:
+ - lf-infra-parameters:
+ project: '{project}'
+ stream: '{stream}'
+ branch: '{branch}'
+ - autorelease-release-tag:
+ release-tag: validate
+ - string:
+ name: CLONE_URL
+ default: '{git-url}/releng/autorelease'
+ description: "Autorelease clone URL"
+
+ scm:
+ - git:
+ url: '$CLONE_URL'
+ credentials-id: 'opendaylight-jenkins-ssh'
+ refspec: ''
+ branches:
+ - 'origin/{branch}'
+ skip-tag: true
+ submodule:
+ recursive: true
+ timeout: 60
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - gerrit-trigger-patch-submitted:
+ server: '{server-name}'
+ project: '{project}'
+ branch: '{branch}'
+ files: '**/*.xml'
+
+ builders:
+ - jacoco-nojava-workaround
+ - autorelease-checkout-gerrit-patch
+ - autorelease-generate-release-patches
+ # In a perfect world projects should be releasing separately and we consume them
+ # via a project that pulls the release bits from each project from Nexus.
+ # Keep the patches compatible with that ideal, but apply an edit
+ # to enable building in a single maven reactor afterwards.
+ - autorelease-fix-relative-paths
+ - maven-target:
+ maven-version: mvn33
+ pom: validate-pom.xml
+ goals: |
+ clean install dependency:tree
+ -T1.5C
+ -Pq
+ {opendaylight-infra-mvn-opts}
+ java-opts:
+ - '-Xmx8g'
+ settings: autorelease-settings
+ settings-type: cfp
+ global-settings: global-settings
+ global-settings-type: cfp
+ - maven-target:
+ maven-version: mvn33
+ pom: pom.xml
+ goals: |
+ clean validate
+ -Pq
+ {opendaylight-infra-mvn-opts}
+ java-opts:
+ - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
+ settings: autorelease-settings
+ settings-type: cfp
+ global-settings: global-settings
+ global-settings-type: cfp
+
+ publishers:
+ - email-notification:
+ email-recipients: '{email-recipients}'
+ email-prefix: '[autorelease] [{project-name}]'
+ - lf-infra-publish