project: releng/autorelease
branch: master
stream: master
- lftools-version: '{lftools-version}'
+ lftools-version: "{lftools-version}"
- string:
name: RELEASE
description: |
- Release name to branch cut.
- Eg. Lithium, Beryllium, Boron, Carbon...
+ Release name to branch cut.
+ Eg. Lithium, Beryllium, Boron, Carbon...
- bool:
name: DRY_RUN
default: true
description: |
- If DRY_RUN is enabled modifications are not published to Gerrit.
+ If DRY_RUN is enabled modifications are not published to Gerrit.
scm:
- lf-infra-gerrit-scm:
- git-url: '$GIT_URL/$GERRIT_PROJECT'
+ git-url: "$GIT_URL/$GERRIT_PROJECT"
branch: master
- refspec: 'refs/heads/master'
+ refspec: "refs/heads/master"
jenkins-ssh-credential: opendaylight-jenkins-ssh
+ submodule-disable: false
submodule-recursive: true
submodule-timeout: 10
choosing-strategy: default
- lf-infra-publish
- job-template:
- name: 'autorelease-release-{stream}-{mvn-version}-{java-version}'
+ name: "autorelease-release-{stream}-{mvn-version}-{java-version}"
######################
# Default parameters #
######################
- build-node: '{build-node}'
- cron: 'H 0 * * *'
- java-version: '{java-version}'
+ build-node: "{build-node}"
+ cron: "H 0 * * *"
+ java-version: "{java-version}"
mvn-global-settings: global-settings
+ mvn-goals: clean deploy
+ mvn-opts: "-Xmx8g -Dmaven.compile.fork=true"
+ mvn-params: ""
mvn-settings: autorelease-settings
- mvn-version: mvn35
- extra-mvn-opts: ''
- sign-artifacts: false
- disable-job: 'false'
+ mvn-version: mvn38
+ sign-artifacts: true
+ disable-job: "false"
#####################
# Job Configuration #
#####################
project-type: freestyle
- node: '{build-node}'
- jdk: '{java-version}'
- disabled: '{disable-job}'
+ node: "{build-node}"
+ disabled: "{disable-job}"
properties:
- lf-infra-properties:
build-days-to-keep: 30
parameters:
- - maven-exec:
- maven-version: '{mvn-version}'
- lf-infra-parameters:
- project: '{project}'
- stream: '{stream}'
- branch: '{branch}'
- lftools-version: '{lftools-version}'
+ project: "{project}"
+ stream: "{stream}"
+ branch: "{branch}"
+ lftools-version: "{lftools-version}"
+ - lf-infra-maven-parameters:
+ mvn-opts: "{mvn-opts}"
+ mvn-params: "{mvn-params}"
+ mvn-version: "{mvn-version}"
- distribution-karaf-version:
- karaf-version: '{karaf-version}'
+ karaf-version: "{karaf-version}"
- autorelease-release-tag:
- release-tag: '{stream}'
- - string:
- name: EXTRA_MVN_OPTS
- default: '{extra-mvn-opts}'
- description: |
- Additional optional Maven Options to pass to the Maven Goals
- parameter.
-
- Examples:
- -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
+ release-tag: "{stream}"
- string:
name: ARCHIVE_ARTIFACTS
- default: '{archive-artifacts}'
+ default: "{archive-artifacts}"
description: Artifacts to archive to the logs server.
- string:
name: STAGING_PROFILE_ID
- default: '{staging-profile-id}'
+ default: "{staging-profile-id}"
description: Nexus staging profile ID.
scm:
- git:
- credentials-id: 'opendaylight-jenkins-ssh'
- url: '$GIT_BASE'
- refspec: '$GERRIT_REFSPEC'
+ credentials-id: "opendaylight-jenkins-ssh"
+ url: "$GIT_BASE"
+ refspec: "$GERRIT_REFSPEC"
branches:
- - '$GERRIT_BRANCH'
+ - "$GERRIT_BRANCH"
choosing-strategy: default
skip-tag: true
submodule:
wrappers:
- opendaylight-infra-wrappers:
- build-timeout: '900'
+ build-timeout: "900"
triggers:
- - timed: '{cron}'
+ - timed: "{cron}"
builders:
- lf-infra-pre-build
# force jenkins install of maven version before any shell scripts use it
- lf-maven-install:
- mvn-version: '{mvn-version}'
+ mvn-version: "{mvn-version}"
- wipe-local-maven-repo
- lf-jacoco-nojava-workaround
- shell: "./scripts/list-project-dependencies.sh"
- autorelease-determine-merge-order
- lf-provide-maven-settings:
- global-settings-file: '{mvn-global-settings}'
- settings-file: '{mvn-settings}'
- - lf-infra-create-netrc:
- server-id: '{mvn-staging-id}'
+ global-settings-file: "{mvn-global-settings}"
+ settings-file: "{mvn-settings}"
- autorelease-generate-release-patches
- autorelease-generate-artifact-versions
- lf-update-java-alternatives:
- java-version: '{java-version}'
+ java-version: "{java-version}"
- autorelease-distribute-taglist
- distribute-build-url:
- path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
+ path: "integration/distribution/$KARAF_ARTIFACT/src/main/assembly"
# 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: '{mvn-version}'
- pom: 'pom.xml'
- goals: |
- clean deploy
- $EXTRA_MVN_OPTS
- -Pintegrationtests,repoBuild
- -Dcheckstyle.skip=true
- -DaltDeploymentRepository=staging::default::file:"$WORKSPACE"/m2repo
- {opendaylight-infra-mvn-opts}
- java-opts:
- - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
- settings: '{mvn-settings}'
- settings-type: cfp
- global-settings: '{mvn-global-settings}'
- global-settings-type: cfp
+ - lf-maven-build:
+ mvn-goals: "{mvn-goals}"
- lf-sigul-sign-dir:
- sign-artifacts: '{sign-artifacts}'
- sign-dir: '$WORKSPACE/m2repo'
- - lf-maven-stage
+ sign-artifacts: "{sign-artifacts}"
+ sign-dir: "$WORKSPACE/m2repo"
+ sign-mode: serial
+ - lf-maven-stage:
+ mvn-global-settings: "{mvn-global-settings}"
+ mvn-settings: "{mvn-settings}"
+ mvn-staging-id: "{mvn-staging-id}"
- autorelease-get-integration-test-variables
- autorelease-maven-sources:
- opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
- maven-version: '{mvn-version}'
- settings: '{mvn-settings}'
- global-settings: '{mvn-global-settings}'
+ opendaylight-infra-mvn-opts: "{opendaylight-infra-mvn-opts}"
+ maven-version: "{mvn-version}"
+ settings: "{mvn-settings}"
+ global-settings: "{mvn-global-settings}"
- shell: |
mkdir -p archives/
cp *.log *.prop $_
publishers:
- opendaylight-infra-notify-status
- trigger-parameterized-builds:
- - project: 'integration-distribution-test-{integration-test}'
+ - project: "integration-distribution-test-{integration-test}"
condition: UNSTABLE_OR_BETTER
property-file: variables.jenkins-trigger
fail-on-missing: true
- - project: 'integration-distribution-test-{integration-test}'
+ - project: "integration-distribution-test-{integration-test}"
condition: FAILED
trigger-with-no-params: true
- - project: 'packaging-build-rpm-{stream}'
- condition: UNSTABLE_OR_BETTER
- predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
- property-file: variables.jenkins-trigger
- fail-on-missing: true
- - project: 'packaging-build-deb-{stream}'
- condition: UNSTABLE_OR_BETTER
- predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
- property-file: variables.jenkins-trigger
- fail-on-missing: true
# Critical component of the OpenDaylight community
- postbuildscript:
builders:
- lf-infra-publish
- job-template:
- name: 'autorelease-update-submodules-{stream}'
+ name: "autorelease-update-submodules-{stream}"
######################
# Default parameters #
######################
- cron: 'H 0 * * *'
- disable-job: 'false'
+ cron: "H 0 * * *"
+ disable-job: "false"
#####################
# Job configuration #
project-type: freestyle
node: centos7-builder-2c-2g
- disabled: '{disable-job}'
+ disabled: "{disable-job}"
properties:
- lf-infra-properties:
parameters:
- lf-infra-parameters:
project: releng/autorelease
- branch: '{branch}'
- stream: '{stream}'
- refspec: 'refs/heads/{branch}'
- lftools-version: '{lftools-version}'
+ branch: "{branch}"
+ stream: "{stream}"
+ refspec: "refs/heads/{branch}"
+ lftools-version: "{lftools-version}"
scm:
- lf-infra-gerrit-scm:
- git-url: '$GIT_URL/$GERRIT_PROJECT'
- branch: '{branch}'
- refspec: 'refs/heads/{branch}'
+ git-url: "$GIT_URL/$GERRIT_PROJECT"
+ branch: "{branch}"
+ refspec: "refs/heads/{branch}"
jenkins-ssh-credential: opendaylight-jenkins-ssh
+ submodule-disable: false
submodule-recursive: true
submodule-timeout: 10
choosing-strategy: default
jenkins-ssh-credential: opendaylight-jenkins-ssh
triggers:
- - timed: '{obj:cron}'
+ - timed: "{obj:cron}"
builders:
- lf-infra-pre-build
git submodule update --remote
git add .
- lf-infra-push-gerrit-patch:
- project: '{project}'
- gerrit-user: 'jenkins-$SILO'
- gerrit-host: 'git.opendaylight.org'
- gerrit-topic: 'autorelease-update-submodules'
- gerrit-commit-message: 'Update submodules to latest HEAD of branch'
- reviewers-email: ''
+ project: "{project}"
+ gerrit-user: "jenkins-$SILO"
+ gerrit-host: "git.opendaylight.org"
+ gerrit-topic: "autorelease-update-submodules"
+ gerrit-commit-message: "Update submodules to latest HEAD of branch"
+ reviewers-email: "jenkins-releng@opendaylight.org"
publishers:
- lf-infra-publish
# Default parameters #
######################
- cron: '@weekly'
- disable-job: 'false'
+ cron: "@weekly"
+ disable-job: "false"
#####################
# Job configuration #
project-type: freestyle
node: centos7-builder-2c-1g
- disabled: '{disable-job}'
+ disabled: "{disable-job}"
properties:
- lf-infra-properties:
parameters:
- lf-infra-parameters:
project: releng/builder
- branch: '{branch}'
- stream: '{stream}'
- lftools-version: '{lftools-version}'
+ branch: "{branch}"
+ stream: "{stream}"
+ lftools-version: "{lftools-version}"
scm:
- lf-infra-gerrit-scm:
- git-url: '$GIT_URL/releng/builder'
+ git-url: "$GIT_URL/releng/builder"
branch: master
- refspec: 'refs/heads/master'
+ refspec: "refs/heads/master"
jenkins-ssh-credential: opendaylight-jenkins-ssh
+ submodule-disable: false
submodule-recursive: true
submodule-timeout: 10
choosing-strategy: default
triggers:
- - timed: '{cron}'
+ - timed: "{cron}"
- gerrit:
- server-name: '{gerrit-server-name}'
+ server-name: "{gerrit-server-name}"
trigger-on:
- change-merged-event
- comment-added-contains-event:
comment-contains-value: remerge$
projects:
- project-compare-type: ANT
- project-pattern: '{project}'
+ project-pattern: "{project}"
branches:
- branch-compare-type: ANT
- branch-pattern: '**/{branch}'
+ branch-pattern: "**/{branch}"
file-paths:
- compare-type: ANT
pattern: pom.xml
- autorelease-update-project-views
- autorelease-update-validate-projects
- lf-infra-push-gerrit-patch:
- project: '{project}'
- gerrit-user: 'jenkins-$SILO'
- gerrit-host: 'git.opendaylight.org'
- gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
- gerrit-commit-message: |
- 'Update validate autorelease projects for {stream}'
- reviewers-email: 'jenkins-releng@opendaylight.org'
+ project: "{project}"
+ gerrit-user: "jenkins-$SILO"
+ gerrit-host: "git.opendaylight.org"
+ gerrit-topic: "autorelease-update-validate-jobs-{stream}"
+ gerrit-commit-message: "Update validate-ar jobs for {stream}"
+ reviewers-email: "jenkins-releng@opendaylight.org"
publishers:
- lf-infra-publish
- job-template:
- name: autorelease-version-bump-{stream}
+ name: autorelease-version-bump-{stream}-{mvn-version}-{java-version}
#####################
# Default variables #
mvn-global-settings: global-settings
mvn-settings: autorelease-settings
- mvn-version: mvn35
- disable-job: 'false'
+ mvn-version: mvn38
+ disable-job: "false"
#####################
# Job configuration #
#####################
project-type: freestyle
- node: '{build-node}'
- disabled: '{disable-job}'
+ node: "{build-node}"
+ disabled: "{disable-job}"
properties:
- opendaylight-infra-properties:
parameters:
- lf-infra-parameters:
project: releng/autorelease
- branch: '{branch}'
- stream: '{stream}'
- refspec: 'refs/heads/{branch}'
- lftools-version: '{lftools-version}'
+ branch: "{branch}"
+ stream: "{stream}"
+ refspec: "refs/heads/{branch}"
+ lftools-version: "{lftools-version}"
- string:
name: RELEASE_TAG
- default: '{stream}'
+ default: "{stream}"
description: |
- Release that is being version bumped.
- Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
+ Release that is being version bumped.
+ Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
- bool:
name: BRANCH_CUT
default: false
description: |
- If BRANCH_CUT is enabled, perform version bump for branch cutting
- workflow, else perform version bump for simultaneous release
- workflow (detault).
+ If BRANCH_CUT is enabled, perform version bump for branch cutting
+ workflow, else perform version bump for simultaneous release
+ workflow (detault).
- bool:
name: DRY_RUN
default: true
description: |
- If DRY_RUN is enabled modifications are not published to Gerrit
- and artifacts are not pushed to Nexus. Instead the build will be
- performed using the goals "clean install".
+ If DRY_RUN is enabled modifications are not published to Gerrit
+ and artifacts are not pushed to Nexus. Instead the build will be
+ performed using the goals "clean install".
- maven-exec:
- maven-version: '{mvn-version}'
+ maven-version: "{mvn-version}"
scm:
- lf-infra-gerrit-scm:
- git-url: '$GIT_URL/$GERRIT_PROJECT'
- branch: '{branch}'
- refspec: 'refs/heads/{branch}'
+ git-url: "$GIT_URL/$GERRIT_PROJECT"
+ branch: "{branch}"
+ refspec: "refs/heads/{branch}"
jenkins-ssh-credential: opendaylight-jenkins-ssh
+ submodule-disable: false
submodule-recursive: true
submodule-timeout: 10
choosing-strategy: default
builders:
- lf-infra-pre-build
# force jenkins install of maven version before any shell scripts use it
+ - lf-update-java-alternatives:
+ java-version: "{java-version}"
- lf-maven-install:
- mvn-version: '{mvn-version}'
+ mvn-version: "{mvn-version}"
- lf-provide-maven-settings:
- global-settings-file: '{mvn-global-settings}'
- settings-file: '{mvn-settings}'
+ global-settings-file: "{mvn-global-settings}"
+ settings-file: "{mvn-settings}"
- shell: !include-raw-escape:
- version-bump.sh
- lf-infra-publish
- job-template:
- name: 'autorelease-generate-release-notes-{stream}'
+ name: "autorelease-generate-release-notes-{stream}"
######################
# Default parameters #
######################
- disable-job: 'false'
+ disable-job: "false"
gerrit_merge_triggers:
- comment-added-contains-event:
project-type: freestyle
node: centos7-builder-2c-8g
- disabled: '{disable-job}'
+ disabled: "{disable-job}"
properties:
- lf-infra-properties:
parameters:
- lf-infra-parameters:
- project: '{project}'
- branch: '{branch}'
- stream: '{stream}'
- lftools-version: '{lftools-version}'
+ project: "{project}"
+ branch: "{branch}"
+ stream: "{stream}"
+ lftools-version: "{lftools-version}"
- string:
name: RELEASE
description: |
- Release to generate release notes for.
- Eg. Oxygen-SR1, Fluorine-SR2...
+ Release to generate release notes for.
+ Eg. Sulfur-SR1, Phosphorus-SR2 ...
scm:
- lf-infra-gerrit-scm:
- git-url: '$GIT_URL/$GERRIT_PROJECT'
- branch: '$GERRIT_BRANCH'
- refspec: '$GERRIT_REFSPEC'
+ git-url: "$GIT_URL/$GERRIT_PROJECT"
+ branch: "$GERRIT_BRANCH"
+ refspec: "$GERRIT_REFSPEC"
jenkins-ssh-credential: opendaylight-jenkins-ssh
+ submodule-disable: false
submodule-recursive: true
submodule-timeout: 10
choosing-strategy: default
triggers:
- gerrit:
- server-name: '{gerrit-server-name}'
- trigger-on: '{obj:gerrit_merge_triggers}'
+ server-name: "{gerrit-server-name}"
+ trigger-on: "{obj:gerrit_merge_triggers}"
projects:
- project-compare-type: ANT
- project-pattern: '{project}'
+ project-pattern: "{project}"
branches:
- branch-compare-type: ANT
- branch-pattern: '**/{branch}'
+ branch-pattern: "**/{branch}"
builders:
- lf-infra-pre-build
- lf-infra-publish
- job-template:
- name: '{project-name}-validate-autorelease-{stream}'
+ name: "{project-name}-validate-autorelease-{stream}"
#####################
# Default variables #
java-version: openjdk8
mvn-global-settings: global-settings
mvn-settings: autorelease-settings
- mvn-version: mvn35
- disable-job: 'false'
+ mvn-version: mvn38
+ disable-job: "false"
#####################
# Job Configuration #
# override the build node.
node: centos7-builder-2c-8g
concurrent: true
- jdk: '{java-version}'
- disabled: '{disable-job}'
+ jdk: "{java-version}"
+ disabled: "{disable-job}"
properties:
- lf-infra-properties:
parameters:
- lf-infra-parameters:
- project: '{project}'
- stream: '{stream}'
- branch: '{branch}'
- lftools-version: '{lftools-version}'
+ project: "{project}"
+ stream: "{stream}"
+ branch: "{branch}"
+ lftools-version: "{lftools-version}"
- autorelease-release-tag:
release-tag: validate
- string:
name: CLONE_URL
- default: '{git-url}/releng/autorelease'
+ default: "{git-url}/releng/autorelease"
description: "Autorelease clone URL"
scm:
- git:
- url: '$CLONE_URL'
- credentials-id: 'opendaylight-jenkins-ssh'
- refspec: ''
+ url: "$CLONE_URL"
+ credentials-id: "opendaylight-jenkins-ssh"
+ refspec: ""
branches:
- - 'origin/{branch}'
+ - "origin/{branch}"
skip-tag: true
submodule:
recursive: true
wrappers:
- opendaylight-infra-wrappers:
- build-timeout: '{build-timeout}'
+ build-timeout: "{build-timeout}"
triggers:
- gerrit-trigger-patch-submitted:
- gerrit-server-name: '{gerrit-server-name}'
- project: '{project}'
- branch: '{branch}'
- files: '**/*.xml'
- forbidden-files: ''
+ gerrit-server-name: "{gerrit-server-name}"
+ project: "{project}"
+ branch: "{branch}"
+ files: "**/*.xml"
+ forbidden-files: ""
builders:
- lf-infra-pre-build
+ - lf-update-java-alternatives:
+ java-version: "{java-version}"
- autorelease-checkout-gerrit-patch
- - autorelease-compare-projects
- lf-jacoco-nojava-workaround
- shell: "./scripts/list-project-dependencies.sh"
- autorelease-determine-merge-order
# to enable building in a single maven reactor afterwards.
- autorelease-fix-relative-paths
- maven-target:
- maven-version: '{mvn-version}'
+ maven-version: "{mvn-version}"
pom: validate-pom.xml
goals: |
- clean install dependency:tree
- -T1.5C
- -Pq
- {opendaylight-infra-mvn-opts}
+ clean install dependency:tree
+ -T1.5C
+ -Pq
+ {opendaylight-infra-mvn-opts}
java-opts:
- - '-Xmx8g'
- settings: '{mvn-settings}'
+ - "-Xmx8g"
+ settings: "{mvn-settings}"
settings-type: cfp
- global-settings: '{mvn-global-settings}'
+ global-settings: "{mvn-global-settings}"
global-settings-type: cfp
- maven-target:
- maven-version: '{mvn-version}'
+ maven-version: "{mvn-version}"
pom: pom.xml
goals: |
- clean validate
- -Pq
- {opendaylight-infra-mvn-opts}
+ clean validate
+ -Pq
+ {opendaylight-infra-mvn-opts}
java-opts:
- - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
- settings: '{mvn-settings}'
+ - "-Xmx8g -Dmaven.compile.fork=true"
+ settings: "{mvn-settings}"
settings-type: cfp
- global-settings: '{mvn-global-settings}'
+ global-settings: "{mvn-global-settings}"
global-settings-type: cfp
- shell: |
mkdir -p archives/
publishers:
- email-notification:
- email-recipients: '{email-recipients}'
- email-prefix: '[autorelease] [{project-name}]'
+ email-recipients: "{email-recipients}"
+ email-prefix: "[autorelease] [{project-name}]"
- lf-infra-publish