appveyor: Initial integration.
authorJose Fonseca <jfonseca@vmware.com>
Thu, 26 Nov 2015 10:39:41 +0000 (10:39 +0000)
committerJose Fonseca <jfonseca@vmware.com>
Wed, 2 Dec 2015 19:40:53 +0000 (19:40 +0000)
AppVeyor doesn't require an appveyor.yml in the repos (in fact it has
some limitations as noted in comments below), but doing so has two great
advantages over the web UI:

- appveyor.yml can be revisioned together with the code, so instructions
  should always be in synch with the code

- appveyor.yml can be reused for people's private repositories (be on
  fdo or GitHub, etc.)

Acked-by: Roland Scheidegger <sroland@vmware.com>
appveyor.yml [new file with mode: 0644]

diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644 (file)
index 0000000..84dc4de
--- /dev/null
@@ -0,0 +1,62 @@
+# http://www.appveyor.com/docs/appveyor-yml
+#
+# To setup AppVeyor for your own personal repositories do the following:
+# - Sign up
+# - Add a new project
+# - Select Git and fill in the Git clone URL
+# - Setup a Git hook as explained in
+#   https://github.com/appveyor/webhooks#installing-git-hook
+# - Check 'Settings > General > Skip branches without appveyor'
+# - Check 'Settings > General > Rolling builds'
+# - Setup the global or project notifications to your liking
+#
+# Note that kicking (or restarting) a build via the web UI will not work, as it
+# will fail to find appveyor.yml .  The Git hook is the most practical way to
+# kick a build.
+#
+# See also:
+# - 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
+# - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml
+
+version: '{build}'
+
+branches:
+  except:
+  - /^travis.*$/
+
+clone_depth: 5
+
+cache:
+- llvm-3.3.1-msvc2013-mtd.7z
+
+environment:
+  LLVM_ARCHIVE: llvm-3.3.1-msvc2013-mtd.7z
+
+install:
+# Install pip
+- python --version
+- python -m ensurepip
+# Install Mako
+- python -m pip install --egg Mako
+# Install SCons
+- python -m pip install --egg scons==2.4.1
+- scons --version
+# Install flex/bison
+- cinst winflexbison -y
+- win_flex --version
+- win_bison --version
+# Download and extract LLVM
+- if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
+- 7z x -y "%LLVM_ARCHIVE%" > nul
+- mkdir llvm\bin
+- set LLVM=%CD%\llvm
+
+build_script:
+- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1
+
+
+# It's possible to setup notification here, as described in
+# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
+# doing so would cause the notification settings to be replicated across all
+# repos, which is most likely undesired.  So it's better to rely on the
+# Appveyor global/project notification settings.