Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 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 |
Jose Fonseca | 1c0f95f | 2016-01-24 18:33:58 +0000 | [diff] [blame] | 9 | # - Check 'Settings > General > Skip branches without appveyor.yml' |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 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 | |
| 21 | version: '{build}' |
| 22 | |
| 23 | branches: |
| 24 | except: |
| 25 | - /^travis.*$/ |
| 26 | |
Jose Fonseca | 1c0f95f | 2016-01-24 18:33:58 +0000 | [diff] [blame] | 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 |
| 34 | clone_depth: 100 |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 35 | |
| 36 | cache: |
Jose Fonseca | bfb8afb | 2018-10-12 10:09:07 +0100 | [diff] [blame^] | 37 | - win_flex_bison-2.5.15.zip |
Jose Fonseca | b94f9cd | 2018-10-12 09:52:52 +0100 | [diff] [blame] | 38 | - llvm-5.0.1-msvc2017-mtd.7z |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 39 | |
Jose Fonseca | b94f9cd | 2018-10-12 09:52:52 +0100 | [diff] [blame] | 40 | os: Visual Studio 2017 |
Jose Fonseca | 06b63f1 | 2016-08-11 14:11:00 +0100 | [diff] [blame] | 41 | |
Jose Fonseca | 9e5e3a8 | 2018-08-17 16:39:33 +0100 | [diff] [blame] | 42 | init: |
| 43 | # Appveyor defaults core.autocrlf to input instead of the default (true), but |
| 44 | # that can hide problems processing CRLF text on Windows |
| 45 | - git config --global core.autocrlf true |
| 46 | |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 47 | environment: |
Jose Fonseca | bfb8afb | 2018-10-12 10:09:07 +0100 | [diff] [blame^] | 48 | WINFLEXBISON_VERSION: 2.5.15 |
Jose Fonseca | b94f9cd | 2018-10-12 09:52:52 +0100 | [diff] [blame] | 49 | LLVM_ARCHIVE: llvm-5.0.1-msvc2017-mtd.7z |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 50 | |
| 51 | install: |
Jose Fonseca | 9e5e3a8 | 2018-08-17 16:39:33 +0100 | [diff] [blame] | 52 | # Check git config |
| 53 | - git config core.autocrlf |
Jose Fonseca | a9a0c69 | 2015-12-08 22:26:32 +0000 | [diff] [blame] | 54 | # Check pip |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 55 | - python --version |
Jose Fonseca | a9a0c69 | 2015-12-08 22:26:32 +0000 | [diff] [blame] | 56 | - python -m pip --version |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 57 | # Install Mako |
Jose Fonseca | bfb8afb | 2018-10-12 10:09:07 +0100 | [diff] [blame^] | 58 | - python -m pip install Mako==1.0.7 |
Jose Fonseca | 16627fc | 2016-08-11 14:00:35 +0100 | [diff] [blame] | 59 | # Install pywin32 extensions, needed by SCons |
| 60 | - python -m pip install pypiwin32 |
Jose Fonseca | bb9faba | 2017-03-28 11:39:26 +0100 | [diff] [blame] | 61 | # Install python wheels, necessary to install SCons via pip |
| 62 | - python -m pip install wheel |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 63 | # Install SCons |
Jose Fonseca | b94f9cd | 2018-10-12 09:52:52 +0100 | [diff] [blame] | 64 | - python -m pip install scons==3.0.1 |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 65 | - scons --version |
| 66 | # Install flex/bison |
Jose Fonseca | bfb8afb | 2018-10-12 10:09:07 +0100 | [diff] [blame^] | 67 | - set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip |
| 68 | - if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%" |
Jose Fonseca | a9a0c69 | 2015-12-08 22:26:32 +0000 | [diff] [blame] | 69 | - 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul |
| 70 | - set Path=%CD%\winflexbison;%Path% |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 71 | - win_flex --version |
| 72 | - win_bison --version |
| 73 | # Download and extract LLVM |
| 74 | - if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%" |
| 75 | - 7z x -y "%LLVM_ARCHIVE%" > nul |
| 76 | - mkdir llvm\bin |
| 77 | - set LLVM=%CD%\llvm |
| 78 | |
| 79 | build_script: |
Jose Fonseca | b94f9cd | 2018-10-12 09:52:52 +0100 | [diff] [blame] | 80 | - scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 81 | |
Jose Fonseca | 8fcacb4 | 2016-04-13 13:58:57 +0100 | [diff] [blame] | 82 | after_build: |
Jose Fonseca | b94f9cd | 2018-10-12 09:52:52 +0100 | [diff] [blame] | 83 | - scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check |
Jose Fonseca | 8fcacb4 | 2016-04-13 13:58:57 +0100 | [diff] [blame] | 84 | |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 85 | |
| 86 | # It's possible to setup notification here, as described in |
| 87 | # http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but |
| 88 | # doing so would cause the notification settings to be replicated across all |
| 89 | # repos, which is most likely undesired. So it's better to rely on the |
| 90 | # Appveyor global/project notification settings. |