ABI Check
authormayeut <mayeut@users.noreply.github.com>
Fri, 9 Oct 2015 19:20:54 +0000 (21:20 +0200)
committermayeut <mayeut@users.noreply.github.com>
Fri, 9 Oct 2015 19:20:54 +0000 (21:20 +0200)
tools/abi-tracker/openjpeg.json
tools/travis-ci/abi-check.sh

index 67beb33a08917fcf7d4edd0feba7916b78096a29..8d83d222d70a68477a5aef6ea655e0d0b27c3058 100644 (file)
@@ -2,7 +2,6 @@
   "Name":           "openjpeg",
   "Title":          "OpenJPEG",
   "SourceUrl":      "https://github.com/uclouvain/openjpeg/tags",
-  "Git":            "https://github.com/uclouvain/openjpeg.git",
   "Maintainer":     "Antonin D.",
   "MaintainerUrl":  "http://www.openjpeg.org/",
   "Package":        "version.",
@@ -11,7 +10,7 @@
   {
     "Number":         "current",
     "Installed":      "installed/openjpeg/current",
-    "Source":         "@OPJ_SRC_DIR@",
+    "Source":         "src/openjpeg/current",
     "Changelog":      "On",
     "HeadersDiff":    "On",
     "PkgDiff":        "Off",
index afdc251ba9c58413309bfa886f32035ea413f48d..a5814d37ec38540de3cdf89ed1da4906b72d5f13 100755 (executable)
@@ -13,33 +13,53 @@ if [ "${OPJ_CI_ABI_CHECK:-}" != "1" ]; then
        exit 0
 fi
 
+OPJ_UPLOAD_ABI_REPORT=0
+OPJ_LIMIT_ABI_BUILDS="-limit 2"
+if [ "${TRAVIS_REPO_SLUG:-}" != "" ]; then
+       if [ "$(echo "${TRAVIS_REPO_SLUG}" | sed 's/\(^.*\)\/.*/\1/')" == "uclouvain" ] && [ "${TRAVIS_PULL_REQUEST:-}" == "false" ]; then
+               # Upload report
+               OPJ_UPLOAD_ABI_REPORT=1
+               # Build full report
+               OPJ_LIMIT_ABI_BUILDS=
+       fi
+fi
+
 OPJ_SOURCE_DIR=$(cd $(dirname $0)/../.. && pwd)
 
-if [ ! -d ${HOME}/abi-check ]; then
-       mkdir ${HOME}/abi-check
-fi
 
+mkdir ${HOME}/abi-check
 cd ${HOME}/abi-check
+# Let's get tools not available with apt
+mkdir tools
+wget -qO - https://tools.ietf.org/tools/rfcdiff/rfcdiff-1.42.tgz | tar -xz
+mv rfcdiff-1.42 ${PWD}/tools/rfcdiff
+wget -qO - https://github.com/lvc/installer/archive/0.2.tar.gz | tar -xz
+mkdir ${PWD}/tools/abi-tracker
+make -C installer-0.2 install prefix=${PWD}/tools/abi-tracker target=abi-tracker
+rm -rf installer-0.2
+export PATH=${PWD}/tools/rfcdiff:${PWD}/tools/abi-tracker/bin:$PATH
+mkdir tracker
+cp -f ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json ./tracker/openjpeg.json
+cd tracker
 
-if [ ! -f ${HOME}/abi-check/.restored ]; then
-       # Clean all if .restored is not present
-       touch not.empty
-       rm -rf ./*
-       # Let's get tools not available with apt
-       mkdir tools
-       wget -qO - https://tools.ietf.org/tools/rfcdiff/rfcdiff-1.42.tgz | tar -xz
-       mv rfcdiff-1.42 ${PWD}/tools/rfcdiff
-       wget -qO - https://github.com/lvc/installer/archive/0.2.tar.gz | tar -xz
-       mkdir ${PWD}/tools/abi-tracker
-       make -C installer-0.2 install prefix=${PWD}/tools/abi-tracker target=abi-tracker
-       mkdir tracker
-fi
+# Let's create all we need
+abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -get openjpeg.json
+cp -rf ${OPJ_SOURCE_DIR} src/openjpeg/current
+abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -build openjpeg.json
+abi-tracker -build openjpeg.json
 
-cd tracker
+EXIT_CODE=0
+
+# Check API
+abi-compliance-checker -l openjpeg -old $(find ./abi_dump/openjpeg/2.1 -name '*.dump') -new $(find ./abi_dump/openjpeg/current -name '*.dump') -header openjpeg.h -api -s || EXIT_CODE=1
 
 # Check ABI
-export PATH=${PWD}/../tools/rfcdiff:${PWD}/../tools/abi-tracker/bin:$PATH
-sed -e "s/@OPJ_SOURCE_DIR@/${OPJ_SOURCE_DIR//\//\\/}/g" ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json > openjpeg.json
-abi-monitor -get   openjpeg.json
-abi-monitor -build openjpeg.json
-abi-tracker -build openjpeg.json
+abi-compliance-checker -l openjpeg -old $(find ./abi_dump/openjpeg/2.1 -name '*.dump') -new $(find ./abi_dump/openjpeg/current -name '*.dump') -header openjpeg.h -abi -s || EXIT_CODE=1
+
+rm -rf src installed
+
+if [ ${OPJ_UPLOAD_ABI_REPORT} -eq 1 ]; then
+       echo "TODO: Where to upload the report"
+fi
+
+exit $EXIT_CODE