Merge "CI: Add docker verify/merge jobs"
[releng/builder.git] / jjb / packaging / packaging.yaml
index 8a2f23ac586d71888b7ac6b4d828062f99dfad00..227671f0b4030c6e38c3757473a9c862e667abeb 100644 (file)
 ---
 - project:
-    name: packaging
+    name: packaging-maven-docker-jobs
     project-name: packaging
-
+    project: integration/packaging
+    container-public-registry: nexus3.opendaylight.org:10001
+    container-snapshot-registry: nexus3.opendaylight.org:10003
+    container-staging-registry: nexus3.opendaylight.org:10004
+    staging-profile-id: ""
+    mvn-settings: packaging-settings
+    mvn-snapshot-id: packaging-snapshots
+    nexus-snapshot-repo: opendaylight-snapshots
+    tox-dir: "$WORKSPACE"
+    docker-name: odl-docker
+    docker-root: "$WORKSPACE/odl-docker"
+    build-node: centos7-docker-4c-4g
+    gerrit_trigger_file_paths:
+      - compare-type: REG_EXP
+        pattern: "$WORKSPACE/.*"
     jobs:
-      - "{project-name}-rtd-jobs":
-          build-node: centos7-builder-2c-2g
-          doc-dir: .tox/docs/tmp/html
-          project-pattern: integration/packaging
-          rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-integrationpackaging/32928/
-          rtd-token: 371d63c43ad99b0745bb7779e3488c5e255c1180
-      - "packaging-build-rpm-{stream}"
-      - "packaging-build-rpm-{distro}-snap-{stream}"
-      - "packaging-build-deb-{stream}":
-          disable-job: true
-      - "packaging-verify-full-rpm-master"
-      - "packaging-verify-rpm-master"
-      - "packaging-test-rpm-master"
-      - "packaging-test-rpm-upgrade-master"
-      - "packaging-test-deb-master":
-          disable-job: true
-      - gerrit-tox-verify:
-          branch: master
-          stream: master
-
-    project: "integration/packaging"
-
+      - gerrit-docker-verify:
+          docker-root: "$WORKSPACE"
+          docker-name: "odl-docker"
+          docker-build-args: "-f ./odl-docker/Dockerfile"
+      - gerrit-docker-merge:
+          post_docker_build_script: |
+            #!/bin/bash
+            set -uex -o pipefail
+            set -x
+            DOCKER_IMAGE_TAG2=${{DOCKER_IMAGE_TAG%-*}}
+            DNAME={container-snapshot-registry}/{docker-name}
+            docker tag $DNAME:$DOCKER_IMAGE_TAG $DNAME:$DOCKER_IMAGE_TAG2
+            docker tag $DNAME:$DOCKER_IMAGE_TAG $DNAME:latest
+            docker push $DNAME:$DOCKER_IMAGE_TAG2
+            docker push $DNAME:latest
+      - gerrit-maven-docker-stage:
+          mvn-params: "-Dmaven.test.skip install exec:exec -Pbuild-docker"
+          maven-versions-plugin: true
+          sign-artifacts: true
     stream:
