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# changes to these files don't need to trigger testing
21skip_commits:
22  files:
23    - README.md
24    - README-spirv-remap.txt
25    - LICENSE.txt
26    - CODE_OF_CONDUCT.md
27    - BUILD.*
28    - WORKSPACE
29    - kokoro/*
30    - make-revision
31    - Android.mk
32    - _config.yml
33
34# Travis advances the master-tot tag to current top of the tree after
35# each push into the master branch, because it relies on that tag to
36# upload build artifacts to the master-tot release. This will cause
37# double testing for each push on Appveyor: one for the push, one for
38# the tag advance. Disable testing tags.
39skip_tags: true
40
41clone_depth: 5
42
43matrix:
44  fast_finish: true # Show final status immediately if a test fails.
45
46# scripts that run after cloning repository
47install:
48  - C:/Python27/python.exe update_glslang_sources.py
49  - set PATH=C:\ninja;C:\Python36;%PATH%
50  - git clone https://github.com/google/googletest.git External/googletest
51  - cd External/googletest
52  - git checkout 440527a61e1c91188195f7de212c63c77e8f0a45
53  - cd ../..
54
55build:
56  parallel: true  # enable MSBuild parallel builds
57  verbosity: minimal
58
59build_script:
60  - mkdir build && cd build
61  - cmake -G "Visual Studio 12 2013 Win64" -DCMAKE_INSTALL_PREFIX=install ..
62  - cmake --build . --config %CONFIGURATION% --target install
63
64test_script:
65  - ctest -C %CONFIGURATION% --output-on-failure
66  - cd ../Test && bash runtests
67  - cd ../build
68
69after_test:
70  # For debug build, the generated dll has a postfix "d" in its name.
71  - ps: >-
72      If ($env:configuration -Match "Debug") {
73        $env:SUFFIX="d"
74      } Else {
75        $env:SUFFIX=""
76      }
77  - cd install
78  # Zip all glslang artifacts for uploading and deploying
79  - 7z a glslang-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip
80    bin\glslangValidator.exe
81    bin\spirv-remap.exe
82    include\glslang\*
83    lib\glslang%SUFFIX%.lib
84    lib\HLSL%SUFFIX%.lib
85    lib\OGLCompiler%SUFFIX%.lib
86    lib\OSDependent%SUFFIX%.lib
87    lib\SPIRV%SUFFIX%.lib
88    lib\SPVRemapper%SUFFIX%.lib
89    lib\SPIRV-Tools%SUFFIX%.lib
90    lib\SPIRV-Tools-opt%SUFFIX%.lib
91
92artifacts:
93  - path: build\install\*.zip
94    name: artifacts-zip
95
96deploy:
97  - provider: GitHub
98    auth_token:
99      secure: YglcSYdl0TylEa59H4K6lylBEDr586NAt2EMgZquSo+iuPrwgZQuJLPCoihSm9y6
100    release: master-tot
101    description: "Continuous build of the latest master branch by Appveyor and Travis CI"
102    artifact: artifacts-zip
103    draft: false
104    prerelease: false
105    force_update: true
106    on:
107      branch: master
108      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
109