| # Windows Build Configuration for AppVeyor |
| # http://www.appveyor.com/docs/appveyor-yml |
| |
| # version format |
| version: "{build}" |
| |
| # The most recent compiler gives the most interesting new results. |
| # Put it first so we get its feedback first. |
| os: |
| - Visual Studio 2017 |
| - Visual Studio 2015 |
| |
| platform: |
| - x64 |
| |
| configuration: |
| - Debug |
| - Release |
| |
| branches: |
| only: |
| - master |
| |
| # Travis advances the master-tot tag to current top of the tree after |
| # each push into the master branch, because it relies on that tag to |
| # upload build artifacts to the master-tot release. This will cause |
| # double testing for each push on Appveyor: one for the push, one for |
| # the tag advance. Disable testing tags. |
| skip_tags: true |
| |
| clone_depth: 1 |
| |
| matrix: |
| fast_finish: true # Show final status immediately if a test fails. |
| exclude: |
| - os: Visual Studio 2015 |
| configuration: Debug |
| |
| # scripts that run after cloning repository |
| install: |
| # Install ninja |
| - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip" |
| - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip |
| - 7z x ninja.zip -oC:\ninja > nul |
| - set PATH=C:\ninja;%PATH% |
| |
| before_build: |
| - git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers |
| - git clone --depth=1 https://github.com/google/googletest.git external/googletest |
| - git clone --depth=1 https://github.com/google/effcee.git external/effcee |
| - git clone --depth=1 https://github.com/google/re2.git external/re2 |
| # Set path and environment variables for the current Visual Studio version |
| - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64) |
| - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" (call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64) |
| |
| build: |
| parallel: true # enable MSBuild parallel builds |
| verbosity: minimal |
| |
| build_script: |
| - mkdir build && cd build |
| - cmake -GNinja -DSPIRV_BUILD_COMPRESSION=ON -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DCMAKE_INSTALL_PREFIX=install .. |
| - ninja install |
| |
| test_script: |
| - ctest -C %CONFIGURATION% --output-on-failure --timeout 300 |
| |
| after_test: |
| # Zip build artifacts for uploading and deploying |
| - cd install |
| - 7z a SPIRV-Tools-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip *\* |
| |
| artifacts: |
| - path: build\install\*.zip |
| name: artifacts-zip |
| |
| deploy: |
| - provider: GitHub |
| auth_token: |
| secure: TMfcScKzzFIm1YgeV/PwCRXFDCw8Xm0wY2Vb2FU6WKlbzb5eUITTpr6I5vHPnAxS |
| release: master-tot |
| description: "Continuous build of the latest master branch by Appveyor and Travis CI" |
| artifact: artifacts-zip |
| draft: false |
| prerelease: false |
| force_update: true |
| on: |
| branch: master |
| APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 |