-      - sodium
-
-    distro:
-      - opensuse-42
-      - epel-7
-    branch: "master"
-
-    # common parameters required for 'lf-infra-deploy-maven-file' builder
-    group-id: "org.opendaylight.integration-packaging"
-    upload-files-dir: "$WORKSPACE/upload_files"
-    maven-repo-url: "$NEXUS_URL/content/repositories/$REPO_ID"
-
-- job-template:
-    name: "packaging-build-rpm-{stream}"
-
-    disable-job: false
-
-    node: centos7-builder-2c-2g
-
-    project-type: freestyle
-    disabled: "{disable-job}"
-
-    mvn-opts: ""
-    mvn-params: ""
-    mvn-version: mvn33
-
-    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}"
-      - lf-infra-maven-parameters:
-          mvn-opts: "{mvn-opts}"
-          mvn-params: "{mvn-params}"
-          mvn-version: "{mvn-version}"
-          staging-profile-id: ""
-      - string:
-          name: DOWNLOAD_URL
-          # yamllint disable-line rule:line-length
-          default: "https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.8.4/karaf-0.8.4.tar.gz"
-          description: "URL to ODL tarball artifact to repackage into RPM"
-      - string:
-          name: CHANGELOG_NAME
-          default: "Jenkins"
-          description: "Name of person who defined RPM"
-      - string:
-          name: CHANGELOG_EMAIL
-          default: "jenkins-donotreply@opendaylight.org"
-          description: "Email of person who defined RPM"
-      - string:
-          name: DEPLOY_TO_REPO
-          default: "opendaylight-{stream}-epel-7-x86_64-devel"
-          description: "Repository to deploy resulting package to"
-      - string:
-          name: PKG_VERSION_OVERRIDE
-          default: ""
-          description: "Override autodetected package component of RPM version (maj.min.pat-pkg)"
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: "packaging"
-          refspec: "$GERRIT_REFSPEC"
-          branch: "master"
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: "{build-timeout}"
-
-    builders:
-      - lf-infra-pre-build
-      - shell: !include-raw-escape: build-rpm.sh
-      - install-test-uninstall-rpm
-      - lf-infra-deploy-maven-file:
-          global-settings-file: "global-settings"
-          settings-file: "packaging-settings"
-          mvn-version: "{mvn-version}"
-          repo-id: "$DEPLOY_TO_REPO"
-          group-id: "{group-id}"
-          upload-files-dir: "{upload-files-dir}"
-          maven-repo-url: "{maven-repo-url}"
-
-    publishers:
-      - lf-infra-publish
-
-- job-template:
-    name: "packaging-build-rpm-{distro}-snap-{stream}"
-
-    node: centos7-docker-2c-2g
-    disable-job: false
-
-    project-type: freestyle
-    disabled: "{disable-job}"
-
-    mvn-opts: ""
-    mvn-params: ""
-    mvn-version: mvn33
-
-    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}"
-      - lf-infra-maven-parameters:
-          mvn-opts: "{mvn-opts}"
-          mvn-params: "{mvn-params}"
-          mvn-version: "{mvn-version}"
-          staging-profile-id: ""
-      - string:
-          name: CHANGELOG_NAME
-          default: "Jenkins"
-          description: "Name of person who defined RPM"
-      - string:
-          name: CHANGELOG_EMAIL
-          default: "jenkins-donotreply@opendaylight.org"
-          description: "Email of person who defined RPM"
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: "packaging"
-          refspec: "$GERRIT_REFSPEC"
-          branch: "master"
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: "{build-timeout}"
-
-    builders:
-      - lf-infra-pre-build
-      - inject:
-          properties-content: |
-            STREAM={stream}
-            DISTRO={distro}
-      - shell: !include-raw: build-rpm-snap-docker.sh
-      - shell: !include-raw: test-rpm-docker.sh
-      - lf-infra-deploy-maven-file:
-          global-settings-file: "global-settings"
-          settings-file: "packaging-settings"
-          mvn-version: "{mvn-version}"
-          repo-id: "opendaylight-{stream}-{distro}-x86_64-devel"
-          group-id: "{group-id}"
-          upload-files-dir: "{upload-files-dir}"
-          maven-repo-url: "{maven-repo-url}"
-
-    triggers:
-      - timed: "@daily"
-
-    publishers:
-      - lf-infra-publish
-
-- job-template:
-    name: "packaging-verify-rpm-master"
-
-    node: centos7-builder-2c-2g
-    disable-job: false
-
-    project-type: freestyle
-    disabled: "{disable-job}"
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: "{os-cloud}"
-          project: "{project}"
-          branch: "{branch}"
-          refspec: "refs/heads/{branch}"
-          artifacts: "{archive-artifacts}"
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: "packaging"
-          refspec: "$GERRIT_REFSPEC"
+      - master:
           branch: "master"
 
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: "{build-timeout}"
-
-    builders:
-      # Test Sodium ('Managed Release Common Distro') release tarball
-      - inject:
-          # yamllint disable-line rule:line-length
-          properties-content: "DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/opendaylight/0.11.0/opendaylight-0.11.0.tar.gz"
-      - shell: !include-raw-escape: build-rpm.sh
-      - install-test-uninstall-rpm
-
-      # Test latest Sodium snapshot
-      - inject:
-          properties-content: "STREAM=sodium"
-      - shell: !include-raw: build-rpm-snap.sh
-      - install-test-uninstall-rpm
-
-    triggers:
-      - timed: "@weekly"
-      - gerrit-trigger-patch-submitted:
-          gerrit-server-name: "{gerrit-server-name}"
-          project: "{project}"
-          branch: "{branch}"
-          files: "packages/**"
-          forbidden-files: ""
-
-    publishers:
-      - lf-infra-publish
-
-- job-template:
-    name: "packaging-verify-full-rpm-master"
-
-    node: centos7-builder-2c-2g
-    disable-job: false
-
-    project-type: freestyle
-    disabled: "{disable-job}"
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: "{os-cloud}"
-          project: "{project}"
-          branch: "{branch}"
-          refspec: "refs/heads/{branch}"
-          artifacts: "{archive-artifacts}"
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: "packaging"
-          refspec: "$GERRIT_REFSPEC"
-          branch: "master"
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: "{build-timeout}"
-
-    builders:
-      # Test Sodium release tarball
-      - inject:
-          # yamllint disable-line rule:line-length
-          properties-content: "DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.11.0/karaf-0.11.0.tar.gz"
-      - shell: !include-raw-escape: build-rpm.sh
-      - install-test-uninstall-rpm
-
-      - shell: !include-raw: build-rpm-snap.sh
-      - install-test-uninstall-rpm
-
-      # Test latest Sodium snapshot
-      - inject:
-          properties-content: "STREAM=sodium"
-      - shell: !include-raw: build-rpm-snap.sh
-      - install-test-uninstall-rpm
-
-    triggers:
-      - timed: "@weekly"
-      - gerrit:
-          server-name: "{gerrit-server-name}"
-          trigger-on:
-            - comment-added-contains-event:
-                comment-contains-value: "verify-rpm-full"
-          projects:
-            - project-compare-type: ANT
-              project-pattern: "{project}"
-              branches:
-                - branch-compare-type: ANT
-                  branch-pattern: "**/{branch}"
-
-    publishers:
-      - lf-infra-publish
-
-- job-template:
-    name: "packaging-test-rpm-master"
-
-    node: centos7-builder-2c-2g
-    disable-job: false
-
-    disabled: "{disable-job}"
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: "{os-cloud}"
-          project: "{project}"
-          branch: "{branch}"
-          refspec: "refs/heads/{branch}"
-          artifacts: "{archive-artifacts}"
-      - string:
-          name: URL
-          # yamllint disable-line rule:line-length
-          default: "https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=blob_plain;f=packages/rpm/example_repo_configs/opendaylight-9-devel.repo"
-          description: "Link to .repo or .rpm file"
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: "packaging"
-          refspec: "$GERRIT_REFSPEC"
-          branch: "master"
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: "{build-timeout}"
-
-    builders:
-      - shell: |
-          # Install expect to interact with Karaf shell
-          # Install nmap to check status of ODL's SSH port
-          sudo yum install -y expect nmap
-      - shell: !include-raw-escape: install-rpm.sh
-      - shell: !include-raw: start-odl.sh
-      - shell: !include-raw-escape: test-ports-nofeature.sh
-      - shell: !include-raw: test-karaf-oxygensafe.expect
-      # Disable this test until ODLPARENT-139 is fixed
-      # - shell: !include-raw-escape: test-rest-ok.sh
-      - shell: !include-raw: stop-odl.sh
-      - shell: !include-raw: uninstall-rpm.sh
-
-    triggers:
-      - timed: "@monthly"
-
-    publishers:
-      # TODO: Remove the archive publisher
-      #       small data should be stored on logs.opendaylight.org
-      #       large data should be stored on nexus.opendaylight.org
-      - archive:
-          artifacts: "**"
-          allow-empty: true
-          fingerprint: true
-          latest-only: true
-      - lf-infra-publish
-
-- job-template:
-    name: "packaging-test-rpm-upgrade-master"
-
-    disable-job: false
-
-    node: centos7-builder-2c-2g
-    disabled: "{disable-job}"
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: "{os-cloud}"
-          project: "{project}"
-          branch: "{branch}"
-          refspec: "refs/heads/{branch}"
-          artifacts: "{archive-artifacts}"
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: "packaging"
-          refspec: "$GERRIT_REFSPEC"
-          branch: "master"
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: "{build-timeout}"
-
-    builders:
-      # Tests (current and future):
-      #   * Install latest release, stop/uninstall, install latest CD
-      #   * Upgrade from latest release latest CD
-      #   * TODO: Upgrade from latest release to proposed packaging/** logic
-      #   * TODO: Upgrade from CD to proposed packaging/** logic
-      #   * TODO: Upgrade from proposed packaging/** logic (older ODL) to
-      #     proposed packaging logic (latest ODL)
-
-      # Test 1: Install latest release, stop/uninstall, install latest CD
-      - inject:
-          # yamllint disable-line rule:line-length
-          properties-content: "URL=https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-90-release.repo"
-      - install-start-test-stop-uninstall-rpm
-      - inject:
-          # yamllint disable-line rule:line-length
-          properties-content: "URL=https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-9-devel.repo"
-      - install-start-test-stop-uninstall-rpm
-
-      # Test 2: Install latest release, stop, upgrade to latest CD
-      - inject:
-          # yamllint disable-line rule:line-length
-          properties-content: "URL=https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-90-release.repo"
-      - install-start-test-stop-rpm
-      - inject:
-          # yamllint disable-line rule:line-length
-          properties-content: "REPO_CFG_FILE_URL=https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-9-devel.repo"
-      - installrepcfg-upgrade-start-test-stop-rpm
-
-    triggers:
-      - timed: "@weekly"
-      - gerrit-trigger-patch-submitted:
-          gerrit-server-name: "{gerrit-server-name}"
-          project: "{project}"
-          branch: "{branch}"
-          files: "packages/**"
-          forbidden-files: ""
-
-    publishers:
-      - lf-infra-publish
-
-- job-template:
-    name: "packaging-test-deb-master"
-
-    node: ubuntu1604-mininet-ovs-25-1c-4g
-    disable-job: false
-
-    disabled: "{disable-job}"
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: "{os-cloud}"
-          project: "{project}"
-          branch: "{branch}"
-          refspec: "refs/heads/{branch}"
-          artifacts: "{archive-artifacts}"
-      - string:
-          name: PACKAGE
-          default: "ppa:odl-team/oxygen"
-          description: "Link to .deb package or name of PPA repo"
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: "packaging"
-          refspec: "$GERRIT_REFSPEC"
-          branch: "master"
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: "{build-timeout}"
-
-    builders:
-      - shell: !include-raw-escape: install-deb.sh
-      - shell: !include-raw: start-odl.sh
-      - shell: !include-raw-escape: test-ports-nofeature.sh
-      - shell: |
-          # Install expect to interact with Karaf shell
-          # Install nmap to check status of ODL's SSH port
-          sudo apt-get install -y expect nmap
-      - shell: !include-raw: test-karaf-oxygensafe.expect
-      # Disable this test until ODLPARENT-139 is fixed
-      # - shell: !include-raw-escape: test-rest-ok.sh
-      - shell: !include-raw: stop-odl.sh
-      - shell: !include-raw-escape: uninstall-deb.sh
-
-    triggers:
-      - timed: "@monthly"
-
-    publishers:
-      - lf-infra-publish
-
-- job-template:
-    name: "packaging-build-deb-{stream}"
-
-    node: ubuntu1604-mininet-ovs-25-1c-4g
-    disable-job: false
-
-    project-type: freestyle
-    disabled: "{disable-job}"
-
-    mvn-opts: ""
-    mvn-params: ""
-    mvn-version: mvn33
-
-    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}"
-      - lf-infra-maven-parameters:
-          mvn-opts: "{mvn-opts}"
-          mvn-params: "{mvn-params}"
-          mvn-version: "{mvn-version}"
-          staging-profile-id: ""
-      - string:
-          name: DOWNLOAD_URL
-          # FIXME: Update the default value to an active stream.
-          # yamllint disable-line rule:line-length
-          default: "https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.5.3-Boron-SR3/distribution-karaf-0.5.3-Boron-SR3.tar.gz"
-          description: "URL to ODL tarball artifact to repackage into .deb"
-      - string:
-          name: CHANGELOG_NAME
-          default: "Jenkins"
-          description: "Name of person who defined .deb"
-      - string:
-          name: CHANGELOG_EMAIL
-          default: "jenkins-donotreply@opendaylight.org"
-          description: "Email of person who defined .deb"
-      - string:
-          name: PKG_VERSION_OVERRIDE
-          default: ""
-          description: "Override autodetected package component of RPM version (maj.min.pat-pkg)"
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: "packaging"
-          refspec: "$GERRIT_REFSPEC"
-          branch: "master"
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: "{build-timeout}"
-
-    builders:
-      - lf-infra-pre-build
-      - shell: !include-raw: build-deb.sh
-      - install-test-uninstall-deb
-      - lf-infra-deploy-maven-file:
-          global-settings-file: "global-settings"
-          settings-file: "packaging-settings"
-          mvn-version: "{mvn-version}"
-          repo-id: "opendaylight-{stream}-ubuntu-1604-x86_64-devel"
-          group-id: "{group-id}"
-          upload-files-dir: "{upload-files-dir}"
-          maven-repo-url: "{maven-repo-url}"
-
-    triggers:
-      - timed: "@monthly"
-
-    publishers:
-      - lf-infra-publish
-
-- project:
-    name: packaging-info
-    jobs:
-      - gerrit-info-yaml-verify
-    project: packaging
-    project-name: packaging
-    branch: master
-    build-node: centos7-builder-2c-1g
-
 - project:
     name: packaging-view
     views: