Add node.js as CI dependency
[gitorious:ci-puppet.git] / modules / gitorious_jenkins / manifests / builder.pp
1 # Gitorious.org config for a Jenkins builder
2
3 class gitorious_jenkins::builder($scl = 'UNSET', $scl_url = 'UNSET') {
4
5   # Homedir parent location for slave account(s)
6   file { '/var/local/jenkins':
7     ensure => directory,
8     group  => 'root',
9     owner  => 'root',
10     mode   => '0755',
11   }
12
13   # The Gitorious test suite requires MySQL.
14   # We can install and enable MySQL, but there are still manual steps required.
15   # 1. Run mysql_secure_installation
16   # 2. Run mysql -p
17   # 3. mysql> CREATE DATABASE gitorious_test;
18   # 4. mysql> CREATE USER 'gitorious'@'localhost' IDENTIFIED BY 'gitorious';
19   # 5. mysql> GRANT ALL ON gitorious_test.* TO 'gitorious'@'localhost';
20   package { 'mysql-server':
21     ensure => installed,
22   }
23   service { 'mysqld':
24     ensure     => running,
25     enable     => true,
26     hasstatus  => true,
27     hasrestart => true,
28     require    => Package['mysql-server'],
29   }
30
31   # Other dependencies (for bundler's gem installations)
32   package { [
33     'file',
34     'gcc',
35     'gcc-c++',
36     'ImageMagick-devel',
37     'libicu-devel',
38     'libxml2-devel',
39     'libxslt-devel',
40     'make',
41     'mysql-devel',
42     'oniguruma-devel',
43     'postgresql-devel',
44     'patch',
45     'sphinx',
46     'tar',
47     'nodejs',
48   ]:
49     ensure => installed,
50   }
51
52   # Should we use the standard ruby packages,
53   # or should we use an alternate SCL package?
54   if ($scl == 'UNSET') {
55     $ruby_devel = 'ruby-devel'
56   } else {
57     $ruby_devel = "${scl}-ruby-devel"
58     yumrepo {$scl :
59       descr    => "${scl} SCL",
60       baseurl  => $scl_url,
61       gpgcheck => 0,
62       before   => Package[$scl, $ruby_devel],
63     }
64     package { $scl :
65       ensure => installed,
66     }
67   }
68
69   package { $ruby_devel :
70     ensure => installed,
71   }
72
73 }