From 81268e706436efdf302a017efbd64d39aae153c2 Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Sat, 28 Jan 2017 22:39:59 +0100 Subject: [PATCH] Update Travis. --- .github/travis_deploy.sh | 46 ++++++++++++++++-------- .github/travis_init.sh | 17 ++++----- .github/travis_testsuite_1.sh | 19 +++++----- .gitlab-ci.yml | 67 ++++++++++++++++++++++++++--------- .travis.yml | 56 +++++++++++++++++++++++++---- 5 files changed, 148 insertions(+), 57 deletions(-) diff --git a/.github/travis_deploy.sh b/.github/travis_deploy.sh index 1735d52e..e97c4eb7 100644 --- a/.github/travis_deploy.sh +++ b/.github/travis_deploy.sh @@ -22,26 +22,35 @@ if [[ $BM_B =~ (^|\+)sanitize($|\+) ]]; then exit 0; fi if [[ $BM_B =~ (^|\+)scan-build($|\+) ]]; then exit 0; fi if [[ $BM_B =~ (^|\+)valgrind($|\+) ]]; then exit 0; fi +# prepare $subdir and $branch +subdir= +branch= if [[ -n $APPVEYOR_JOB_ID ]]; then - TRAVIS_BRANCH=$APPVEYOR_REPO_BRANCH + branch=$APPVEYOR_REPO_BRANCH if [[ -n $APPVEYOR_PULL_REQUEST_NUMBER ]]; then exit 0; fi elif [[ -n $GITLAB_CI ]]; then - TRAVIS_BRANCH=$CI_BUILD_REF_NAME + subdir=$CI_BUILD_NAME + branch=$CI_BUILD_REF_NAME else + branch=$TRAVIS_BRANCH if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then exit 0; fi fi -if [[ "$TRAVIS_BRANCH" != "devel" ]]; then - exit 0 -fi +subdir=${subdir%%:*}; subdir=${subdir%%/*}; subdir=${subdir%%-*} +case $branch in + devel*) ;; + master*) ;; + travis*) ;; + *) exit 0;; +esac # get $rev, $branch and $git_user cd / && cd $upx_SRCDIR || exit 1 rev=$(git rev-parse --verify HEAD) timestamp=$(git log -n1 --format='%at' HEAD) date=$(TZ=UTC0 date -d "@$timestamp" '+%Y%m%d-%H%M%S') -#branch="$TRAVIS_BRANCH-$date-${rev:0:6}" -# make the branch name a little bit shorter so that is shows up nicely on GitHub -branch="$TRAVIS_BRANCH-${date:0:8}-${rev:0:7}" +#branch="$branch-$date-${rev:0:6}" +# make the branch name a little bit shorter so that it looks nice on GitHub +branch="$branch-${date:0:8}-${rev:0:7}" if [[ -n $APPVEYOR_JOB_ID ]]; then branch="$branch-appveyor" git_user="AppVeyor CI" @@ -69,8 +78,9 @@ if [[ -n $BM_CROSS ]]; then else cpu=unknown case $BM_C in - clang*-m32 | gcc*-m32) cpu=i386;; - clang*-m64 | gcc*-m64) cpu=amd64;; + clang*-m32 | gcc*-m32) cpu=i386;; + clang*-m64 | gcc*-m64) cpu=amd64;; + clang*-mx32 | gcc*-mx32) cpu=amd64;; msvc*-x86) cpu=i386;; msvc*-x64) cpu=amd64;; esac @@ -112,11 +122,17 @@ if [[ $new_branch == 1 ]]; then git reset --hard fi -mv ../$d . -git add $d +if [[ -n $subdir ]]; then + [[ -d $subdir ]] || mkdir $subdir + mv ../$d $subdir/ + git add $subdir/$d +else + mv ../$d . + git add $d +fi if git diff --cached --exit-code --quiet >/dev/null; then - # nothing to do + # nothing to do ??? exit 0 fi @@ -149,8 +165,8 @@ while true; do else if git push $ssh_repo $branch; then break; fi fi - git fetch origin $branch - git rebase origin/$branch $branch + git fetch -v origin $branch + git rebase origin/$branch sleep $((RANDOM % 5 + 1)) let i+=1 done diff --git a/.github/travis_init.sh b/.github/travis_init.sh index 16f8e933..f5ce0eca 100644 --- a/.github/travis_init.sh +++ b/.github/travis_init.sh @@ -132,22 +132,23 @@ if [[ -z $BM_CROSS ]]; then case $BM_C in clang | clang-m?? | clang-3.4-m?? | clang-[678][0-9][0-9]-m??) CC="clang"; CXX="clang++" ;; # standard system compiler - clang-[34].[0-9]-m??) + clang-[3].[0-9]-m??) v=${BM_C:6:3}; CC="clang-$v"; CXX="clang++-$v"; SCAN_BUILD="scan-build-$v" ;; - gcc | gcc-m??) + gcc | gcc-m?? | gcc-mx32) CC="gcc"; CXX="g++" ;; # standard system compiler - gcc-[34].[0-9]-m??) + gcc-[34].[0-9]-m?? | gcc-[34].[0-9]-mx32) v=${BM_C:4:3}; CC="gcc-$v"; CXX="g++-$v" ;; - gcc-[56]-m?? | gcc-[56].[0-9]-m??) + gcc-[56]-m?? | gcc-[56]-mx32) v=${BM_C:4:1}; CC="gcc-$v"; CXX="g++-$v" ;; esac fi fi # generic case $BM_C in - clang*-m32) CC="$CC -m32"; CXX="$CXX -m32" ;; - clang*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;; - gcc*-m32) CC="$CC -m32"; CXX="$CXX -m32" ;; - gcc*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;; + clang*-m32) CC="$CC -m32"; CXX="$CXX -m32" ;; + clang*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;; + gcc*-m32) CC="$CC -m32"; CXX="$CXX -m32" ;; + gcc*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;; + gcc*-mx32) CC="$CC -mx32"; CXX="$CXX -mx32" ;; esac if [[ $BM_C =~ (^|\-)(clang|gcc)($|\-) ]]; then CC="$CC -std=gnu89" diff --git a/.github/travis_testsuite_1.sh b/.github/travis_testsuite_1.sh index c34c17c2..b7bf699d 100644 --- a/.github/travis_testsuite_1.sh +++ b/.github/travis_testsuite_1.sh @@ -31,7 +31,6 @@ mkbuilddirs $upx_testsuite_BUILDDIR cd / && cd $upx_testsuite_BUILDDIR || exit 1 if [[ ! -d $upx_testsuite_SRCDIR/files/packed ]]; then exit 1; fi - # /*********************************************************************** # // support functions # ************************************************************************/ @@ -105,7 +104,6 @@ testsuite_run_compress() { fi } - # /*********************************************************************** # // expected checksums # // @@ -230,7 +228,6 @@ b371684bbb2693797dd1164159de3bff9618bf6b99536542f57da07093dbb649 *m68k-atari.tos " ########## end .sha256sums.recreate - # /*********************************************************************** # // init # ************************************************************************/ @@ -260,8 +257,8 @@ if [[ $BM_T =~ (^|\+)valgrind($|\+) ]]; then upx_valgrind="valgrind" fi if [[ -z $upx_valgrind_flags ]]; then - upx_valgrind_flags="--leak-check=full --show-reachable=yes" - upx_valgrind_flags="-q --leak-check=no --error-exitcode=1" + #upx_valgrind_flags="--leak-check=full --show-reachable=yes" + #upx_valgrind_flags="-q --leak-check=no --error-exitcode=1" upx_valgrind_flags="--leak-check=no --error-exitcode=1" fi upx_run="$upx_valgrind $upx_valgrind_flags $upx_exe" @@ -281,7 +278,6 @@ rm -rf ./testsuite_1 mkbuilddirs testsuite_1 cd testsuite_1 || exit 1 - # /*********************************************************************** # // decompression tests # ************************************************************************/ @@ -315,7 +311,6 @@ for f in t010_decompressed/*/*; do done testsuite_check_sha $testdir - # /*********************************************************************** # // compression tests # // info: we use fast compression levels because we want to @@ -350,7 +345,6 @@ testdir=t170_compress_all_methods_no_lzma_5_no_filter mkdir $testdir; v=expected_sha256sums__$testdir; echo -n "${!v}" >$testdir/.sha256sums.expected time testsuite_run_compress --all-methods --no-lzma -5 --no-filter - # /*********************************************************************** # // summary # ************************************************************************/ @@ -359,13 +353,16 @@ time testsuite_run_compress --all-methods --no-lzma -5 --no-filter recreate_expected_sha256sums .sha256sums.recreate testsuite_header "UPX testsuite summary" -$upx_run --version || echo "UPX-ERROR: upx --version FAILED" +if ! $upx_run --version; then + echo "UPX-ERROR: upx --version FAILED" + exit 1 +fi echo echo "upx_exe='$upx_exe'" -if [[ $upx_run != $upx_exe ]]; then +if [[ "$upx_run" != "$upx_exe" ]]; then echo "upx_run='$upx_run'" fi -if [[ -f $upx_exe ]]; then +if [[ -f "$upx_exe" ]]; then ls -l "$upx_exe" file "$upx_exe" || true fi diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6916aec9..ab989445 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,18 +6,18 @@ before_script: - unset CROSS C B T X - uname -a; pwd; id; umask - cat /etc/os-release || true - - - if [[ $CI_BUILD_NAME =~ ^(CentOS|Fedora) ]]; then - time rpm -qa | LC_ALL=C sort; + - | + if [[ $CI_BUILD_NAME =~ ^(CentOS|Fedora|OpenSUSE) ]]; then + time rpm -qa | LC_ALL=C sort fi - - + - | if [[ $CI_BUILD_NAME =~ ^(Debian|Ubuntu) ]]; then - export DEBIAN_FRONTEND=noninteractive; - time dpkg -l; - if [[ $CI_BUILD_NAME =~ ^Ubuntu1604-cross ]]; then - dpkg --add-architecture i386; + export DEBIAN_FRONTEND=noninteractive + time dpkg -l + if [[ $CI_BUILD_NAME =~ ^Ubuntu1604- ]]; then + dpkg --add-architecture i386 fi; - time apt-get -yq update; + time apt-get -yq update fi - if [[ $CI_BUILD_NAME =~ ^CentOS5- ]]; then @@ -56,12 +56,29 @@ before_script: glibc-devel libasan libstdc++-devel libubsan zlib-devel glibc-devel.i686 libasan.i686 libstdc++-devel.i686 libubsan.i686 zlib-devel.i686; fi + - + if [[ $CI_BUILD_NAME =~ ^OpenSUSE42.2- ]]; then + time zypper update -y; + time zypper install -y + coreutils curl diffutils grep gzip sed + bzip2 file findutils git openssh openssl perl tar wget which xz + llvm-clang gcc gcc-32bit gcc-c++ gcc-c++-32bit lcov make valgrind + glibc-devel libstdc++-devel libz1 zlib-devel + glibc-devel-32bit libstdc++-devel-32bit libz1-32bit zlib-devel-32bit; + fi - if [[ $CI_BUILD_NAME =~ ^(Debian|Ubuntu) ]]; then time apt-get -yq --no-install-suggests --no-install-recommends --force-yes upgrade; time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install build-essential ca-certificates curl file git openssh-client openssl wget xz-utils zlib1g-dev; fi + - + if [[ $CI_BUILD_NAME =~ ^Ubuntu1604- ]]; then + time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install + g++-multilib + libstdc++-5-dev:i386 zlib1g-dev:i386 + libx32stdc++-5-dev libx32z1-dev; + fi - if [[ $CI_BUILD_NAME =~ ^Ubuntu1604-cross ]]; then time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install @@ -75,19 +92,20 @@ before_script: binutils-powerpc64-linux-gnu g++-powerpc64-linux-gnu qemu-user qemu-utils wine; fi + - git --version && bash --version - umask 022; mkdir -p ../deps ../build/gitlab - time git submodule update --init --recursive - cd ../deps && time wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -x --use-compress-program=xz - cd ../deps && time wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -x --use-compress-program=xz - cd ../deps && time git clone https://github.com/upx/upx-testsuite - - + - | if [[ $CI_BUILD_NAME =~ ^Fedora ]]; then - time dnf install -y --best --allowerasing python; - cd ../deps && time wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -x --use-compress-program=xz; + time dnf install -y --best --allowerasing python + cd ../deps && time wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -x --use-compress-program=xz fi - cd $CI_PROJECT_DIR; pwd -CentOS5-gcc-m32+64: # gcc-4.1 +CentOS5-gcc-m32+m64: # gcc-4.1 image: centos:5 script: # patch src/Makefile for gcc-4.1 @@ -99,7 +117,7 @@ CentOS5-gcc-m32+64: # gcc-4.1 tags: [ shared ] except: [ tags ] -CentOS6-gcc-m32+64: # gcc-4.4 +CentOS6-gcc-m32+m64: # gcc-4.4 image: centos:6 script: - time C=gcc-m32 bash ./.github/travis_build.sh @@ -109,7 +127,7 @@ CentOS6-gcc-m32+64: # gcc-4.4 tags: [ shared ] except: [ tags ] -CentOS7-clang+gcc-m32+64: # clang-3.4, gcc-4.8 +CentOS7-clang+gcc-m32+m64: # clang-3.4, gcc-4.8 image: centos:7 script: - time C=clang-m32 bash ./.github/travis_build.sh @@ -194,6 +212,18 @@ Fedora25-clang+gcc-m32+m64: # clang-3.8, gcc-6 tags: [ shared ] except: [ tags ] +OpenSUSE42.2-clang+gcc-m32+m64: # clang-3.8, gcc-4.8 + image: opensuse:42.2 + script: + - time C=clang-m64 bash ./.github/travis_build.sh + - time C=gcc-4.8-m32 bash ./.github/travis_build.sh + - time C=gcc-4.8-m64 bash ./.github/travis_build.sh + - time C=clang-m64 bash ./.github/travis_testsuite_1.sh + - time C=gcc-4.8-m32 bash ./.github/travis_testsuite_1.sh + - time C=gcc-4.8-m64 bash ./.github/travis_testsuite_1.sh + tags: [ shared ] + except: [ tags ] + Ubuntu1204-gcc-m64: # gcc-4.6 image: ubuntu:12.04 script: @@ -211,16 +241,19 @@ Ubuntu1404-gcc-m64: # gcc-4.8 tags: [ shared ] except: [ tags ] -Ubuntu1604-gcc-m64: # gcc-5 +Ubuntu1604-gcc-m32+m64: # gcc-5 image: ubuntu:16.04 script: + - time C=gcc-5-m32 bash ./.github/travis_build.sh - time C=gcc-5-m64 bash ./.github/travis_build.sh + - time C=gcc-5-m32 bash ./.github/travis_testsuite_1.sh - time C=gcc-5-m64 bash ./.github/travis_testsuite_1.sh + - time C=gcc-5-m32 bash ./.github/travis_deploy.sh - time C=gcc-5-m64 bash ./.github/travis_deploy.sh tags: [ shared ] except: [ tags ] -Ubuntu1604-cross: +Ubuntu1604-cross: # gcc-5 image: ubuntu:16.04 script: - time CROSS=aarch64-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_build.sh diff --git a/.travis.yml b/.travis.yml index e69f2aad..58b75ba2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,6 +43,14 @@ matrix: compiler: gcc env: C=gcc-4.4-m64 addons: { apt: { sources: *S, packages: [ "g++-4.4" ] } } + - os: linux + compiler: gcc + env: C=gcc-4.5-m32 + addons: { apt: { sources: *S, packages: [ "g++-4.5-multilib", "zlib1g-dev:i386" ] } } + - os: linux + compiler: gcc + env: C=gcc-4.5-m64 + addons: { apt: { sources: *S, packages: [ "g++-4.5" ] } } - os: linux compiler: gcc env: C=gcc-4.6-m32 @@ -50,6 +58,36 @@ matrix: - os: linux compiler: gcc env: C=gcc-4.6-m64 + - os: linux + compiler: gcc + env: C=gcc-4.7-m32 + addons: { apt: { sources: *S, packages: [ "g++-4.7-multilib", "zlib1g-dev:i386" ] } } + - os: linux + compiler: gcc + env: C=gcc-4.7-m64 + addons: { apt: { sources: *S, packages: [ "g++-4.7" ] } } + - os: linux + compiler: gcc + env: C=gcc-4.8-m32 + addons: { apt: { sources: *S, packages: [ "g++-4.8-multilib", "zlib1g-dev:i386" ] } } + - os: linux + compiler: gcc + env: C=gcc-4.8-m64 + addons: { apt: { sources: *S, packages: [ "g++-4.8" ] } } +# - os: linux +# sudo: required +# dist: trusty +# compiler: gcc +# env: C=gcc-4.8-mx32 +# addons: { apt: { packages: [ "g++-multilib", "libx32stdc++-4.8-dev", "libx32z1-dev" ] } } + - os: linux + compiler: gcc + env: C=gcc-4.9-m32 + addons: { apt: { sources: *S, packages: [ "g++-4.9-multilib", "zlib1g-dev:i386" ] } } + - os: linux + compiler: gcc + env: C=gcc-4.9-m64 + addons: { apt: { sources: *S, packages: [ "g++-4.9" ] } } - os: linux compiler: gcc env: C=gcc-5-m32 @@ -185,11 +223,8 @@ matrix: env: C=clang-800-m64 install: - - umask 022; cd $TRAVIS_BUILD_DIR && mkdir -p ../deps - - cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ - - cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ - - cd ../deps && travis_retry git clone https://github.com/upx/upx-testsuite - - if [[ $X =~ (^|\+)rebuild-stubs($|\+) ]]; then cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -xJ; fi + - uname -a; pwd; id; umask + - cat /etc/os-release || true - | cd / if [[ $TRAVIS_OS_NAME == linux ]]; then @@ -204,11 +239,20 @@ install: travis_retry pip install --user cpp-coveralls fi fi + - git --version && bash --version + - umask 022; cd $TRAVIS_BUILD_DIR && mkdir -p ../deps ../build/travis + - cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ + - cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ + - cd ../deps && travis_retry git clone https://github.com/upx/upx-testsuite + - | + if [[ $X =~ (^|\+)rebuild-stubs($|\+) ]]; then + cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -xJ + fi script: - - cd $TRAVIS_BUILD_DIR && mkdir -p ../build/travis - cd $TRAVIS_BUILD_DIR && bash ./.github/travis_build.sh - cd $TRAVIS_BUILD_DIR && bash ./.github/travis_testsuite_1.sh +after_success: - cd $TRAVIS_BUILD_DIR && bash ./.github/travis_deploy.sh # vim:set ts=2 sw=2 et: