X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fautorelease%2Fautorelease-templates.yaml;h=9723dd4cbec0e1e318fecb820fd1e88463090e0a;hb=000d55d6fc496d46411567f3a56c488cf076ac86;hp=bd290cf0b541fe13ba434056b2f368a077a112d6;hpb=e00bc39f5352d8f51b59c68932c1b5964d83e732;p=releng%2Fbuilder.git diff --git a/jjb/autorelease/autorelease-templates.yaml b/jjb/autorelease/autorelease-templates.yaml index bd290cf0b..9723dd4cb 100644 --- a/jjb/autorelease/autorelease-templates.yaml +++ b/jjb/autorelease/autorelease-templates.yaml @@ -1,170 +1,215 @@ +--- # Autorelease build jobs - - job-template: name: 'autorelease-release-{stream}' project-type: freestyle node: centos7-autorelease-4c-16g jdk: '{jdk}' + cron: 'H 0 * * *' properties: - - opendaylight-infra-properties: - build-days-to-keep: '30' + - build-discarder: + days-to-keep: '30' + num-to-keep: 40 + artifact-num-to-keep: 1 + # Make sure we only archive the last artifact until we figure out why + # autorelease carbon is not generating a staging repo. + # - opendaylight-infra-properties: + # build-days-to-keep: '30' parameters: - - maven-exec: - maven-version: 'mvn33' - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' - - autorelease-release-tag: - release-tag: '{next-release-tag}' - - autorelease-release-branch: - release-branch: '{branch}' + - maven-exec: + maven-version: 'mvn33' + - opendaylight-infra-parameters: + os-cloud: '{os-cloud}' + project: '{project}' + 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}' scm: - - git: - credentials-id: 'opendaylight-jenkins-ssh' - url: '$GIT_BASE' - refspec: '$GERRIT_REFSPEC' - branches: - - '$GERRIT_BRANCH' - choosing-strategy: 'gerrit' - skip-tag: true - submodule: - recursive: true - timeout: 60 + - git: + credentials-id: 'opendaylight-jenkins-ssh' + url: '$GIT_BASE' + refspec: '$GERRIT_REFSPEC' + branches: + - '$GERRIT_BRANCH' + choosing-strategy: 'gerrit' + skip-tag: true + submodule: + recursive: true + timeout: 60 wrappers: - - opendaylight-infra-wrappers: - build-timeout: '1440' + - opendaylight-infra-wrappers: + build-timeout: '1440' triggers: - - timed: 'H 0 * * *' + - timed: '{cron}' 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: 'odl-global-settings' - global-settings-type: cfp - - wipe-local-maven-repo - - jacoco-nojava-workaround - - shell: "./scripts/list-project-dependencies.sh" - - autorelease-determine-merge-order - - autorelease-cfp: - autorelease-settings: 'autorelease-settings' - odl-global-settings: 'odl-global-settings' - - autorelease-generate-taglist - - autorelease-distribute-taglist - - distribute-build-url: - path: 'integration/distribution/distribution-karaf/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 - # to enable building in a single maven reactor afterwards. - - autorelease-fix-relative-paths - - maven-target: - maven-version: 'mvn33' - pom: 'pom.xml' - goals: 'clean deploy -V -B -Pintegrationtests,docs,repoBuild -Djenkins -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage' - java-opts: - - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true' - settings: 'autorelease-settings' - settings-type: cfp - global-settings: 'odl-global-settings' - global-settings-type: cfp - - autorelease-maven-deploy - - autorelease-get-integration-test-variables - - autorelease-maven-sources: - maven-version: 'mvn33' - settings: 'autorelease-settings' - global-settings: 'odl-global-settings' - - autorelease-maven-sources-post-process - - autorelease-sys-stats - - shell: | - mkdir -p archives/ - cp *.log *.prop $_ + # 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: 'odl-global-settings' + global-settings-type: cfp + - wipe-local-maven-repo + - jacoco-nojava-workaround + - shell: "./scripts/list-project-dependencies.sh" + - autorelease-determine-merge-order + - autorelease-cfp: + autorelease-settings: 'autorelease-settings' + odl-global-settings: 'odl-global-settings' + - autorelease-generate-taglist + - 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 + # to enable building in a single maven reactor afterwards. + - autorelease-fix-relative-paths + - maven-target: + maven-version: 'mvn33' + pom: 'pom.xml' + goals: | + clean deploy + -Pintegrationtests,docs,repoBuild + -Dcheckstyle.skip=true + -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage + {opendaylight-infra-mvn-opts} + java-opts: + - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true' + settings: 'autorelease-settings' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + - autorelease-maven-deploy + - autorelease-get-integration-test-variables + - autorelease-maven-sources: + opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}' + maven-version: 'mvn33' + settings: 'autorelease-settings' + global-settings: 'odl-global-settings' + - autorelease-maven-sources-post-process + - shell: | + mkdir -p archives/ + cp *.log *.prop $_ publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[autorelease]' - - trigger-parameterized-builds: - - project: 'integration-distribution-test-{integration-test}' - condition: UNSTABLE_OR_BETTER - property-file: variables.jenkins-trigger - fail-on-missing: true - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - opendaylight-infra-notify-status + - opendaylight-infra-sysstats + - archive: + # Need to archive dependencies.log in Jenkins to provide a simple + # way for downstream jobs to pull the latest version of this file + # in their builds. + # TODO stop archiving **/*.zip once we figure out why artifacts are + # not deploying to Nexus + artifacts: 'dependencies.log, **/*.zip, /var/log/sa/*' + - trigger-parameterized-builds: + - project: 'autorelease-generate-release-notes-{stream}' + condition: UNSTABLE_OR_BETTER + property-file: variables.jenkins-trigger + fail-on-missing: true + - 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}' + condition: FAILED + trigger-with-no-params: true + - project: 'integration-sanity-test-{integration-test}' + condition: UNSTABLE_OR_BETTER + property-file: variables.jenkins-trigger + fail-on-missing: true + - project: 'integration-sanity-test-{integration-test}' + condition: FAILED + trigger-with-no-params: true + - project: 'packaging-build-rpm-master' + condition: UNSTABLE_OR_BETTER + predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL + property-file: variables.jenkins-trigger + fail-on-missing: true + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' + - job-template: - name: 'autorelease-project-report-{stream}' + name: 'autorelease-generate-release-notes-{stream}' project-type: freestyle node: centos7-java-builder-2c-8g properties: - - opendaylight-infra-properties: - build-days-to-keep: '{build-days-to-keep}' + - opendaylight-infra-properties: + build-days-to-keep: '{build-days-to-keep}' parameters: - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' - - string: - name: REPORT_DIR - default: '$WORKSPACE/project-reports' - description: "The directory containing project reports" + - 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' - refspec: '$GERRIT_REFSPEC' - branches: - - '$GERRIT_BRANCH' - choosing-strategy: 'gerrit' - skip-tag: true - submodule: - recursive: true + - git: + credentials-id: 'opendaylight-jenkins-ssh' + url: '$GIT_BASE' + refspec: '$GERRIT_REFSPEC' + branches: + - '$GERRIT_BRANCH' + choosing-strategy: 'gerrit' + skip-tag: true + submodule: + recursive: true wrappers: - - opendaylight-infra-wrappers: - build-timeout: '30' + - opendaylight-infra-wrappers: + build-timeout: '30' triggers: - - timed: '0 0 * * 0' + - timed: '0 0 * * 0' builders: - - shell: 'echo "DATE=`date +%Y-%m-%d`" > $WORKSPACE/variables.prop' - - inject: - properties-file: variables.prop - - autorelease-generate-project-report - - shell: "./scripts/list-project-dependencies.sh" - - autorelease-determine-merge-order - - autorelease-sys-stats + # 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: 'odl-global-settings' + global-settings-type: cfp + - maven-target: + maven-version: 'mvn33' + pom: '$WORKSPACE/scripts/release_notes_management/pom.xml' + goals: | + clean package + -Dcheckstyle.skip=true + -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage + {opendaylight-infra-mvn-opts} + java-opts: + - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true' + settings: 'autorelease-settings' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + - autorelease-generate-release-notes publishers: - - email-ext: - attachments: 'project-reports/*.log' - recipients: 'skitt@redhat.com thanh.ha@linuxfoundation.org' - reply-to: dev@lists.opendaylight.org - content-type: default - subject: '[releng] ODL {stream} project report for ${{ENV, var="DATE"}}' - body: | - This is a project report generated on $DATE listing the commit - history of ODL projects for the past week. See attached - git-report.log - Archive also available on Jenkins at $BUILD_URL - always: true - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - opendaylight-infra-sysstats + - archive: + artifacts: 'scripts/release_notes_management/projects/release-notes.rst, /var/log/sa/*' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33'