From 48744a1342123945ca461839ffe52d9b2c467fc9 Mon Sep 17 00:00:00 2001 From: Antonin Descampe Date: Tue, 21 Jun 2016 16:19:06 +0200 Subject: setup automatic upload of ABI reports --- tools/travis-ci/abi-check.sh | 56 +++++++++++++++++++++++++++++++++-------- tools/travis-ci/travis_rsa.enc | Bin 0 -> 3248 bytes 2 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 tools/travis-ci/travis_rsa.enc (limited to 'tools') diff --git a/tools/travis-ci/abi-check.sh b/tools/travis-ci/abi-check.sh index 3eb6e18f..5bab1250 100755 --- a/tools/travis-ci/abi-check.sh +++ b/tools/travis-ci/abi-check.sh @@ -14,18 +14,24 @@ if [ "${OPJ_CI_ABI_CHECK:-}" != "1" ]; then fi OPJ_UPLOAD_ABI_REPORT=0 +OPJ_LATEST_VERSION="2.1" OPJ_LIMIT_ABI_BUILDS="-limit 2" +OPJ_REPO="https://github.com/uclouvain/openjpeg.git" +OPJ_SSH_REPO=${OPJ_REPO/https:\/\/github.com\//git@github.com:} +OPJ_UPLOAD_BRANCH="gh-pages" +OPJ_UPLOAD_DIR="abi-check" if [ "${TRAVIS_REPO_SLUG:-}" != "" ]; then if [ "$(echo "${TRAVIS_REPO_SLUG}" | sed 's/\(^.*\)\/.*/\1/')" == "uclouvain" ] && [ "${TRAVIS_PULL_REQUEST:-}" == "false" ]; then - # Upload report + # Upload updated report to gh-pages OPJ_UPLOAD_ABI_REPORT=1 # Build full report - OPJ_LIMIT_ABI_BUILDS= + #OPJ_LIMIT_ABI_BUILDS= fi fi OPJ_SOURCE_DIR=$(cd $(dirname $0)/../.. && pwd) +# INSTALL REQUIRED PACKAGES mkdir ${HOME}/abi-check cd ${HOME}/abi-check @@ -40,17 +46,25 @@ make check &> /dev/null make install &> /dev/null cd .. export PATH=${PWD}/tools/wdiff/bin:$PATH - wget -qO - https://tools.ietf.org/tools/rfcdiff/rfcdiff-1.42.tgz | tar -xz mv rfcdiff-1.42 ${PWD}/tools/rfcdiff export PATH=${PWD}/tools/rfcdiff:$PATH -wget -qO - https://github.com/lvc/installer/archive/0.4.tar.gz | tar -xz +wget -qO - https://github.com/lvc/installer/archive/0.10.tar.gz | tar -xz mkdir ${PWD}/tools/abi-tracker -make -C installer-0.4 install prefix=${PWD}/tools/abi-tracker target=abi-tracker +make -C installer-0.10 install prefix=${PWD}/tools/abi-tracker target=abi-tracker export PATH=${PWD}/tools/abi-tracker/bin:$PATH -mkdir tracker -cd tracker +# RUN THE ABI-CHECK SCRIPTS + +mkdir work +cd work + +# If upload is scheduled, clone the gh-pages branch and work from there +if [ ${OPJ_UPLOAD_ABI_REPORT} -eq 1 ]; then + git clone -b $OPJ_UPLOAD_BRANCH --single-branch $OPJ_REPO . + cd $OPJ_UPLOAD_DIR + rm -rf installed/openjpeg/current/* +fi # Let's create all we need grep -v Git ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json > ./openjpeg.json @@ -68,18 +82,38 @@ abi-tracker -build openjpeg.json 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 +abi-compliance-checker -l openjpeg -old $(find ./abi_dump/openjpeg/$OPJ_LATEST_VERSION -name '*.dump') -new $(find ./abi_dump/openjpeg/current -name '*.dump') -header openjpeg.h -api -s || EXIT_CODE=1 # Check ABI if [ "${OPJ_LIMIT_ABI_BUILDS}" != "" ]; then - 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 + abi-compliance-checker -l openjpeg -old $(find ./abi_dump/openjpeg/$OPJ_LATEST_VERSION -name '*.dump') -new $(find ./abi_dump/openjpeg/current -name '*.dump') -header openjpeg.h -abi -s || EXIT_CODE=1 else echo "Disable ABI check for now, problems with symbol visibility..." fi -rm -rf src installed +rm -rf src/openjpeg/current +rm -rf build_logs if [ ${OPJ_UPLOAD_ABI_REPORT} -eq 1 ]; then - echo "TODO: Where to upload the report" + git config user.name "OpenJPEG Travis CI" + git config user.email "info@openjpeg.org" + + # Commit the "changes", i.e. the new version. + # The delta will show diffs between new and old versions. + git diff > ../diff.patch + git add . + git commit -m "Update ABI/API compatibility reports after commit ${TRAVIS_COMMIT:-}" + + # Get the deploy key by using Travis's stored variables to decrypt travis_rsa.enc + openssl aes-256-cbc -K $encrypted_99d63218f67a_key -iv $encrypted_99d63218f67a_iv -in travis_rsa.enc -out travis_rsa -d + chmod 600 travis_rsa + eval `ssh-agent -s` + ssh-add travis_rsa + + # Now that we're all set up, we can push. + git push $OPJ_SSH_REPO $OPJ_UPLOAD_BRANCH fi + +rm -rf src installed + exit $EXIT_CODE diff --git a/tools/travis-ci/travis_rsa.enc b/tools/travis-ci/travis_rsa.enc new file mode 100644 index 00000000..09b00f78 Binary files /dev/null and b/tools/travis-ci/travis_rsa.enc differ -- cgit v1.2.3 From 954dad66dea3c5bb1e59187987e77c18f7b593ec Mon Sep 17 00:00:00 2001 From: Antonin Descampe Date: Tue, 21 Jun 2016 16:46:38 +0200 Subject: Automatic upload of ABI report (ctd) --- tools/abi-tracker/openjpeg.json | 14 +------------- tools/travis-ci/abi-check.sh | 2 +- 2 files changed, 2 insertions(+), 14 deletions(-) (limited to 'tools') diff --git a/tools/abi-tracker/openjpeg.json b/tools/abi-tracker/openjpeg.json index 2cfa4438..7d817605 100644 --- a/tools/abi-tracker/openjpeg.json +++ b/tools/abi-tracker/openjpeg.json @@ -51,7 +51,7 @@ "Source": "src/openjpeg/2.0/version.2.0.tar.gz", "Changelog": "NEWS", "HeadersDiff": "On", - "PkgDiff": "On", + "PkgDiff": "Off", "ABIView": "Off", "ABIDiff": "Off", "PublicSymbols": "public_symbols/openjpeg/2.0/list", @@ -105,18 +105,6 @@ "PublicSymbols": "public_symbols/openjpeg/1.4/list", "PublicTypes": "public_types/openjpeg/1.4/list" }, - { - "Number": "1.3", - "Installed": "installed/openjpeg/1.3", - "Source": "src/openjpeg/1.3/version.1.3.tar.gz", - "Changelog": "ChangeLog", - "HeadersDiff": "On", - "PkgDiff": "Off", - "ABIView": "Off", - "ABIDiff": "Off", - "PublicSymbols": "public_symbols/openjpeg/1.3/list", - "PublicTypes": "public_types/openjpeg/1.3/list" - }, { "Number": "1.2", "Installed": "installed/openjpeg/1.2", diff --git a/tools/travis-ci/abi-check.sh b/tools/travis-ci/abi-check.sh index 5bab1250..1c4311eb 100755 --- a/tools/travis-ci/abi-check.sh +++ b/tools/travis-ci/abi-check.sh @@ -105,7 +105,7 @@ if [ ${OPJ_UPLOAD_ABI_REPORT} -eq 1 ]; then git commit -m "Update ABI/API compatibility reports after commit ${TRAVIS_COMMIT:-}" # Get the deploy key by using Travis's stored variables to decrypt travis_rsa.enc - openssl aes-256-cbc -K $encrypted_99d63218f67a_key -iv $encrypted_99d63218f67a_iv -in travis_rsa.enc -out travis_rsa -d + openssl aes-256-cbc -K $encrypted_99d63218f67a_key -iv $encrypted_99d63218f67a_iv -in ${OPJ_SOURCE_DIR}/tools/travis-ci/travis_rsa.enc -out travis_rsa -d chmod 600 travis_rsa eval `ssh-agent -s` ssh-add travis_rsa -- cgit v1.2.3 From cdcb77e796f8f06d3838356c0a2931a82b4375be Mon Sep 17 00:00:00 2001 From: Antonin Descampe Date: Tue, 21 Jun 2016 17:21:08 +0200 Subject: Automatic upload of ABI report (ctd) --- tools/travis-ci/abi-check.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/travis-ci/abi-check.sh b/tools/travis-ci/abi-check.sh index 1c4311eb..48a32826 100755 --- a/tools/travis-ci/abi-check.sh +++ b/tools/travis-ci/abi-check.sh @@ -68,7 +68,7 @@ fi # Let's create all we need grep -v Git ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json > ./openjpeg.json -abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -get openjpeg.json +#abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -get openjpeg.json if [ "${OPJ_LIMIT_ABI_BUILDS}" != "" ]; then cp -f ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json ./openjpeg.json else @@ -76,8 +76,8 @@ else grep -v Configure ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json > ./openjpeg.json fi cp -rf ${OPJ_SOURCE_DIR} src/openjpeg/current -abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -build openjpeg.json -abi-tracker -build openjpeg.json +abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -rebuild openjpeg.json +abi-tracker -rebuild openjpeg.json EXIT_CODE=0 -- cgit v1.2.3 From 86698be6e9ca3375a42e7cc00c743bd1bf9b203d Mon Sep 17 00:00:00 2001 From: Antonin Descampe Date: Tue, 21 Jun 2016 17:41:29 +0200 Subject: Automatic upload of ABI report (end) --- tools/abi-tracker/openjpeg.json | 2 +- tools/travis-ci/abi-check.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'tools') diff --git a/tools/abi-tracker/openjpeg.json b/tools/abi-tracker/openjpeg.json index 7d817605..6224b920 100644 --- a/tools/abi-tracker/openjpeg.json +++ b/tools/abi-tracker/openjpeg.json @@ -3,7 +3,7 @@ "Title": "OpenJPEG", "SourceUrl": "https://github.com/uclouvain/openjpeg/tags", "Git": "https://github.com/uclouvain/openjpeg.git", - "Maintainer": "Antonin D.", + "Maintainer": "OpenJPEG team", "MaintainerUrl": "http://www.openjpeg.org/", "Package": "version.", "Configure": "-DCMAKE_C_FLAGS='-fvisibility=hidden -g -Og -w -fpermissive'", diff --git a/tools/travis-ci/abi-check.sh b/tools/travis-ci/abi-check.sh index 48a32826..538ae57f 100755 --- a/tools/travis-ci/abi-check.sh +++ b/tools/travis-ci/abi-check.sh @@ -77,7 +77,7 @@ else fi cp -rf ${OPJ_SOURCE_DIR} src/openjpeg/current abi-monitor ${OPJ_LIMIT_ABI_BUILDS} -rebuild openjpeg.json -abi-tracker -rebuild openjpeg.json +abi-tracker -build openjpeg.json EXIT_CODE=0 -- cgit v1.2.3 From e4c74f536461f6af1d4487bf4e8250d60a06f431 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Sat, 25 Jun 2016 01:09:42 +0200 Subject: Correct abi-check.sh for PR (#791) --- tools/travis-ci/abi-check.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'tools') diff --git a/tools/travis-ci/abi-check.sh b/tools/travis-ci/abi-check.sh index 538ae57f..13d0ff50 100755 --- a/tools/travis-ci/abi-check.sh +++ b/tools/travis-ci/abi-check.sh @@ -59,12 +59,10 @@ export PATH=${PWD}/tools/abi-tracker/bin:$PATH mkdir work cd work -# If upload is scheduled, clone the gh-pages branch and work from there -if [ ${OPJ_UPLOAD_ABI_REPORT} -eq 1 ]; then - git clone -b $OPJ_UPLOAD_BRANCH --single-branch $OPJ_REPO . - cd $OPJ_UPLOAD_DIR - rm -rf installed/openjpeg/current/* -fi +# Clone the gh-pages branch and work from there +git clone -b $OPJ_UPLOAD_BRANCH --single-branch $OPJ_REPO . +cd $OPJ_UPLOAD_DIR +rm -rf installed/openjpeg/current/* # Let's create all we need grep -v Git ${OPJ_SOURCE_DIR}/tools/abi-tracker/openjpeg.json > ./openjpeg.json -- cgit v1.2.3 From 9d5002f8fd2f52521b5303ae391051ef201e9b5c Mon Sep 17 00:00:00 2001 From: Antonin Descampe Date: Sun, 26 Jun 2016 20:00:37 +0200 Subject: Remove useless diff command in abi-check.sh --- tools/travis-ci/abi-check.sh | 3 --- 1 file changed, 3 deletions(-) (limited to 'tools') diff --git a/tools/travis-ci/abi-check.sh b/tools/travis-ci/abi-check.sh index 13d0ff50..2bc19cac 100755 --- a/tools/travis-ci/abi-check.sh +++ b/tools/travis-ci/abi-check.sh @@ -96,9 +96,6 @@ if [ ${OPJ_UPLOAD_ABI_REPORT} -eq 1 ]; then git config user.name "OpenJPEG Travis CI" git config user.email "info@openjpeg.org" - # Commit the "changes", i.e. the new version. - # The delta will show diffs between new and old versions. - git diff > ../diff.patch git add . git commit -m "Update ABI/API compatibility reports after commit ${TRAVIS_COMMIT:-}" -- cgit v1.2.3