name: MinGW32-CI on: [push, pull_request] # Important: scoop will either install 32-bit GCC or 64-bit GCC, not both. # It is important to build static libraries because cmake is not smart enough under Windows/mingw to take care of the path. So # with a dynamic library, you could get failures due to the fact that the EXE can't find its DLL. jobs: ci: name: windows-gcc runs-on: windows-2016 env: CMAKE_GENERATOR: Ninja # This is critical, try ' cmake -GNinja-DSIMDJSON_BUILD_STATIC=ON .. ' if using the command line CC: gcc CXX: g++ steps: # To reproduce what is below, start a powershell with administrative rights, using scoop *is* a good idea - uses: actions/checkout@v2 - uses: actions/cache@v2 # we cache the scoop setup with 32-bit GCC id: cache with: path: | C:\ProgramData\scoop key: scoop32 # static key: should be good forever - name: Setup Windows # This should almost never run if the cache works. if: steps.cache.outputs.cache-hit != 'true' shell: powershell run: | Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') scoop install sudo --global sudo scoop install git --global sudo scoop install ninja --global sudo scoop install cmake --global sudo scoop install gcc --arch 32bit --global $env:path Write-Host 'Everything has been installed, you are good!' - name: Build and Test 32-bit x86 shell: powershell run: | $ENV:PATH="C:\ProgramData\scoop\shims;C:\ProgramData\scoop\apps\gcc\current\bin;C:\ProgramData\scoop\apps\ninja\current;$ENV:PATH" g++ --version cmake --version ninja --version git --version mkdir build32 cd build32 cmake -DSIMDJSON_BUILD_STATIC=ON -DSIMDJSON_COMPETITION=OFF -DSIMDJSON_GOOGLE_BENCHMARKS=OFF -DSIMDJSON_ENABLE_THREADS=OFF .. cmake --build . --target parse_many_test jsoncheck basictests numberparsingcheck stringparsingcheck errortests integer_tests pointercheck --verbose ctest . -R "(parse_many_test|jsoncheck|basictests|stringparsingcheck|numberparsingcheck|errortests|integer_tests|pointercheck)" --output-on-failure