diff --git a/.travis.yml b/.travis.yml index 1560178d7e8..7a7cfb2f9b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,7 +36,7 @@ matrix: env: TOOL=xcodebuild BRANCH=master - compiler: gcc - env: CXXSTD=14 NLS=true LTS=1604 BRANCH=master + env: CXXSTD=14 NLS=only LTS=1604 BRANCH=master - compiler: gcc env: TOOL=scons CXXSTD=17 NLS=false LTS=1804 BRANCH=master VALIDATE=true UPLOAD_ID=ubuntu-1804 @@ -53,7 +53,7 @@ matrix: - compiler: clang env: TOOL=cmake CXXSTD=14 NLS=false LTS=1804 BRANCH=master - - env: CXXSTD=14 NLS=false LTS=mingw BRANCH=master STRICT=false UPLOAD_ID=mingw + - env: CXXSTD=14 NLS=true LTS=mingw BRANCH=master STRICT=false UPLOAD_ID=mingw - env: CXXSTD=14 NLS=false LTS=steamrt BRANCH=master CC=gcc-5 CXX=g++-5 diff --git a/utils/travis/docker_run.sh b/utils/travis/docker_run.sh index d72d8c486bb..b0d25e00d3f 100755 --- a/utils/travis/docker_run.sh +++ b/utils/travis/docker_run.sh @@ -43,13 +43,14 @@ echo "TRAVIS_COMMIT: $TRAVIS_COMMIT" echo "BRANCH: $BRANCH" echo "UPLOAD_ID: $UPLOAD_ID" echo "TRAVIS_PULL_REQUEST: $TRAVIS_PULL_REQUEST" +echo "TRAVIS_TAG: $TRAVIS_TAG" echo "STRICT: $STRICT" echo "build_timeout(mins): $build_timeout" $CXX --version -if [ "$NLS" == "true" ] && [ "$LTS" != "flatpak" ]; then +if [ "$NLS" == "only" ]; then cmake -DENABLE_NLS=true -DENABLE_GAME=false -DENABLE_SERVER=false -DENABLE_CAMPAIGN_SERVER=false -DENABLE_TESTS=false make VERBOSE=1 -j2 || exit 1 make clean @@ -73,17 +74,22 @@ elif [ "$LTS" == "mingw" ]; then scons wesnoth wesnothd build=release \ cxx_std=$CXXSTD opt="$OPT" strict="$STRICT" \ nls=false enable_lto="$LTO" sanitize="$SAN" jobs=2 --debug=time \ - arch=x86-64 prefix=/windows/mingw64 gtkdir=/windows/mingw64 host=x86_64-w64-mingw32 - BUILD_RET=$? + arch=x86-64 prefix=/windows/mingw64 gtkdir=/windows/mingw64 host=x86_64-w64-mingw32 || exit 1 if [ "$UPLOAD_ID" != "" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - ./utils/travis/sftp + ./utils/travis/sftp wesnoth.exe wesnothd.exe fi - exit $BUILD_RET + if [ "$TRAVIS_TAG" != "" ]; then + echo "Creating installer for tag: $TRAVIS_TAG" + scons translations build=release --debug=time nls=true jobs=2 || exit 1 + python3 ./utils/dockerbuilds/mingw/get_dlls.py || exit 1 + scons windows-installer arch=x86-64 prefix=/windows/mingw64 gtkdir=/windows/mingw64 host=x86_64-w64-mingw32 || exit 1 + ./utils/travis/sftp "$(find . -type f -regex '.*win64.*')" + fi elif [ "$LTS" == "steamrt" ]; then scons ctool=$CC cxxtool=$CXX boostdir=/usr/local/include boostlibdir=/usr/local/lib extra_flags_config=-lrt \ - cxx_std=$CXXSTD opt="$OPT" strict="$STRICT" nls=false enable_lto="$LTO" sanitize="$SAN" jobs=2 --debug=time \ + cxx_std=$CXXSTD opt="$OPT" strict="$STRICT" nls="$NLS" enable_lto="$LTO" sanitize="$SAN" jobs=2 --debug=time \ build=release else SECONDS=0 @@ -92,7 +98,7 @@ else echo "max_size = 200M" > $HOME/.ccache/ccache.conf echo "compiler_check = content" >> $HOME/.ccache/ccache.conf - cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GAME=true -DENABLE_SERVER=true -DENABLE_CAMPAIGN_SERVER=true -DENABLE_TESTS=true -DENABLE_NLS=false \ + cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GAME=true -DENABLE_SERVER=true -DENABLE_CAMPAIGN_SERVER=true -DENABLE_TESTS=true -DENABLE_NLS="$NLS" \ -DEXTRA_FLAGS_CONFIG="-pipe" -DOPT="$OPT" -DENABLE_STRICT_COMPILATION="$STRICT" -DENABLE_LTO="$LTO" -DLTO_JOBS=2 -DENABLE_MYSQL=true -DSANITIZE="$SAN" \ -DCXX_STD="$CXXSTD" -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache && \ make VERBOSE=1 -j2 @@ -104,7 +110,7 @@ else scons wesnoth wesnothd campaignd boost_unit_tests build=release \ ctool=$CC cxxtool=$CXX cxx_std=$CXXSTD \ extra_flags_config="-pipe" opt="$OPT" strict="$STRICT" forum_user_handler=true \ - nls=false enable_lto="$LTO" sanitize="$SAN" jobs=2 --debug=time + nls="$NLS" enable_lto="$LTO" sanitize="$SAN" jobs=2 --debug=time BUILD_RET=$? fi @@ -113,7 +119,7 @@ else fi if [ "$UPLOAD_ID" != "" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - ./utils/travis/sftp + ./utils/travis/sftp wesnoth wesnothd fi if (( SECONDS > 60*build_timeout )); then diff --git a/utils/travis/sftp b/utils/travis/sftp index 3e0c4057026..88d9aacec3d 100755 --- a/utils/travis/sftp +++ b/utils/travis/sftp @@ -7,6 +7,7 @@ import os import datetime import time import sys +import hashlib start = int(time.time()) now = datetime.datetime.now() @@ -45,11 +46,16 @@ with paramiko.Transport(("frs.sourceforge.net", 22)) as transport: except: pass - if platform.system() == "Windows" or os.environ["LTS"] == "mingw": - sftp.put("wesnoth.exe", dest+"wesnoth.exe") - sftp.put("wesnothd.exe", dest+"wesnothd.exe") - else: - sftp.put("wesnoth", dest+"wesnoth") - sftp.put("wesnothd", dest+"wesnothd") + for arg in sys.argv[1:]: + sftp.put(arg, dest+arg) + + sha256 = hashlib.sha256() + with open(arg, "rb") as f: + while True: + data = f.read(100000) + if not data: + break + sha256.update(data) + print("sha256 of "+arg+": "+sha256.hexdigest()) print("SFTP duration: "+str(int(time.time())-start)+" seconds") diff --git a/utils/travis/steps/install.sh b/utils/travis/steps/install.sh index ab75443b150..7b12842c873 100755 --- a/utils/travis/steps/install.sh +++ b/utils/travis/steps/install.sh @@ -40,15 +40,15 @@ elif [ "$TRAVIS_OS_NAME" = "windows" ]; then cd $start export PATH="/c/Python36:"$PATH":/c/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/MSBuild/15.0/Bin/amd64:$start/../external/dll" if [ "$(which python3)" == "" ] || [ "$(which sqlite3)" == "" ] || [ ! -d "../external" ]; then - echo "Failed to retrieve dependencies!" - exit 1 + echo "Failed to retrieve dependencies!" + exit 1 else - echo "Dependencies retrieved and installed!" + echo "Dependencies retrieved and installed!" fi ./utils/travis/windows-file-hasher.sh "projectfiles/VC14/$OPT/filehashes.sqlite" else - if [ "$NLS" != "true" ]; then + if [ "$NLS" == "false" ]; then echo "po/" >> .dockerignore fi diff --git a/utils/travis/steps/script.sh b/utils/travis/steps/script.sh index 1218b5ad63e..21e95a5085e 100755 --- a/utils/travis/steps/script.sh +++ b/utils/travis/steps/script.sh @@ -59,7 +59,8 @@ else # additional permissions required due to flatpak's use of bubblewrap docker run --cap-add=ALL --privileged \ --env SFTP_PASSWORD --env LTS --env TRAVIS_COMMIT --env BRANCH --env UPLOAD_ID --env TRAVIS_PULL_REQUEST --env NLS --env CC --env CXX --env TOOL \ - --env CXXSTD --env OPT --env WML_TESTS --env WML_TEST_TIME --env PLAY_TEST --env MP_TEST --env BOOST_TEST --env LTO --env SAN --env VALIDATE \ + --env CXXSTD --env OPT --env WML_TESTS --env WML_TEST_TIME --env PLAY_TEST --env MP_TEST --env BOOST_TEST --env LTO --env SAN --env VALIDATE \ + --env TRAVIS_TAG \ --volume "$HOME"/build-cache:/home/wesnoth-travis/build \ --volume "$HOME"/flatpak-cache:/home/wesnoth-travis/flatpak-cache \ --volume "$HOME"/.ccache:/root/.ccache \