diff --git a/.appveyor.yml b/.appveyor.yml index c678125..033be48 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,37 +1,48 @@ version: '{build}' cache: -- nim-0.17.2_x64.zip - x86_64-4.9.2-release-win32-seh-rt_v4-rev4.7z -- packages -> **\packages.config -- '%LocalAppData%\NuGet\Cache -> **\packages.config' +- i686-4.9.2-release-win32-dwarf-rt_v4-rev4.7z +# We always want 32 and 64-bit compilation matrix: - fast_finish: true + fast_finish: false # set this flag to immediately finish build once one of the jobs fails. environment: + matrix: - - MINGW_ARCHIVE: x86_64-4.9.2-release-win32-seh-rt_v4-rev4.7z - MINGW_DIR: mingw64 - MINGW_URL: https://ayera.dl.sourceforge.net/project/mingw-w64/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 - NIM_ARCHIVE: nim-0.17.2_x64.zip - NIM_DIR: nim-0.17.2 - NIM_URL: https://nim-lang.org/download/nim-0.17.2_x64.zip + - MINGW_DIR: mingw32 + 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/download + MINGW_ARCHIVE: i686-4.9.2-release-win32-dwarf-rt_v4-rev4.7z + platform: x86 + - MINGW_DIR: mingw64 + 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/download + MINGW_ARCHIVE: x86_64-4.9.2-release-win32-seh-rt_v4-rev4.7z platform: x64 install: - - MKDIR %CD%\tools_tmp + - setlocal EnableExtensions EnableDelayedExpansion - IF not exist "%MINGW_ARCHIVE%" appveyor DownloadFile "%MINGW_URL%" -FileName "%MINGW_ARCHIVE%" - - 7z x -y "%MINGW_ARCHIVE%" -o"%CD%\tools_tmp"> nul - - IF not exist "%NIM_ARCHIVE%" appveyor DownloadFile "%NIM_URL%" -FileName "%NIM_ARCHIVE%" - - 7z x -y "%NIM_ARCHIVE%" -o"%CD%\tools_tmp"> nul - - SET PATH=%CD%\tools_tmp\%NIM_DIR%\bin;%CD%\tools_tmp\%MINGW_DIR%\bin;%PATH% - - SET PATH=%PATH%;%CD% - + - 7z x -y "%MINGW_ARCHIVE%" > nul + - SET PATH=%CD%\%MINGW_DIR%\bin;%CD%\Nim\bin;%PATH% + - git clone https://github.com/nim-lang/Nim.git + - cd %CD%\Nim + - git remote add statusim https://github.com/status-im/Nim.git + - git fetch statusim + - git config --global user.email "you@example.com" + - git config --global user.name "Your Name" + - for /f "tokens=*" %%G IN ('git branch -a --list ^"statusim/status-autopatch-*^"') DO (git merge %%G) + - 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 build_script: - - nimble.exe refresh - + - cd C:\projects\%APPVEYOR_PROJECT_SLUG% + - nimble install -y test_script: - - nimble.exe test + - nimble test deploy: off diff --git a/.travis.yml b/.travis.yml index 90ec7e4..0cb3877 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,43 +1,42 @@ -language: c - cache: ccache matrix: + # allow_failures: + # - os: osx + include: - # Build and test against the master (stable) and devel branches of Nim - # Build and test using both gcc and clang - os: linux - env: CHANNEL=stable - compiler: gcc + sudo: required + services: + - docker + before_install: + - docker pull statusteam/nim-base + script: + - docker run statusteam/nim-base nim --version + - docker run -v "$(pwd):/project" -w /project statusteam/nim-base sh -c "nimble install -dy && nimble test" - - os: linux - env: CHANNEL=devel - compiler: gcc - - # On OSX we only test against clang (gcc is mapped to clang by default) - os: osx - env: CHANNEL=stable - compiler: clang + before_install: + - brew update + - brew install rocksdb + # - brew install gcc - allow_failures: - # Ignore failures when building against the devel Nim branch - # Also ignore OSX, due to very long build time and Homebrew/curl SSLRead errors - - env: CHANNEL=devel - - os: osx - fast_finish: true + - git clone https://github.com/nim-lang/nim.git + - cd nim + - git remote add statusim https://github.com/status-im/nim.git + - git fetch statusim + - git config --global user.email "you@example.com" + - git config --global user.name "Your Name" + - for b in $(git branch -a --list 'statusim/status-autopatch-*'); do git merge $b; done + - git clone --depth 1 https://github.com/nim-lang/csources.git + - cd csources + - sh build.sh + - cd .. + - export PATH=$PWD/bin:$PATH + - nim c koch + - ./koch boot -d:release + - ./koch nimble + - cd .. -install: - - export CHOOSENIM_NO_ANALYTICS=1 - - curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh - - sh init.sh -y - - export PATH=~/.nimble/bin:$PATH - - echo "export PATH=~/.nimble/bin:$PATH" >> ~/.profile - - choosenim $CHANNEL - -script: - - nimble refresh - - nimble test - -branches: - except: - - gh-pages + script: + - nimble install -dy && nimble test