#!/bin/bash
set -x
-# determine VPP Java API version used in maven build
-if [ "${OS}" == "centos7" ]; then
- VERSION=`yum list installed vpp-api-java | grep vpp-api-java | awk '{ printf $2; }'`
- # write a file that will echo VPP dependencies
- echo -n 'echo' > vpp_dependencies
- echo " \"vpp = ${VERSION}, vpp-plugins = ${VERSION}\"" >> vpp_dependencies
- chmod +x vpp_dependencies
- # overwrite default dependencies file
- mv vpp_dependencies packaging/rpm/
-else
- VERSION=`apt list --installed | grep vpp-api-java | awk '{ printf $2; }'`
- # write a file that will echo VPP dependencies
- echo -n 'echo' > vpp_dependencies
- echo " \"vpp (= ${VERSION}), vpp-plugins (= ${VERSION})\"" >> vpp_dependencies
- chmod +x vpp_dependencies
- # overwrite default dependencies file
- mv vpp_dependencies packaging/deb/common/
+# 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_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; }'`
+ VERSION=`apt-cache showpkg vpp-api-java |grep "$JVPP_VERSION" |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_dependencies
+ chmod +x vpp_dependencies
+
+ # Overwrite default dependencies file
+ mv vpp_dependencies packaging/deb/common/
+ fi
fi
-if [ "${OS}" == "centos7" ]; then
+# 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')
- # publish hc2vpp packages
- 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}" == "ubuntu1604" ]; then
+elif [[ "${OS}" == "ubuntu1604" ]]; then
# Build the debs
./packaging/deb/xenial/debuild.sh
# Find the files
- DEBS=$(find . -type f -iname '*.deb')
- # publish hc2vpp packages
- 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}" == "ubuntu1804" ]]; then
+
+ # Build the debs
+ ./packaging/deb/bionic/debuild.sh
+
+ # Find the files
+ DEBS=$(find ./packaging/ -type f -iname '*.deb')
+
+ # Publish hc2vpp packages
+ for i in ${DEBS}
do
push_deb "$i"
done