aboutsummaryrefslogtreecommitdiffstats
path: root/src/scripts/ci/appveyor.yml
blob: ff1e3859882a76e1a41e01aca434e7546553a434 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Let's call MSVS 2017 the default compiler, 64 bit the default architecture,
# release the default configuration and --enable-shared the default mode.
#
# Build jobs
#  1. six basic builds: 32/64bit on MSVS2013/2015/2017
#  2. MSVC2017 static lib with with amalgamation
#  3. MSVC2017 with debug/sanitizers
#  4. MSVC2015 for Windows RT (TODO)
#
# Note: Avoid the AppVeyor settings `platform` and `configuration` since excluding
# from the build matrix is not supported (https://github.com/appveyor/ci/issues/386)

clone_depth: 5

environment:

  CLCACHE_HARDLINK: 1
  CLCACHE_NODIRECT: 1
  APPVEYOR_CACHE_ENTRY_ZIP_ARGS: -t7z -m0=lzma -mx=9

  matrix:
    # 1
    - MSVS: 2013
      PLATFORM: x86
      TARGET: shared
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
    - MSVS: 2013
      PLATFORM: x86_amd64
      TARGET: shared
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015

    - MSVS: 2015
      PLATFORM: x86
      TARGET: shared
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
    - MSVS: 2015
      PLATFORM: x86_amd64
      TARGET: shared
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015

    - MSVS: 2017
      PLATFORM: x86
      TARGET: shared
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    - MSVS: 2017
      PLATFORM: x86_amd64
      TARGET: shared
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017

    # 2
    - MSVS: 2017
      PLATFORM: x86_amd64
      TARGET: static
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017

    # 3
    - MSVS: 2017
      PLATFORM: x86_amd64
      TARGET: sanitizer
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017

install:
  - call src\scripts\ci\setup_appveyor.bat

build_script:
  - python src\scripts\ci_build.py --os=windows --cc=msvc --compiler-cache=clcache --without-python3 --make-tool=jom --cpu=%PLATFORM% %TARGET%

# whitelist branches to avoid testing feature branches twice (as branch and as pull request)
branches:
  only:
    - master
    - release-2

# Despite claim in docs, %HOME% not supported
cache:
  - C:\Users\Appveyor\clcache -> src\scripts\ci\appveyor.yml