mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-14 19:10:11 +01:00
14de399bb7
This is the last thing using Chef, which adds a lot of time to the time it takes to fully provision the buildserver. This slows down development on the things we are actually using, like running all builds on jenkins.debian.net. #210 #165
63 lines
2.2 KiB
Ruby
63 lines
2.2 KiB
Ruby
|
|
require 'yaml'
|
|
configfile = YAML.load_file('Vagrantfile.yaml')
|
|
|
|
Vagrant.configure("2") do |config|
|
|
|
|
# these two caching methods conflict, so only use one at a time
|
|
if Vagrant.has_plugin?("vagrant-cachier") and not configfile.has_key? "aptcachedir"
|
|
config.cache.scope = :box
|
|
config.cache.auto_detect = false
|
|
config.cache.enable :apt
|
|
config.cache.enable :chef
|
|
end
|
|
|
|
config.vm.box = configfile['basebox']
|
|
config.vm.box_url = configfile['baseboxurl']
|
|
|
|
config.vm.provider "virtualbox" do |v|
|
|
v.customize ["modifyvm", :id, "--memory", configfile['memory']]
|
|
v.customize ["modifyvm", :id, "--cpus", configfile['cpus']]
|
|
v.customize ["modifyvm", :id, "--hwvirtex", configfile['hwvirtex']]
|
|
end
|
|
|
|
config.vm.boot_timeout = configfile['boot_timeout']
|
|
|
|
if configfile.has_key? "aptproxy"
|
|
config.vm.provision :shell, path: "provision-apt-proxy",
|
|
args: [configfile["aptproxy"]]
|
|
end
|
|
|
|
# buildserver/ is shared to the VM's /vagrant by default so the old
|
|
# default does not need a custom mount
|
|
if configfile["cachedir"] != "buildserver/cache"
|
|
config.vm.synced_folder configfile["cachedir"], '/vagrant/cache',
|
|
owner: 'root', group: 'root', create: true
|
|
end
|
|
|
|
# cache .deb packages on the host via a mount trick
|
|
if configfile.has_key? "aptcachedir"
|
|
config.vm.synced_folder configfile["aptcachedir"], "/var/cache/apt/archives",
|
|
owner: 'root', group: 'root', create: true
|
|
end
|
|
|
|
config.vm.provision "shell", path: "setup-env-vars",
|
|
args: ["/home/vagrant/android-sdk"]
|
|
config.vm.provision "shell", path: "provision-apt-get-install",
|
|
args: [configfile['debian_mirror']]
|
|
config.vm.provision "shell", path: "provision-android-sdk"
|
|
config.vm.provision "shell", path: "provision-android-ndk",
|
|
args: ["/home/vagrant/android-ndk"]
|
|
config.vm.provision "shell", path: "provision-pip",
|
|
args: ["compare-locales"]
|
|
config.vm.provision "shell", path: "provision-gradle"
|
|
config.vm.provision "file", source: "gradle",
|
|
destination: "/opt/gradle/bin/gradle"
|
|
|
|
# let Ubuntu/trusty's paramiko work with the VM instance
|
|
if `uname -v`.include? "14.04"
|
|
config.vm.provision "shell", path: "provision-ubuntu-trusty-paramiko"
|
|
end
|
|
|
|
end
|