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