Chris Forbes | cc5697f | 2019-01-30 11:54:08 -0800 | [diff] [blame] | 1 | # Windows Build Configuration for AppVeyor |
| 2 | # http://www.appveyor.com/docs/appveyor-yml |
| 3 | |
| 4 | # version format |
| 5 | version: "{build}" |
| 6 | |
| 7 | # The most recent compiler gives the most interesting new results. |
| 8 | # Put it first so we get its feedback first. |
| 9 | os: |
| 10 | - Visual Studio 2017 |
| 11 | #- Visual Studio 2013 |
| 12 | |
| 13 | platform: |
| 14 | - x64 |
| 15 | |
| 16 | configuration: |
| 17 | - Debug |
| 18 | #- Release |
| 19 | |
| 20 | branches: |
| 21 | only: |
| 22 | - master |
| 23 | |
| 24 | # Travis advances the master-tot tag to current top of the tree after |
| 25 | # each push into the master branch, because it relies on that tag to |
| 26 | # upload build artifacts to the master-tot release. This will cause |
| 27 | # double testing for each push on Appveyor: one for the push, one for |
| 28 | # the tag advance. Disable testing tags. |
| 29 | skip_tags: true |
| 30 | |
| 31 | clone_depth: 1 |
| 32 | |
| 33 | matrix: |
| 34 | fast_finish: true # Show final status immediately if a test fails. |
| 35 | #exclude: |
| 36 | # - os: Visual Studio 2013 |
| 37 | # configuration: Debug |
| 38 | |
| 39 | # scripts that run after cloning repository |
| 40 | install: |
| 41 | # Install ninja |
| 42 | - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip" |
| 43 | - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip |
| 44 | - 7z x ninja.zip -oC:\ninja > nul |
Ben Clayton | b73b760 | 2019-07-29 13:56:13 +0100 | [diff] [blame] | 45 | - set PATH=C:\ninja;C:\Python36;%PATH% |
Chris Forbes | cc5697f | 2019-01-30 11:54:08 -0800 | [diff] [blame] | 46 | |
| 47 | before_build: |
| 48 | - git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers |
| 49 | - git clone --depth=1 https://github.com/google/googletest.git external/googletest |
| 50 | - git clone --depth=1 https://github.com/google/effcee.git external/effcee |
| 51 | - git clone --depth=1 https://github.com/google/re2.git external/re2 |
| 52 | # Set path and environment variables for the current Visual Studio version |
| 53 | - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2013" (call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64) |
| 54 | - 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) |
| 55 | |
| 56 | build: |
| 57 | parallel: true # enable MSBuild parallel builds |
| 58 | verbosity: minimal |
| 59 | |
| 60 | build_script: |
| 61 | - mkdir build && cd build |
Ben Clayton | b73b760 | 2019-07-29 13:56:13 +0100 | [diff] [blame] | 62 | - cmake -GNinja -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DCMAKE_INSTALL_PREFIX=install -DRE2_BUILD_TESTING=OFF .. |
Chris Forbes | cc5697f | 2019-01-30 11:54:08 -0800 | [diff] [blame] | 63 | - ninja install |
| 64 | |
| 65 | test_script: |
Ben Clayton | b73b760 | 2019-07-29 13:56:13 +0100 | [diff] [blame] | 66 | - ctest -C %CONFIGURATION% --output-on-failure --timeout 310 |
Chris Forbes | cc5697f | 2019-01-30 11:54:08 -0800 | [diff] [blame] | 67 | |
| 68 | after_test: |
| 69 | # Zip build artifacts for uploading and deploying |
| 70 | - cd install |
| 71 | - 7z a SPIRV-Tools-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip *\* |
| 72 | |
| 73 | artifacts: |
| 74 | - path: build\install\*.zip |
| 75 | name: artifacts-zip |
| 76 | |
| 77 | deploy: |
| 78 | - provider: GitHub |
| 79 | auth_token: |
| 80 | secure: TMfcScKzzFIm1YgeV/PwCRXFDCw8Xm0wY2Vb2FU6WKlbzb5eUITTpr6I5vHPnAxS |
| 81 | release: master-tot |
| 82 | description: "Continuous build of the latest master branch by Appveyor and Travis CI" |
| 83 | artifact: artifacts-zip |
| 84 | draft: false |
| 85 | prerelease: false |
| 86 | force_update: true |
| 87 | on: |
| 88 | branch: master |
| 89 | APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 |