summaryrefslogtreecommitdiff
path: root/appveyor.yml
blob: 634a5215ccb5264aaeb7102d2ff735550f733201 (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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
branches:
  only:
    - master

environment:

  global:
    # Workaround for https://github.com/conda/conda-build/issues/636
    PYTHONIOENCODING: UTF-8
    CONDA_INSTALL_LOCN: "C:\\Miniconda35-x64"
    CMAKE_OPTIONS: ""
    CPP_TEST_OPTIONS: ""

  matrix:
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      CMAKE_VS_VERSION: "10 2010"
      CMAKE_OPTIONS: "-DFLATBUFFERS_BUILD_LEGACY=1"
      CPP_TEST_OPTIONS: "--std-cpp c++0x"
      MONSTER_EXTRA: "skip"

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      CMAKE_VS_VERSION: "12 2013"
      MONSTER_EXTRA: "skip"

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      CMAKE_VS_VERSION: "14 2015"
      MONSTER_EXTRA: ""

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      CMAKE_VS_VERSION: "15 2017"
      CMAKE_OPTIONS: "-DFLATBUFFERS_ENABLE_PCH=1"
      MONSTER_EXTRA: ""

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      CMAKE_VS_VERSION: "16 2019"
      CMAKE_OPTIONS: "-DFLATBUFFERS_ENABLE_PCH=1"
      MONSTER_EXTRA: ""

platform:
  - x86
  - x64

configuration:
  - Debug
  - Release

before_build:
  - set MONSTER_EXTRA=%MONSTER_EXTRA%
  - cmake . -G"Visual Studio %CMAKE_VS_VERSION%" -DFLATBUFFERS_CODE_SANITIZE=1 %CMAKE_OPTIONS%
  # This cuts down on a lot of noise generated by xamarin warnings.
  - if exist "C:\Program Files (x86)\MSBuild\14.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets" del "C:\Program Files (x86)\MSBuild\14.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets"
  - if exist "C:\Program Files (x86)\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets" del "C:\Program Files (x86)\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets"
  - if exist "C:\Program Files (x86)\MSBuild\16.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets" del "C:\Program Files (x86)\MSBuild\16.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets"

build:
  project: ALL_BUILD.vcxproj
  verbosity: minimal

after_build:
  - python conan/appveyor/install.py
  - python conan/appveyor/build.py

install:
  - set PATH=%CONDA_INSTALL_LOCN%;%CONDA_INSTALL_LOCN%\scripts;%PATH%;
  - curl -sSf -o rustup-init.exe https://win.rustup.rs/
  - rustup-init.exe -y
  - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
  - rustc -V
  - cargo -V

test_script:
  - call .appveyor\check-generate-code.bat -b %CONFIGURATION%
  - "cd tests"
  - rem "Building all code"
  - generate_code.bat -b %CONFIGURATION% %CPP_TEST_OPTIONS%
  - 7z a GeneratedMyGameCode.zip MyGame\
  - rem "---------------- C++ -----------------"
  - "cd .."
  - "%CONFIGURATION%\\flattests.exe"
  - "cd tests"
  - rem "---------------- Java -----------------"
  - "java -version"
  - "JavaTest.bat"
  - rem "---------------- Rust ----------------"
  - "RustTest.bat"
  - rem "---------------- JS -----------------"
  - "node --version"
  - "..\\%CONFIGURATION%\\flatc -b -I include_test monster_test.fbs unicode_test.json"
  - "node JavaScriptTest ./monster_test_generated"
  - rem "-------------- Python ---------------"
  - where python
  - python --version
  - where pip
  - pip --version
  - where conda
  - conda --version
  - rem "installing flatbuffers python library"
  - pip install ../python
  - rem "testing without installing Numpy"
  - python py_test.py 0 0 0
  - rem "testing after installing Numpy - disabled"
  # FIXME: This has a LOT of unnecessary dependencies and makes the tests fail
  # with timeouts.
  # - conda install --yes numpy
  # - python py_test.py 0 0 0
  - rem "---------------- C# -----------------"
  # Have to compile this here rather than in "build" above because AppVeyor only
  # supports building one project??
  - "cd FlatBuffers.Test"
  - "copy ..\\monsterdata_test.mon Resources\\"
  - "copy ..\\monsterdata_test.json Resources\\"
  - "dotnet new sln"
  - "dotnet sln add FlatBuffers.Test.csproj"
  - "nuget restore"
  - "msbuild.exe /property:Configuration=Release;OutputPath=tempcs /verbosity:minimal FlatBuffers.Test.csproj"
  - "tempcs\\FlatBuffers.Test.exe"
  # Run tests with UNSAFE_BYTEBUFFER
  - "msbuild.exe /property:Configuration=Release;UnsafeByteBuffer=true;OutputPath=tempcsUnsafe /verbosity:minimal FlatBuffers.Test.csproj"
  - "tempcsUnsafe\\FlatBuffers.Test.exe"
  # TODO: add more languages.
  - "cd ..\\.."

artifacts:
  - path: $(CONFIGURATION)\flatc.exe
    name: flatc.exe
  - path: tests\GeneratedMyGameCode.zip
    name: GeneratedMyGameCode.zip