system-config/modules/jenkins/manifests/job_builder.pp
Clark Boylan 607f653a9e Be conservative requiring python-yaml.
A lot of modules require python-yaml. Be conservative requiring this
package to avoid conflicts when two or more of these modules end up
being used on the same host.

Change-Id: I35bf4f1070e6f248734c593e9277b737166904c1
Reviewed-on: https://review.openstack.org/13688
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Paul Belanger <paul.belanger@polybeacon.com>
Approved: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
2012-09-26 23:40:42 +00:00

62 lines
1.5 KiB
Puppet

class jenkins::job_builder (
$url,
$username,
$password,
) {
# A lot of things need yaml, be conservative requiring this package to avoid
# conflicts with other modules.
if ! defined(Package['python-yaml']) {
package { 'python-yaml':
ensure => "present",
}
}
package { "python-jenkins":
ensure => latest, # okay to use latest for pip
provider => pip,
require => Class[pip]
}
vcsrepo { "/opt/jenkins_job_builder":
ensure => latest,
provider => git,
revision => "master",
source => "https://github.com/openstack-ci/jenkins-job-builder.git",
}
exec { "install_jenkins_job_builder":
command => "python setup.py install",
cwd => "/opt/jenkins_job_builder",
path => "/bin:/usr/bin",
refreshonly => true,
subscribe => Vcsrepo["/opt/jenkins_job_builder"],
}
file { "/etc/jenkins_jobs":
ensure => "directory",
}
exec { "jenkins_jobs_update":
command => "jenkins-jobs update /etc/jenkins_jobs/config",
path => '/bin:/usr/bin:/usr/local/bin',
refreshonly => true,
require => [
File['/etc/jenkins_jobs/jenkins_jobs.ini'],
Package['python-jenkins'],
Package['python-yaml']
]
}
# TODO: We should put in notify Exec['jenkins_jobs_update']
# at some point, but that still has some problems.
file { "/etc/jenkins_jobs/jenkins_jobs.ini":
owner => 'jenkins',
mode => 400,
ensure => 'present',
content => template('jenkins/jenkins_jobs.ini.erb'),
require => File["/etc/jenkins_jobs"],
}
}