diff options
author | Sergio Ahumada <sahumada@blackberry.com> | 2013-12-18 14:01:34 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-02 08:17:56 +0100 |
commit | 183954f2db124a58781e504a63f1391c26ef821c (patch) | |
tree | d42e5cd211058648b5367a5ebde56e62494778ea | |
parent | afe6a6101379975d64c0f917492086e942713378 (diff) |
Add 'bb_tester' puppet module
This module is meant to be used as the basis for setting
up a BlackBerry test node.
Change-Id: Ib03fc11fc2d9232e39f95f3d4796897d76494c97
Reviewed-by: Simo FΓ€lt <simo.falt@digia.com>
Reviewed-by: Tony SarajΓ€rvi <tony.sarajarvi@digia.com>
-rw-r--r-- | README.txt | 15 | ||||
-rw-r--r-- | puppet/modules/bb_tester/manifests/base.pp | 19 | ||||
-rw-r--r-- | puppet/modules/bb_tester/manifests/init.pp | 37 | ||||
-rw-r--r-- | puppet/modules/bb_tester/manifests/params.pp | 17 | ||||
-rw-r--r-- | puppet/modules/bb_tester/manifests/ubuntu.pp | 20 | ||||
-rw-r--r-- | puppet/modules/bb_tester/tests/init.pp | 4 | ||||
-rwxr-xr-x | puppet/nodecfg.pl | 5 |
7 files changed, 110 insertions, 7 deletions
@@ -41,13 +41,14 @@ Here is an example interactive configuration session: Select which of the following best describes the purpose of this host: - (1) ci_server - Qt Project CI system server (Jenkins <-> Gerrit integration) - (2) ci_tester - Qt Project CI tester, performing Qt compilation and autotests - (3) network_test_server - Network test server, used for some QtNetwork autotests (qt-test-server.qt-test-net) - (4) packaging_server - Qt Project packaging server - (5) packaging_tester - Qt Project Packaging tester, performing Qt compilation and autotests - - ? 2 + (1) bb_tester - BlackBerry CI tester, performing Qt compilation and autotests + (2) ci_server - Qt Project CI system server (Jenkins <-> Gerrit integration) + (3) ci_tester - Qt Project CI tester, performing Qt compilation and autotests + (4) network_test_server - Network test server, used for some QtNetwork autotests (qt-test-server.qt-test-net) + (5) packaging_server - Qt Project packaging server + (6) packaging_tester - Qt Project Packaging tester, performing Qt compilation and autotests + + ? 3 Configuring a node of class 'ci_tester' Username of the account used for all testing; diff --git a/puppet/modules/bb_tester/manifests/base.pp b/puppet/modules/bb_tester/manifests/base.pp new file mode 100644 index 0000000..5ddfc73 --- /dev/null +++ b/puppet/modules/bb_tester/manifests/base.pp @@ -0,0 +1,19 @@ +class bb_tester::base { + # bb_tester setup common to all operating systems + class { 'baselayout': + testuser => $bb_tester::testuser, + qt_gerrit_mirror => $bb_tester::qt_gerrit_mirror + } + include puppet + + if $bb_tester::vmware_enabled { + include vmware_deployment + } + + if $bb_tester::jenkins_enabled { + class { 'jenkins_slave': + server => $bb_tester::jenkins_server, + slave_name => $bb_tester::jenkins_slave_name + } + } +} diff --git a/puppet/modules/bb_tester/manifests/init.pp b/puppet/modules/bb_tester/manifests/init.pp new file mode 100644 index 0000000..03e505d --- /dev/null +++ b/puppet/modules/bb_tester/manifests/init.pp @@ -0,0 +1,37 @@ +# BlackBerry CI node for compiling, running autotests +# +class bb_tester( + # user account used for all testing + $testuser = $bb_tester::params::testuser, + + # IP address of qt-test-server network test server + $network_test_server_ip = $bb_tester::params::network_test_server_ip, + + # Jenkins parameters + $jenkins_enabled = $bb_tester::params::jenkins_enabled, + $jenkins_server = $bb_tester::params::jenkins_server, + $jenkins_slave_name = $bb_tester::params::jenkins_slave_name, + + # Deploy VMWare related modules as well? + $vmware_enabled = $bb_tester::params::vmware_enabled, + + # Use icecream distributed compilation tool? + $icecc_enabled = $bb_tester::params::icecc_enabled, + + # icecream scheduler host; empty means autodiscovery + $icecc_scheduler_host = $bb_tester::params::icecc_scheduler_host, + + # local mirror of codereview.qt-project.org + $qt_gerrit_mirror = $bb_tester::params::qt_gerrit_mirror, + + # Use distcc distributed compilation tool? + $distcc_enabled = $bb_tester::params::distcc_enabled, + + $distcc_hosts = $bb_tester::params::distcc_hosts + +) inherits bb_tester::params { + case $::operatingsystem { + Ubuntu: { include bb_tester::ubuntu } + default: { warning("No implementation for bb_tester on $::operatingsystem") } + } +} diff --git a/puppet/modules/bb_tester/manifests/params.pp b/puppet/modules/bb_tester/manifests/params.pp new file mode 100644 index 0000000..ffc276d --- /dev/null +++ b/puppet/modules/bb_tester/manifests/params.pp @@ -0,0 +1,17 @@ +class bb_tester::params { + $testuser = 'qt' + + $network_test_server_ip = undef + $jenkins_enabled = false + $jenkins_server = undef + $jenkins_slave_name = $::hostname + $vmware_enabled = true + + $icecc_enabled = true + $icecc_scheduler_host = '' + + $distcc_enabled = true + $distcc_hosts = 'localhost' + + $qt_gerrit_mirror = undef +} diff --git a/puppet/modules/bb_tester/manifests/ubuntu.pp b/puppet/modules/bb_tester/manifests/ubuntu.pp new file mode 100644 index 0000000..98cd6d4 --- /dev/null +++ b/puppet/modules/bb_tester/manifests/ubuntu.pp @@ -0,0 +1,20 @@ +class bb_tester::ubuntu inherits bb_tester::base { + # Allow test machines to install modules from cpan under $HOME/perl5 + include homedir_cpan + # Install CPAN modules needed outside building + include cpan + + # Allow test machines to install python modules with pip or easy_install + # to $HOME/python26 + include homedir_virtualenv + + # In order to run the BlackBerry installer and the IDE on Ubuntu 64-bit, + # you need to install the 32-bit libraries + if $::lsbmajdistrelease == 11 or $::lsbmajdistrelease == 12 { + if $::architecture == x86_64 or $::architecture == amd64 { + package { + "ia32-libs": ensure => installed; + } + } + } +} diff --git a/puppet/modules/bb_tester/tests/init.pp b/puppet/modules/bb_tester/tests/init.pp new file mode 100644 index 0000000..d9f57ce --- /dev/null +++ b/puppet/modules/bb_tester/tests/init.pp @@ -0,0 +1,4 @@ +# Check that a bb_tester with default arguments doesn't crash... +# We can't check for absence of warnings because we expect the default +# config to warn about some things which need to be set up manually. +include bb_tester diff --git a/puppet/nodecfg.pl b/puppet/nodecfg.pl index 517134b..7a0b9a3 100755 --- a/puppet/nodecfg.pl +++ b/puppet/nodecfg.pl @@ -208,6 +208,11 @@ my %INTERACTIVE = ( parameters => $PARAMETERS_FOR_TESTER }, + bb_tester => { + doc => 'BlackBery CI tester, performing Qt compilation and autotests', + parameters => $PARAMETERS_FOR_TESTER + }, + packaging_tester => { doc => 'Qt Project Packaging tester, performing Qt compilation and autotests', parameters => $PARAMETERS_FOR_TESTER |