diff --git a/.appveyor.yml b/.appveyor.yml index 89f1418d2..7795b2f3b 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,12 +1,8 @@ version: '{build}' cache: -- sqlite-dll-win32-x86-3240000.zip -> .appveyor.yml -- sqlite-dll-win64-x64-3240000.zip -> .appveyor.yml -- nimbus-deps.zip -> .appveyor.yml - x86_64-4.9.2-release-win32-seh-rt_v4-rev4.7z -> .appveyor.yml - i686-4.9.2-release-win32-dwarf-rt_v4-rev4.7z -> .appveyor.yml -- Nim -> .appveyor.yml matrix: # We always want 32 and 64-bit compilation @@ -16,6 +12,9 @@ platform: - x86 - x64 +# when multiple CI builds are queued, the tested commit needs to be in the last X commits cloned with "--depth X" +clone_depth: 10 + install: - setlocal EnableExtensions EnableDelayedExpansion @@ -23,88 +22,32 @@ install: SET "MINGW_ARCHIVE=i686-4.9.2-release-win32-dwarf-rt_v4-rev4.7z" & SET "MINGW_URL=https://sourceforge.net/projects/mingw-w64/files/Toolchains%%20targetting%%20Win32/Personal%%20Builds/mingw-builds/4.9.2/threads-win32/dwarf/i686-4.9.2-release-win32-dwarf-rt_v4-rev4.7z" & SET "MINGW_DIR=mingw32" & - SET "SQLITE_URL=https://www.sqlite.org/2018/sqlite-dll-win32-x86-3240000.zip" & - SET "SQLITE_ARCHIVE=sqlite-dll-win32-x86-3240000.zip" & - SET "ROCKSDB_URL=https://github.com/status-im/nimbus-deps/releases/download/nimbus-deps/nimbus-deps.zip" & - SET "ROCKSDB_ARCHIVE=nimbus-deps.zip" ) ELSE ( IF "%PLATFORM%" == "x64" ( SET "MINGW_ARCHIVE=x86_64-4.9.2-release-win32-seh-rt_v4-rev4.7z" & SET "MINGW_URL=https://sourceforge.net/projects/mingw-w64/files/Toolchains%%20targetting%%20Win64/Personal%%20Builds/mingw-builds/4.9.2/threads-win32/seh/x86_64-4.9.2-release-win32-seh-rt_v4-rev4.7z" & SET "MINGW_DIR=mingw64" & - SET "SQLITE_URL=https://www.sqlite.org/2018/sqlite-dll-win64-x64-3240000.zip" & - SET "SQLITE_ARCHIVE=sqlite-dll-win64-x64-3240000.zip" & - SET "ROCKSDB_URL=https://github.com/status-im/nimbus-deps/releases/download/nimbus-deps/nimbus-deps.zip" & - SET "ROCKSDB_ARCHIVE=nimbus-deps.zip" ) else ( echo "Unknown platform" ) ) - - MKDIR %CD%\bin - - SET PATH=%CD%\%MINGW_DIR%\bin;%CD%\bin;%CD%\Nim\bin;%PATH% + - SET "PATH=%CD%\%MINGW_DIR%\bin;%PATH%" - # Unpack mingw + # download and unpack Mingw-w64 - IF NOT EXIST "%MINGW_ARCHIVE%" appveyor DownloadFile "%MINGW_URL%" -FileName "%MINGW_ARCHIVE%" - 7z x -y "%MINGW_ARCHIVE%" > nul - # Unpack sqlite - - IF not exist "%SQLITE_ARCHIVE%" appveyor DownloadFile "%SQLITE_URL%" -FileName "%SQLITE_ARCHIVE%" - - 7z x -y "%SQLITE_ARCHIVE%" > nul - - IF "%PLATFORM%" == "x64" ( copy %CD%\sqlite3.dll %CD%\bin\sqlite3_64.dll ) ELSE ( copy %CD%\sqlite3.dll %CD%\bin\sqlite3_32.dll ) - - # Unpack rocksdb - - IF not exist "%ROCKSDB_ARCHIVE%" appveyor DownloadFile "%ROCKSDB_URL%" -FileName "%ROCKSDB_ARCHIVE%" - - 7z x -y "%ROCKSDB_ARCHIVE%" > nul - - IF "%PLATFORM%" == "x64" ( copy %CD%\x64\librocksdb.dll %CD%\bin\librocksdb.dll ) ELSE ( copy %CD%\x86\librocksdb.dll %CD%\bin\librocksdb.dll ) - - # build nim from our own branch - this to avoid the day-to-day churn and - # regressions of the fast-paced Nim development while maintaining the - # flexibility to apply patches - - SET "NEED_REBUILD=" - - - IF NOT EXIST "Nim\\.git\\" ( - git clone https://github.com/status-im/Nim.git - ) ELSE ( - ( cd Nim ) & - ( git pull ) & - ( cd .. ) - ) - - # Rebuild Nim if HEAD has moved or if we don't yet have a cached version - - IF NOT EXIST "Nim\\ver.txt" ( - SET NEED_REBUILD=1 - ) ELSE ( - ( CD Nim ) & - ( git rev-parse HEAD > ..\\cur_ver.txt ) & - ( fc ver.txt ..\\cur_ver.txt || SET NEED_REBUILD=1 ) & - ( cd .. ) - ) - - - IF NOT EXIST "Nim\\bin\\nim.exe" SET NEED_REBUILD=1 - - IF NOT EXIST "Nim\\bin\\nimble.exe" SET NEED_REBUILD=1 - - # after building nim, wipe csources to save on cache space - - IF DEFINED NEED_REBUILD ( - cd Nim & - ( IF EXIST "csources" rmdir /s /q csources ) & - git clone --depth 1 https://github.com/nim-lang/csources & - cd csources & - ( IF "%PLATFORM%" == "x64" ( build64.bat ) else ( build.bat ) ) & - cd .. & - bin\nim c koch & - koch boot -d:release & - koch nimble & - git rev-parse HEAD > ver.txt & - rmdir /s /q csources - ) - build_script: - cd C:\projects\%APPVEYOR_PROJECT_SLUG% - - nimble install -y --depsOnly - - nimble nimbus + # speed up submodule cloning + - git submodule update --init --recursive --depth 10 + - mingw32-make fetch-dlls + - mingw32-make -j2 nimbus + test_script: - build\nimbus.exe --help - - nimble test + - mingw32-make -j2 test deploy: off +