Merge "Update Ubuntu docker image"
[releng/builder.git] / jjb / integration / distribution / distribution-macros.yaml
index d8625c6cb0aa9e3630590fe853f9f25244b3b8b4..2e3ba043b449673ddaed4363ea73f5e29eae1515 100644 (file)
@@ -1,26 +1,5 @@
 # JJB macros specific to Integration/Distribution ODL project
 ---
-
-- builder:
-    name: distribution-deploy-verify
-    # Operation: Deploy ODL with all fetures and check it is not broken.
-    # Required bash variables:
-    #   KARAF_VERSION: 'karaf4' or 'karaf3'.
-    #     Use distribution-karaf-version macro to customize.
-    builders:
-      - integration-detect-variables
-      - shell: !include-raw: distribution-deploy-verify.sh
-
-- builder:
-    name: distribution-deploy-offline
-    # Operation: Deploys ODL on the current system, with no external repo configuration, check it works.
-    # Required bash variables:
-    #   KARAF_VERSION: 'karaf4' or 'karaf3'.
-    #     Use distribution-karaf-version macro to customize.
-    builders:
-      - integration-detect-variables
-      - shell: !include-raw: distribution-deploy-offline.sh
-
 - builder:
     name: distribution-check-wipe
     # Step zero: Wipe file repositories up front.
           rm -rfv /tmp/t
           echo "create n: multithreaded execution might fail at creating it."
           mkdir /tmp/n
+          echo "detecting distribution allowed projects"
+          # Some allowed projects cannot be detected in distribution because they do not produce features.
+          ALLOW_PROJECTS=(yangtools mdsal openflowjava)
+          ALLOW_PROJECTS+=(`grep '<groupId>org.opendaylight.' -Rh distribution \
+          | sed -e 's%^[ \t]*<groupId>org.opendaylight.%%' \
+          | sed -e 's%</groupId>%%' | sort -u`)
+          echo "Allowed projects are ${ALLOW_PROJECTS[@]}"
+          echo "ALLOW_PROJECTS=${ALLOW_PROJECTS[@]}" > allowed_projects.txt
 
 - builder:
     name: distribution-check-build-project
     #   pom: Relative path to pom file to use. Typically '$GERRIT_PROJECT/pom.xml'.
     builders:
       - maven-target:
-          maven-version: 'mvn33'
+          maven-version: '{mvn-version}'
           pom: '{pom}'
           goals: |
               clean deploy
               dependency:tree -DoutputFile=dependency_tree.txt
-              -Pq
+              -Pq -Pmanaged -Punmanaged
               -DaltDeploymentRepository=fake-nexus::default::file:///tmp/n/
               {mvn-opts}
           java-opts:
     #   gerrit-project: Project name as nexus URI part. Typically '$GERRIT_PROJECT'.
     builders:
       - shell: |
+          echo "These are allowed projects: $ALLOW_PROJECTS"
+          echo "These are distribution pulled projects:"
+          EXIT_CODE="0"
+          for PROJECT in `ls /tmp/r/org/opendaylight`; do
+          echo "checking $PROJECT"
+          if [[ "$ALLOW_PROJECTS" != *"$PROJECT"* ]]; then
+          echo "ERROR: Not allowed project $PROJECT pulled"
+          EXIT_CODE="1"
+          fi
+          done
+          exit $EXIT_CODE
+          echo "verify project groupId"
           mkdir -p /tmp/t/org/opendaylight/{gerrit-project}
           mv /tmp/n/org/opendaylight/{gerrit-project}/* /tmp/t/org/opendaylight/{gerrit-project}/
           test -z "`find /tmp/n/ -type f`" || ( echo "ERROR: Mismatched groupId detected (see above)." && false )
     #   dist-pom: Relative path to pom file to use. 'distribution/pom.xml' is recommended.
     builders:
       - maven-target:
-          maven-version: 'mvn33'
+          maven-version: '{mvn-version}'
           pom: '{dist-pom}'
           goals: |
               clean install
               dependency:tree -DoutputFile=dependency_tree.txt
-              -Pq
+              -Pq -Pmanaged -Punmanaged
               {mvn-opts}
           java-opts:
             - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
       - shell: |
           cp -r /tmp/r /tmp/t
       - maven-target:
-          maven-version: 'mvn33'
+          maven-version: '{mvn-version}'
           pom: '{pom}'
           goals: |
               clean install
               dependency:tree -DoutputFile=dependency_tree.txt
               -s fake_remotes.xml
-              -Pq
+              -Pq -Pmanaged -Punmanaged
               {mvn-opts}
           java-opts:
             - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
     #   dist-pom: Relative path to pom file to use. 'distribution/pom.xml' is recommended.
     builders:
       - maven-target:
-          maven-version: 'mvn33'
+          maven-version: '{mvn-version}'
           pom: '{dist-pom}'
           goals: |
               clean install
               dependency:tree -DoutputFile=dependency_tree.txt
               -s fake_remotes.xml
-              -Pq
+              -Pq -Pmananaged -Punmanaged
               -Dsft.heap.max=4g
               -DskipTests=false
               {mvn-opts}