appveyor.yml revision b8e80941
1# http://www.appveyor.com/docs/appveyor-yml
2#
3# To setup AppVeyor for your own personal repositories do the following:
4# - Sign up
5# - Add a new project
6# - Select Git and fill in the Git clone URL
7# - Setup a Git hook as explained in
8#   https://github.com/appveyor/webhooks#installing-git-hook
9# - Check 'Settings > General > Skip branches without appveyor.yml'
10# - Check 'Settings > General > Rolling builds'
11# - Setup the global or project notifications to your liking
12#
13# Note that kicking (or restarting) a build via the web UI will not work, as it
14# will fail to find appveyor.yml .  The Git hook is the most practical way to
15# kick a build.
16#
17# See also:
18# - http://help.appveyor.com/discussions/problems/2209-node-grunt-build-specify-a-project-or-solution-file-the-directory-does-not-contain-a-project-or-solution-file
19# - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml
20
21version: '{build}'
22
23branches:
24  except:
25  - /^travis.*$/
26
27# Don't download the full Mesa history to speed up cloning.  However the clone
28# depth must not be too small, otherwise builds might fail when lots of patches
29# are committed in succession, because the desired commit is not found on the
30# truncated history.
31#
32# See also:
33# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
34clone_depth: 100
35
36# https://www.appveyor.com/docs/build-cache/
37cache:
38- '%LOCALAPPDATA%\pip\Cache -> appveyor.yml'
39- win_flex_bison-2.5.15.zip
40- llvm-5.0.1-msvc2017-mtd.7z
41
42os: Visual Studio 2017
43
44init:
45# Appveyor defaults core.autocrlf to input instead of the default (true), but
46# that can hide problems processing CRLF text on Windows
47- git config --global core.autocrlf true
48
49environment:
50  WINFLEXBISON_VERSION: 2.5.15
51  LLVM_ARCHIVE: llvm-5.0.1-msvc2017-mtd.7z
52
53install:
54# Check git config
55- git config core.autocrlf
56# Check pip
57- python --version
58- python -m pip --version
59# Install Mako
60- python -m pip install Mako==1.0.7
61# Install pywin32 extensions, needed by SCons
62- python -m pip install pypiwin32
63# Install python wheels, necessary to install SCons via pip
64- python -m pip install wheel
65# Install SCons
66- python -m pip install scons==3.0.1
67- scons --version
68# Install flex/bison
69- set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
70- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
71- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
72- set Path=%CD%\winflexbison;%Path%
73- win_flex --version
74- win_bison --version
75# Download and extract LLVM
76- if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
77- 7z x -y "%LLVM_ARCHIVE%" > nul
78- mkdir llvm\bin
79- set LLVM=%CD%\llvm
80
81build_script:
82- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
83
84after_build:
85- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
86
87
88# It's possible to setup notification here, as described in
89# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
90# doing so would cause the notification settings to be replicated across all
91# repos, which is most likely undesired.  So it's better to rely on the
92# Appveyor global/project notification settings.
93