summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergio Ahumada <sahumada@blackberry.com>2013-12-18 14:01:34 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-02 08:17:56 +0100
commit183954f2db124a58781e504a63f1391c26ef821c (patch)
treed42e5cd211058648b5367a5ebde56e62494778ea
parentafe6a6101379975d64c0f917492086e942713378 (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.txt15
-rw-r--r--puppet/modules/bb_tester/manifests/base.pp19
-rw-r--r--puppet/modules/bb_tester/manifests/init.pp37
-rw-r--r--puppet/modules/bb_tester/manifests/params.pp17
-rw-r--r--puppet/modules/bb_tester/manifests/ubuntu.pp20
-rw-r--r--puppet/modules/bb_tester/tests/init.pp4
-rwxr-xr-xpuppet/nodecfg.pl5
7 files changed, 110 insertions, 7 deletions
diff --git a/README.txt b/README.txt
index b2cad7b..e55f183 100644
--- a/README.txt
+++ b/README.txt
@@ -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