From 0748532ab6868088757e19bc2615b2c73d207912 Mon Sep 17 00:00:00 2001 From: Roman Tsisyk <roman@tsisyk.com> Date: Mon, 27 Feb 2017 09:17:13 +0300 Subject: [PATCH] Travis CI: update to the latest version of .travis.yml * Switch to PackPack for packages * Use `packagecloud` deployment for packages instead of travis.sh script * Use `script` deployment for sources instead of travis.sh script * Package all branches, but upload only 1.6/1.7 * Move all Travis CI script into the single Makefile --- .travis.mk | 43 +++++++++++ .travis.yml | 147 ++++++++++++++++++++---------------- extra/travis/build_linux.sh | 7 -- extra/travis/build_osx.sh | 6 -- extra/travis/test_linux.sh | 2 - extra/travis/test_osx.sh | 9 --- test.sh | 2 - 7 files changed, 123 insertions(+), 93 deletions(-) create mode 100644 .travis.mk delete mode 100755 extra/travis/build_linux.sh delete mode 100755 extra/travis/build_osx.sh delete mode 100755 extra/travis/test_linux.sh delete mode 100755 extra/travis/test_osx.sh delete mode 100644 test.sh diff --git a/.travis.mk b/.travis.mk new file mode 100644 index 0000000000..9a98991120 --- /dev/null +++ b/.travis.mk @@ -0,0 +1,43 @@ +# +# Travis CI rules +# + +all: package + +source: + git clone https://github.com/packpack/packpack.git packpack + TARBALL_COMPRESSOR=gz packpack/packpack tarball + +package: + git clone https://github.com/packpack/packpack.git packpack + ./packpack/packpack + +test: test_$(TRAVIS_OS_NAME) + +deps_linux: + sudo apt-get update > /dev/null + sudo apt-get -q -y install binutils-dev python-daemon python-yaml + sudo pip install six==1.9.0 + sudo pip install gevent==1.1.2 + +test_linux: deps_linux + cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo + make -j8 + cd test && /usr/bin/python test-run.py + +deps_osx: + brew install openssl readline --force + sudo pip install python-daemon PyYAML + sudo pip install six==1.9.0 + sudo pip install gevent==1.1.2 + +test_osx: deps_osx + cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo + # Increase the maximum number of open file descriptors on macOS + sudo sysctl -w kern.maxfiles=20480 || : + sudo sysctl -w kern.maxfilesperproc=20480 || : + sudo launchctl limit maxfiles 20480 || : + ulimit -S -n 20480 || : + ulimit -n + make -j8 + cd test && python test-run.py unit/ app/ app-tap/ box/ box-tap/ diff --git a/.travis.yml b/.travis.yml index 4159243f09..de8f9e2ba0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,106 +11,122 @@ compiler: - clang - gcc +cache: + directories: + - $HOME/.cache + +git: + depth: 100500 + env: global: - - ENCRYPTION_LABEL="8f886150b5ec" - - SFTP_UPLOAD_SOURCE="True" - TARBALL_EXTRA_ARGS="--exclude=doc/www --exclude=doc/sphinx" + - PACKAGECLOUD_REPO=1_6 matrix: - - OS=el DIST=6 PACK=rpm - - OS=el DIST=7 PACK=rpm - - OS=fedora DIST=24 PACK=rpm - - OS=fedora DIST=25 PACK=rpm - - OS=fedora DIST=rawhide PACK=rpm - - OS=ubuntu DIST=trusty PACK=deb - - OS=ubuntu DIST=precise PACK=deb - - OS=ubuntu DIST=xenial PACK=deb - - OS=ubuntu DIST=yakkety PACK=deb - - OS=debian DIST=jessie PACK=deb - - OS=debian DIST=wheezy PACK=deb - - OS=debian DIST=stretch PACK=deb - - OS=debian DIST=sid PACK=deb - - PACK=none - - PACK=source + - TARGET=source + - TARGET=test + - OS=el DIST=6 + - OS=el DIST=7 + - OS=fedora DIST=24 + - OS=fedora DIST=25 + - OS=ubuntu DIST=precise + - OS=ubuntu DIST=trusty + - OS=ubuntu DIST=xenial + - OS=ubuntu DIST=yakkety + - OS=debian DIST=wheezy + - OS=debian DIST=jessie + - OS=debian DIST=stretch matrix: allow_failures: -# - env: PACK=source -# - env: OS=el DIST=6 PACK=rpm -# - env: OS=el DIST=7 PACK=rpm -# - env: OS=fedora DIST=24 PACK=rpm -# - env: OS=fedora DIST=25 PACK=rpm - - env: OS=fedora DIST=rawhide PACK=rpm -# - env: OS=ubuntu DIST=precise PACK=deb -# - env: OS=ubuntu DIST=trusty PACK=deb -# - env: OS=ubuntu DIST=xenial PACK=deb -# - env: OS=ubuntu DIST=yakkety PACK=deb -# - env: OS=debian DIST=wheezy PACK=deb -# - env: OS=debian DIST=jessie PACK=deb -# - env: OS=debian DIST=stretch PACK=deb - - env: OS=debian DIST=sid PACK=deb - +# - env: OS=el DIST=6 +# - env: OS=el DIST=7 +# - env: OS=fedora DIST=24 +# - env: OS=fedora DIST=25 +# - env: OS=ubuntu DIST=precise +# - env: OS=ubuntu DIST=trusty +# - env: OS=ubuntu DIST=xenial +# - env: OS=ubuntu DIST=yakkety +# - env: OS=debian DIST=wheezy +# - env: OS=debian DIST=jessie +# - env: OS=debian DIST=stretch exclude: - - env: OS=el DIST=6 PACK=rpm - compiler: clang - - env: OS=el DIST=7 PACK=rpm - compiler: clang - - env: OS=fedora DIST=24 PACK=rpm + - env: OS=el DIST=6 compiler: clang - - env: OS=fedora DIST=25 PACK=rpm + - env: OS=el DIST=7 compiler: clang - - env: OS=fedora DIST=rawhide PACK=rpm + - env: OS=fedora DIST=24 compiler: clang - - env: OS=ubuntu DIST=precise PACK=deb + - env: OS=fedora DIST=25 compiler: clang - - env: OS=ubuntu DIST=trusty PACK=deb + - env: OS=ubuntu DIST=precise compiler: clang - - env: OS=ubuntu DIST=xenial PACK=deb + - env: OS=ubuntu DIST=trusty compiler: clang - - env: OS=ubuntu DIST=yakkety PACK=deb + - env: OS=ubuntu DIST=xenial compiler: clang - - env: OS=debian DIST=wheezy PACK=deb + - env: OS=ubuntu DIST=yakkety compiler: clang - - env: OS=debian DIST=jessie PACK=deb + - env: OS=debian DIST=wheezy compiler: clang - - env: OS=debian DIST=stretch PACK=deb + - env: OS=debian DIST=jessie compiler: clang - - env: OS=debian DIST=sid PACK=deb + - env: OS=debian DIST=stretch compiler: clang - - env: PACK=source + - env: TARGET=source compiler: clang - - env: OS=el DIST=6 PACK=rpm + - env: OS=el DIST=6 os: osx - - env: OS=el DIST=7 PACK=rpm + - env: OS=el DIST=7 os: osx - - env: OS=fedora DIST=24 PACK=rpm + - env: OS=fedora DIST=24 os: osx - - env: OS=fedora DIST=25 PACK=rpm + - env: OS=fedora DIST=25 os: osx - - env: OS=fedora DIST=rawhide PACK=rpm + - env: OS=ubuntu DIST=precise os: osx - - env: OS=ubuntu DIST=precise PACK=deb + - env: OS=ubuntu DIST=trusty os: osx - - env: OS=ubuntu DIST=trusty PACK=deb + - env: OS=ubuntu DIST=xenial os: osx - - env: OS=ubuntu DIST=xenial PACK=deb + - env: OS=ubuntu DIST=yakkety os: osx - - env: OS=ubuntu DIST=yakkety PACK=deb + - env: OS=debian DIST=wheezy os: osx - - env: OS=debian DIST=wheezy PACK=deb + - env: OS=debian DIST=jessie os: osx - - env: OS=debian DIST=jessie PACK=deb + - env: OS=debian DIST=stretch os: osx - - env: OS=debian DIST=stretch PACK=deb - os: osx - - env: OS=debian DIST=sid PACK=deb + - env: TARGET=source os: osx - os: osx compiler: gcc script: - - git clone https://github.com/tarantool/build.git - - ./build/pack/travis.sh + - make -f .travis.mk ${TARGET} + +before_deploy: + - ls -l build/ + +deploy: + # Deploy packages to PackageCloud + - provider: packagecloud + username: "${PACKAGECLOUD_USER}" + repository: "${PACKAGECLOUD_REPO}" + token: "${PACKAGECLOUD_TOKEN}" + dist: "${OS}/${DIST}" + package_glob: build/*.{rpm,deb,dsc} + skip_cleanup: true + on: + branch: "1.6" + condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}" + # Deploy sources to SFTP + - provider: script + script: ./packpack/tools/sftp ${TRAVIS_BRANCH}/src build/*.tar.gz + skip_cleanup: true + on: + branch: "1.6" + condition: "x${TARGET} = xsource" notifications: email: @@ -118,6 +134,3 @@ notifications: - build@tarantool.org on_success: change on_failure: always - -git: - depth: 500 diff --git a/extra/travis/build_linux.sh b/extra/travis/build_linux.sh deleted file mode 100755 index 99b3660ef4..0000000000 --- a/extra/travis/build_linux.sh +++ /dev/null @@ -1,7 +0,0 @@ -sudo apt-get update > /dev/null -sudo apt-get -q -y install binutils-dev python-daemon python-yaml -sudo apt-get -q -y install libmysqlclient-dev libpq-dev postgresql-server-dev-all -sudo pip install six==1.9.0 -sudo pip install gevent==1.1.2 -cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j8 diff --git a/extra/travis/build_osx.sh b/extra/travis/build_osx.sh deleted file mode 100755 index b6cc6cbdf0..0000000000 --- a/extra/travis/build_osx.sh +++ /dev/null @@ -1,6 +0,0 @@ -brew install openssl readline --force -sudo pip install python-daemon PyYAML -sudo pip install six==1.9.0 -sudo pip install gevent==1.1.2 -cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j8 diff --git a/extra/travis/test_linux.sh b/extra/travis/test_linux.sh deleted file mode 100755 index 1303e1f7b3..0000000000 --- a/extra/travis/test_linux.sh +++ /dev/null @@ -1,2 +0,0 @@ -cd test -/usr/bin/python test-run.py --force diff --git a/extra/travis/test_osx.sh b/extra/travis/test_osx.sh deleted file mode 100755 index 3603c0d29c..0000000000 --- a/extra/travis/test_osx.sh +++ /dev/null @@ -1,9 +0,0 @@ -echo "Increase the maximum number of open file descriptors on macOS" -NOFILE=20480 -sudo sysctl -w kern.maxfiles=$NOFILE -sudo sysctl -w kern.maxfilesperproc=$NOFILE -sudo launchctl limit maxfiles $NOFILE $NOFILE -ulimit -S -n $NOFILE -ulimit -n - -cd test && python test-run.py diff --git a/test.sh b/test.sh deleted file mode 100644 index cc1e827fb5..0000000000 --- a/test.sh +++ /dev/null @@ -1,2 +0,0 @@ -bash ./extra/travis/build_$TRAVIS_OS_NAME.sh -bash ./extra/travis/test_$TRAVIS_OS_NAME.sh -- GitLab