1# Windows Build Configuration for AppVeyor
2# http://www.appveyor.com/docs/appveyor-yml
3
4# build version format
5version: "{build}"
6
7os: Visual Studio 2013
8
9platform:
10  - x64
11
12configuration:
13  - Debug
14  - Release
15
16branches:
17  only:
18    - master
19
20# Travis advances the master-tot tag to current top of the tree after
21# each push into the master branch, because it relies on that tag to
22# upload build artifacts to the master-tot release. This will cause
23# double testing for each push on Appveyor: one for the push, one for
24# the tag advance. Disable testing tags.
25skip_tags: true
26
27clone_depth: 5
28
29matrix:
30  fast_finish: true # Show final status immediately if a test fails.
31
32# scripts that run after cloning repository
33install:
34  - C:/Python27/python.exe update_glslang_sources.py
35  - git clone https://github.com/google/googletest.git External/googletest
36  - cd External/googletest
37  - git checkout 440527a61e1c91188195f7de212c63c77e8f0a45
38  - cd ../..
39
40build:
41  parallel: true  # enable MSBuild parallel builds
42  verbosity: minimal
43
44build_script:
45  - mkdir build && cd build
46  - cmake -G "Visual Studio 12 2013 Win64" -DCMAKE_INSTALL_PREFIX=install ..
47  - cmake --build . --config %CONFIGURATION% --target install
48
49test_script:
50  - ctest -C %CONFIGURATION% --output-on-failure
51  - cd ../Test && bash runtests
52  - cd ../build
53
54after_test:
55  # For debug build, the generated dll has a postfix "d" in its name.
56  - ps: >-
57      If ($env:configuration -Match "Debug") {
58        $env:SUFFIX="d"
59      } Else {
60        $env:SUFFIX=""
61      }
62  - cd install
63  # Zip all glslang artifacts for uploading and deploying
64  - 7z a glslang-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip
65    bin\glslangValidator.exe
66    bin\spirv-remap.exe
67    include\glslang\*
68    include\SPIRV\*
69    lib\glslang%SUFFIX%.lib
70    lib\HLSL%SUFFIX%.lib
71    lib\OGLCompiler%SUFFIX%.lib
72    lib\OSDependent%SUFFIX%.lib
73    lib\SPIRV%SUFFIX%.lib
74    lib\SPVRemapper%SUFFIX%.lib
75    lib\SPIRV-Tools%SUFFIX%.lib
76    lib\SPIRV-Tools-opt%SUFFIX%.lib
77
78artifacts:
79  - path: build\install\*.zip
80    name: artifacts-zip
81
82deploy:
83  - provider: GitHub
84    auth_token:
85      secure: YglcSYdl0TylEa59H4K6lylBEDr586NAt2EMgZquSo+iuPrwgZQuJLPCoihSm9y6
86    release: master-tot
87    description: "Continuous build of the latest master branch by Appveyor and Travis CI"
88    artifact: artifacts-zip
89    draft: false
90    prerelease: false
91    force_update: true
92    on:
93      branch: master
94      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
95