[Mesa-dev] [HOWTO] CI on appveyor with a linux image

Benedikt Schemmer ben at besd.de
Mon May 21 21:39:39 UTC 2018


I thought this might be interesting because currently appveyor is only used with MSVC and LLVM 3.3.1

They can however provide Ubuntu 16.04 LTS. Its free for OSS.
You only need some kind of repository.

Basic setup is easy
https://www.appveyor.com/docs/

The hard part is the appveyor.yml file, which you can find below.
This builds mesa every time you commit.

Probably not the best config options and only for 64-bit, because I dont know how to do 32-bit builds on Ubuntu.
So if somebody does, help is more than welcome.

And if the Vmware guys feel like sharing, this can be merged with the current appveyor.yml (somehow, doesn't seem to hard though)

p.s. there are line breaks after the autogen that you will have to remove manually (should be one long line)
---
# http://www.appveyor.com/doc
#
# 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.yml'
# - 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.*$/

# Don't download the full Mesa history to speed up cloning.  However the clone
# depth must not be too small, otherwise builds might fail when lots of patches
# are committed in succession, because the desired commit is not found on the
# truncated history.
#
# See also:
# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
clone_depth: 100

image: ubuntu
platform: Any CPU
configuration: Release


install:
- ls -al
- sh: sudo sed -i~orig -e 's$# deb-src http://us$deb-src http://us$' /etc/apt/sources.list
- sh: sudo add-apt-repository ppa:oibaf/graphics-drivers
- sh: sudo apt-get update
- sh: sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
- sh: sudo apt-get build-dep mesa -y
- sh: sudo apt-get install libxvmc-dev libxcb-xvmc0-dev libomxil-bellagio-dev -y

build_script:
- sh: ./autogen.sh --enable-dri --with-dri-drivers="nouveau i915 i965 r200 radeon swrast" --enable-osmesa --enable-glx-tls --enable-shared-glapi --enable-texture-float --enable-driglx-direct
--enable-dri3 --with-platforms="x11 wayland drm" --enable-xa --enable-llvm ac_cv_path_LLVM_CONFIG=llvm-config-5.0 --enable-vdpau --enable-omx-bellagio --enable-va --enable-xvmc --enable-opencl
--enable-opencl-icd --enable-nine --enable-gallium-extra-hud --enable-lmsensors --with-gallium-drivers=" nouveau svga r600 r300 i915 virgl radeonsi swrast" --enable-gles1 --enable-gles2 --enable-gle
--with-vulkan-drivers=intel,radeon
- sh: make
- sh: sudo make install


More information about the mesa-dev mailing list