Merge "Modify logs publisher"
[ci-management.git] / jjb / hc2vpp / include-raw-hc2vpp-pkg-push.sh
index db10e19..fbf06c0 100644 (file)
@@ -1,36 +1,82 @@
 #!/bin/bash
-if [ "${OS}" == "centos7" ]; then
+set -x
+
+# In case of master branch, update vpp_dependencies file
+# to match vpp-api-java and eliminate Java API mismatches (HC2VPP-102).
+#
+# In order to have control of package dependencies in the release artifacts (HC2VPP-282),
+# the vpp_dependencies file is not modified in case of stable branch
+# (after VPP API freeze, Java API mismatches occur very rarely).
+if [[ "${STREAM}" == "master" ]]; then
+    if [[ "${OS}" == "centos7" ]]; then
+        # Determine VPP Java API version used in maven build
+        JVPP_VERSION=`yum list installed vpp-api-java | grep vpp-api-java | awk '{ printf $2; }'`
+        VERSION=`yum deplist vpp-api-java |grep vpp-lib |head -1 | awk '{ print $3}'`
+
+        # Write a file that will echo VPP dependencies
+        echo -n 'echo' > vpp_dependencies
+        echo " \"vpp = ${VERSION}, vpp-plugins = ${VERSION}, vpp-api-java = ${JVPP_VERSION}\"" >> vpp_dependencies
+        chmod +x vpp_dependencies
+
+        # Overwrite default dependencies file
+        mv vpp_dependencies packaging/rpm/
+    else
+        # Determine VPP Java API version used in maven build
+        JVPP_VERSION=`apt list --installed | grep vpp-api-java | awk '{ printf $2; }'`
+        # get vpp-api-java package dependencies
+        JVPP_DEPS=`apt-cache show vpp-api-java=${JVPP_VERSION} |grep Depends: | sed "s/Depends: //"`
+        # separate deps with newline, then find VPP dependency and filter out the version
+        VERSION=`echo ${JVPP_DEPS}| sed "s/, /\\n/" |grep "vpp " | sed "s/).*//" |sed "s/.* //"`
+
+        # Write a file that will echo VPP dependencies
+        echo -n 'echo' > vpp_dependencies
+        echo " \"vpp (= ${VERSION}), vpp-plugin-core (= ${VERSION}), vpp-api-java (= ${JVPP_VERSION})\"" >> vpp_dependencies
+        chmod +x vpp_dependencies
+
+        # Overwrite default dependencies file
+        mv vpp_dependencies packaging/deb/common/
+    fi
+fi
+
+# Build package
+if [[ "${OS}" == "centos7" ]]; then
 
     # Build the rpms
     ./packaging/rpm/rpmbuild.sh
 
     # Find the files
-    RPMS=$(find . -type f -iname '*.rpm')
-    SRPMS=$(find . -type f -iname '*.srpm')
-    SRCRPMS=$(find . -type f -name '*.src.rpm')
-    for i in $RPMS $SRPMS $SRCRPMS
+    RPMS=$(find ./packaging/ -type f -iname '*.rpm')
+    SRPMS=$(find ./packaging/ -type f -iname '*.srpm')
+    SRCRPMS=$(find ./packaging/ -type f -name '*.src.rpm')
+
+    # Publish hc2vpp packages
+    for i in ${RPMS} ${SRPMS} ${SRCRPMS}
     do
         push_rpm "$i"
     done
-elif [ "${OS}" == "ubuntu1404" ]; then
+elif [[ "${OS}" == "ubuntu1604" ]]; then
 
     # Build the debs
-    ./packaging/deb/trusty/debuild.sh
+    ./packaging/deb/xenial/debuild.sh
 
     # Find the files
-    DEBS=$(find . -type f -iname '*.deb')
-    for i in $DEBS
+    DEBS=$(find ./packaging/ -type f -iname '*.deb')
+
+    # Publish hc2vpp packages
+    for i in ${DEBS}
     do
         push_deb "$i"
     done
-elif [ "${OS}" == "ubuntu1604" ]; then
+elif [[ "${OS}" == "ubuntu1804" ]]; then
 
     # Build the debs
-    ./packaging/deb/xenial/debuild.sh
+    ./packaging/deb/bionic/debuild.sh
 
     # Find the files
-    DEBS=$(find . -type f -iname '*.deb')
-    for i in $DEBS
+    DEBS=$(find ./packaging/ -type f -iname '*.deb')
+
+    # Publish hc2vpp packages
+    for i in ${DEBS}
     do
         push_deb "$i"
     done