summaryrefslogtreecommitdiffstats
path: root/QA
diff options
context:
space:
mode:
Diffstat (limited to 'QA')
-rwxr-xr-xQA/CrossDistributionTest/VagrantCrossDistributionTest.py7
-rw-r--r--QA/CrossDistributionTest/playbook.yml4
2 files changed, 9 insertions, 2 deletions
diff --git a/QA/CrossDistributionTest/VagrantCrossDistributionTest.py b/QA/CrossDistributionTest/VagrantCrossDistributionTest.py
index ed0639c..3530fe5 100755
--- a/QA/CrossDistributionTest/VagrantCrossDistributionTest.py
+++ b/QA/CrossDistributionTest/VagrantCrossDistributionTest.py
@@ -1,82 +1,87 @@
#!/usr/bin/env python
# Required Python libraries:
#
# pip install python-vagrant tqdm
#
# Purpose of this script:
#
# This script tests
# a) InstallSwiftDependencies.sh installs all required packages for Swift and Swiften on system and
# b) all Swift projects build successfully on the system and their tests pass.
from tqdm import tqdm
from time import sleep
import sys
import vagrant
testSystems = [
"bento/ubuntu-16.04",
"bento/ubuntu-15.04",
"bento/debian-8.5",
"bento/opensuse-leap-42.1",
"bento/fedora-24",
+ "Sabayon/spinbase-amd64"
]
progressBar = tqdm(testSystems)
successfulSystems = []
failedSystems = []
for testSystem in progressBar :
v = vagrant.Vagrant(quiet_stdout=False)
try :
progressBar.set_description("create Vagrantfile for %s" % testSystem)
with open('Vagrantfile', 'w') as vagrantfile :
vagrantfile.write("""
Vagrant.configure("2") do |config|
config.vm.box = "%s"
config.ssh.insert_key = false
config.vm.provider "virtualbox" do |v|
- v.memory = 3072
+ v.memory = 4096
v.cpus = 2
end
# This is needed because Fedora only comes with Python 3 and Ansible needs Python 2
# on the target system for some features.
if config.vm.box.include? "fedora"
config.vm.provision "shell", inline: "sudo dnf install -y python2 python2-dnf libselinux-python"
end
+ if config.vm.box.include? "Sabayon"
+ config.vm.provision "shell", inline: "sudo equo update && sudo env ACCEPT_LICENSE=* equo install dev-vcs/git sys-apps/lsb-release"
+ end
+
config.vm.synced_folder "../..", "/home/vagrant/swift-host", type: "rsync"
config.vm.synced_folder ".", "/vagrant", type: "rsync"
config.vm.provision "ansible" do |ansible|
#ansible.verbose = "vvv"
ansible.playbook = "playbook.yml"
end
end""" % testSystem)
progressBar.set_description("vagrant up")
v.up(testSystem, provision=True )
progressBar.set_description("start building swift on %s" % testSystem)
# unset QTDIR is needed, because Fedora 24 sets QTDIR to Qt 3, even though Qt 5 is installed.
# SCons will pick up the Qt installation from QTDIR if QTDIR is set.
v._call_vagrant_command(["ssh", "-c", "cd /home/vagrant/swift && unset QTDIR && ./scons test=unit -j 2"])
progressBar.set_description("vagrant destory %s" % testSystem)
v.destroy()
successfulSystems.append(testSystem)
except :
e = sys.exc_info()[0]
print("Exception: %s" % e)
progressBar.set_description("vagrant destory %s" % testSystem)
v.destroy()
failedSystems.append(testSystem)
for system in successfulSystems:
print("SUCCESS: %s" % system)
for system in failedSystems:
diff --git a/QA/CrossDistributionTest/playbook.yml b/QA/CrossDistributionTest/playbook.yml
index bad4d30..aa4b8f5 100644
--- a/QA/CrossDistributionTest/playbook.yml
+++ b/QA/CrossDistributionTest/playbook.yml
@@ -1,31 +1,33 @@
- hosts: all
tasks:
- name: Install required packages via apt
apt: name=git state=latest update_cache=yes
become: true
when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'
- name: Install required packages via dnf
dnf: name={{item}} state=latest
with_items:
- git
- redhat-lsb
become: true
when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux' or ansible_distribution == 'RedHat' or ansible_distribution == 'Fedora'
- name: 'Install required packages via zypper'
zypper: name={{item}} state=latest
with_items:
- git-core
- lsb-release
become: true
when: ansible_distribution == 'openSUSE Leap'
- name: Clone git from host working directory
git: repo=/home/vagrant/swift-host dest=/home/vagrant/swift
- - name: 'Install Swift dependencies'
+ - name: 'Install Swift dependencies for openSUSE Leap'
shell: ./BuildTools/InstallSwiftDependencies.sh --non-interactive chdir=/home/vagrant/swift
become: true
when: ansible_distribution == 'openSUSE Leap'
- name: 'Install Swift dependencies'
+ environment:
+ ACCEPT_LICENSE: '*'
shell: yes | ./BuildTools/InstallSwiftDependencies.sh chdir=/home/vagrant/swift
become: true
when: ansible_distribution != 'openSUSE Leap'