chiark / gitweb /
buildserver: buildserver/Vagrantfile is configed by .yaml file
[fdroidserver.git] / buildserver / Vagrantfile
1
2 require 'yaml'
3 configfile = YAML.load_file('Vagrantfile.yaml')
4
5 Vagrant.configure("2") do |config|
6
7   if Vagrant.has_plugin?("vagrant-cachier")
8     config.cache.scope = :box
9     config.cache.auto_detect = false
10     config.cache.enable :apt
11     config.cache.enable :chef
12   end
13
14   config.vm.box = configfile['basebox']
15   config.vm.box_url = configfile['baseboxurl']
16
17   config.vm.provider "virtualbox" do |v|
18     v.customize ["modifyvm", :id, "--memory", configfile['memory']]
19     v.customize ["modifyvm", :id, "--cpus", configfile['cpus']]
20     v.customize ["modifyvm", :id, "--hwvirtex", configfile['hwvirtex']]
21   end
22
23   config.vm.boot_timeout = configfile['boot_timeout']
24
25   config.vm.provision :shell, :path => "fixpaths.sh"
26
27   if configfile.has_key? "aptproxy"
28     config.vm.provision :shell, path: "provision-apt-proxy",
29       args: [configfile["aptproxy"]]
30   end
31
32   # buildserver/ is shared to the VM's /vagrant by default so the old
33   # default does not need a custom mount
34   if configfile["cachedir"] != "buildserver/cache"
35     config.vm.synced_folder configfile["cachedir"], '/vagrant/cache',
36       owner: 'root', group: 'root', create: true
37   end
38
39   # cache .deb packages on the host via a mount trick
40   if configfile.has_key? "aptcachedir"
41     config.vm.synced_folder configfile["aptcachedir"], "/var/cache/apt/archives",
42       owner: 'root', group: 'root', create: true
43   end
44
45   config.vm.provision "shell", path: "setup-env-vars",
46     args: ["/home/vagrant/android-sdk"]
47   config.vm.provision "shell", path: "provision-apt-get-install",
48     args: [configfile['debian_mirror']]
49
50   config.vm.provision :chef_solo do |chef|
51     chef.cookbooks_path = "cookbooks"
52     chef.log_level = :debug
53     chef.add_recipe "kivy"
54   end
55
56   config.vm.provision "shell", path: "provision-android-sdk"
57   config.vm.provision "shell", path: "provision-android-ndk",
58     args: ["/home/vagrant/android-ndk"]
59   config.vm.provision "shell", path: "provision-pip",
60     args: ["compare-locales"]
61   config.vm.provision "shell", path: "provision-gradle"
62   config.vm.provision "file", source: "gradle",
63     destination: "/opt/gradle/bin/gradle"
64
65   # let Ubuntu/trusty's paramiko work with the VM instance
66   if `uname -v`.include? "14.04"
67     config.vm.provision "shell", path: "provision-ubuntu-trusty-paramiko"
68   end
69
70 end