607f653a9e
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
62 lines
1.5 KiB
Puppet
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"],
|
|
}
|
|
|
|
}
|