diff options
| author | Antonin Descampe <antonin@gmail.com> | 2016-06-21 16:19:06 +0200 |
|---|---|---|
| committer | Antonin Descampe <antonin@gmail.com> | 2016-06-21 16:19:06 +0200 |
| commit | 48744a1342123945ca461839ffe52d9b2c467fc9 (patch) | |
| tree | 015ae5b463814f21775d0a169036d85bf1180452 /tools | |
| parent | d0babeb6f6cdd1887308137df37bb2b4724a6592 (diff) | |
setup automatic upload of ABI reports
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/travis-ci/abi-check.sh | 56 | ||||
| -rw-r--r-- | tools/travis-ci/travis_rsa.enc | bin | 0 -> 3248 bytes |
2 files changed, 45 insertions, 11 deletions
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 Binary files differnew file mode 100644 index 00000000..09b00f78 --- /dev/null +++ b/tools/travis-ci/travis_rsa.enc |
