diff --git a/.travis.yml b/.travis.yml index 9868d35..e49e677 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,32 +1,56 @@ language: cpp - -dist: trusty -osx_image: xcode10 sudo: required - -env: - matrix: - - LUA="lua 5.1" - - LUA="lua 5.2" - - LUA="lua 5.3" - - LUA="luajit 2.0" +osx_image: xcode10 +dist: Xenial os: - - linux - - osx + - linux + - osx -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-5 +compiler: + - g++-5 + - clang++ + +matrix: + exclude: + - os: linux + compiler: clang++ + - os: osx + compiler: g++-5 + +env: + global: + - STESS=1 + matrix: + - LUA="lua 5.1" BUILD_TYPE=debug + - LUA="lua 5.1" BUILD_TYPE=release + - LUA="lua 5.2" BUILD_TYPE=debug + - LUA="lua 5.2" BUILD_TYPE=release + - LUA="lua 5.3" BUILD_TYPE=debug + - LUA="lua 5.3" BUILD_TYPE=release + - LUA="luajit 2.0" BUILD_TYPE=debug + - LUA="luajit 2.0" BUILD_TYPE=release before_install: - - if [[ $TRAVIS_OS_NAME == "linux" ]]; then export CXX=g++-5; sudo pip install hererocks; fi - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then export CXX=clang++; brew update; brew upgrade python; sudo pip3 install hererocks; fi + - sudo pip install hererocks - hererocks lua-pkg --$LUA -rlatest - - source lua-pkg/bin/activate + - source lua-pkg/bin/activate script: - - ci/test_all.sh -DLUA_INCLUDE_DIR="$PWD/lua-pkg/include" + - export CXX=${TRAVIS_COMPILER} + - cmake -H. -B$BUILD_TYPE -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUA_INCLUDE_DIR="$PWD/lua-pkg/include" + - cmake --build $BUILD_TYPE --config $BUILD_TYPE + - cd $BUILD_TYPE && lua ../tests/lua/run_tests + - tar cvfz effil-${TRAVIS_TAG}-$(echo "$LUA" | tr -d ' ')-$(${TRAVIS_COMPILER} -dumpmachine).tar.gz effil.so + +deploy: + provider: releases + file_glob: true + file: effil-*.tar.gz + skip_cleanup: true + overwrite: true + api_key: + secure: nyHMamSB64vby+GX7hhF8+mY/GG4hce4Zcib3Ag9dZSE7+gtxkj5lzojcHUzc1EKEiLfli2YrYAsQSIp18g/tScFeol9xRDYga+OyBAvYS3dXXBhXQlHcqyA+oWOFE1qtoSbrFC5JwPG+E6iVRI9/Pna7wbTCoI2OfxYACj5xC9reFJcyqbJzKdEApYG553sZhLCqaQyonKOrH2/ICcFrj9Ws3KA2zxg/tPmt4cw2N1bZAFyTViP70bfNyJqyXvlDb9pGX/66YNl7EqGV64S7i+ULkX8MK7KyXbL5/9kxefgRZHehNWabpZxIZC0gFEIoCaBXTL5u3JJt0ZcujV6epTeHsJHqT9gEa5bfK+4SPz3jvC4FtxrK94u64uD0a9dgxcdhKh123iTOB7eJAwmZ94zKYC++zD+t2XQErib8ha/TyL1trgKv3R6lqMLw0fE5xn/jqtV8ZCJkFuxydmi2Kr+If95LwAr/D48FVyWPu5x2LBpzrZqj8cO4VJOzAebVjEOLx4w2lzIq3i+79KET7iXmimqs4KmPsimL8+QrDBiSDIFoRLa7f+9TfLNwy68khXjkwpsEDvO/A4tLTaVI1Qe5Sn1kdtKAh5hm7gMW0RJy3F6BUq9WDwk2xLaxB/FOV7OkcZehuHi59e9W+PE2Se3XZ6QroE05B/cbiUlQA0= + on: + tags: true + condition: $BUILD_TYPE = release diff --git a/appveyor.yml b/appveyor.yml index f7176fe..fbee91b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,17 +1,17 @@ image: Visual Studio 2015 configuration: - - Debug - - Release + - debug + - release environment: global: STRESS: 1 matrix: - - LUA: "lua 5.1" - - LUA: "lua 5.2" - - LUA: "lua 5.3" - - LUA: "luajit 2.0" + - { LUA: "lua 5.1", LUA_NAME: "lua5.1" } + - { LUA: "lua 5.2", LUA_NAME: "lua5.2" } + - { LUA: "lua 5.3", LUA_NAME: "lua5.3" } + - { LUA: "luajit 2.0", LUA_NAME: "luajit2.0" } # - LUA: "luajit 2.1" # currently failing before_build: @@ -25,6 +25,21 @@ build_script: - cd build - cmake .. -G "Visual Studio 14 2015 Win64" - cmake --build . --config %CONFIGURATION% + - 7z a effil-%APPVEYOR_REPO_TAG_NAME%-%LUA_NAME%-win64.zip effil.dll test_script: - - lua ../tests/lua/run_tests \ No newline at end of file + - lua ../tests/lua/run_tests + +artifacts: + - path: build/*.zip + +deploy: + provider: GitHub + description: '$(APPVEYOR_REPO_TAG_NAME)' + auth_token: + secure: MmJswKplsV+hzQb/WtStw825jGE74AwQsBlqMRW7/2stpVPVwahjOcLuIv9WXkbL + artifact: /.*\.zip/ + force_update: true + on: + appveyor_repo_tag: true + configuration: release diff --git a/ci/install.sh b/ci/install.sh deleted file mode 100755 index 89027a2..0000000 --- a/ci/install.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env bash - -set -e - -ROOT_DIR=$(cd $(dirname $0); pwd;) -LUA=$1 -TARGET_DIR=$2 - -echo "Installing '$LUA' to '$TARGET_DIR'" - -if [ -z "${PLATFORM:-}" ]; then - PLATFORM=$TRAVIS_OS_NAME; -fi - -if [ "$PLATFORM" == "osx" ]; then - PLATFORM="macosx"; -fi - -if [ -z "$PLATFORM" ]; then - if [ "$(uname)" == "Linux" ]; then - PLATFORM="linux"; - else - PLATFORM="macosx"; - fi; -fi - -if ! [ -d $TARGET_DIR ]; then - mkdir $TARGET_DIR -fi - -cd $TARGET_DIR - -modify_file() { - file_name=$1; shift - while [[ $# -gt 1 ]]; do - src=$1; dst=$2 - cat $file_name | sed -e "s/$src/$dst/" > .tmpFile - mv .tmpFile $file_name - shift 2 - done -} - -if [ "$LUA" == "luajit" ]; then - LUAJIT_VERSION="2.0.4" - LUAJIT_BASE="LuaJIT-$LUAJIT_VERSION" - - curl --location https://github.com/LuaJIT/LuaJIT/archive/v$LUAJIT_VERSION.tar.gz | tar xz; - cd $LUAJIT_BASE - make && make install PREFIX="$LUA_HOME_DIR" - ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/luajit - ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/lua; -else - - if [ "$LUA" == "lua5.1" ]; then - curl http://www.lua.org/ftp/lua-5.1.5.tar.gz | tar xz - cd lua-5.1.5; - elif [ "$LUA" == "lua5.2" ]; then - curl http://www.lua.org/ftp/lua-5.2.4.tar.gz | tar xz - cd lua-5.2.4; - elif [ "$LUA" == "lua5.3" ]; then - curl http://www.lua.org/ftp/lua-5.3.3.tar.gz | tar xz - cd lua-5.3.3; - fi - - if [ "$PLATFORM" == "linux" ]; then - SONAME_FLAG="-soname" - LIB_POSTFIX="so" - else - SONAME_FLAG="-install_name" - LIB_POSTFIX="dylib" - fi - - # Modify root Makefile - modify_file Makefile "^\(TO_LIB=.*\)$" "\1 liblua.$LIB_POSTFIX" - #Modify child Makefile - modify_file src/Makefile \ - "^\(LUAC_O=.*\)" '\1\'$'\nLUA_SO= liblua.'"$LIB_POSTFIX" \ - "^\(ALL_T=.*\)" '\1 $(LUA_SO)' \ - "^\(CFLAGS=.*\)" '\1 -fPIC' - - echo '$(LUA_SO): $(CORE_O) $(LIB_O)' >> src/Makefile - echo -e "\t\$(CC) -shared -ldl -Wl,$SONAME_FLAG,\$(LUA_SO) -o \$@ \$? -lm \$(MYLDFLAGS)" >> src/Makefile - - make $PLATFORM - make INSTALL_TOP="$TARGET_DIR" install -fi diff --git a/ci/test_all.sh b/ci/test_all.sh deleted file mode 100755 index 110935d..0000000 --- a/ci/test_all.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -e - -if [ -z "$LUA_BIN" ]; then - LUA_BIN="lua" -fi - -for build_type in debug release; do - cmake -H. -B$build_type -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=$build_type $@ - cmake --build $build_type --config Release - - (cd $build_type && STRESS=1 $LUA_BIN ../tests/lua/run_tests) -done