lib/autoproj/jenkins/updater.rb in autoproj-jenkins-0.1.0 vs lib/autoproj/jenkins/updater.rb in autoproj-jenkins-0.2.0
- old
+ new
@@ -34,20 +34,10 @@
@ws = ws
@server = server
@job_prefix = job_prefix
end
- # Create the master buildconf job
- #
- # @return [void]
- def create_buildconf_job(force: false, quiet_period: 5)
- if force
- server.delete_job("#{job_prefix}buildconf")
- end
- server.create_job("#{job_prefix}buildconf", 'buildconf.xml', quiet_period: quiet_period)
- end
-
# Update the buildconf pipeline
#
# @param [String] jenkins_url the URL of the jenkins server from the
# point of view of the job's execution
# @param [String] gemfile the gemfile template that should be used for
@@ -64,11 +54,12 @@
manifest_vcs = ws.manifest.vcs
if manifest_vcs.local? || manifest_vcs.none?
raise ArgumentError, "cannot use Jenkins to build an autoproj buildconf that is not on a remotely acessible VCS"
end
- server.update_job_pipeline("#{job_prefix}buildconf", 'buildconf.pipeline',
+ job_name = job_name_from_package_name("buildconf")
+ server.update_job_pipeline(job_name, 'buildconf.pipeline',
vcs: manifest_vcs,
package_names: package_names,
gemfile: gemfile,
autoproj_install_path: autoproj_install_path,
job_prefix: job_prefix,
@@ -85,14 +76,13 @@
# the autoproj bootstrap. Mostly used for autoproj-jenkins development
# within VMs
# @param [Integer] quiet_period the job's quiet period, in seconds.
# Mostly used within autoproj-jenkins tests
def create_or_update_buildconf_job(*packages, gemfile: 'buildconf-Gemfile', autoproj_install_path: nil, dev: false, quiet_period: 5, credentials_id: nil, vcs_credentials: Credentials.new)
- job_name = "#{job_prefix}buildconf"
- if !server.has_job?(job_name)
- create_buildconf_job(quiet_period: quiet_period)
- end
+ job_name = job_name_from_package_name("buildconf")
+ server.create_or_reset_job(job_name, 'buildconf.xml', quiet_period: quiet_period)
+
update_buildconf_pipeline(
*packages,
gemfile: gemfile,
autoproj_install_path: autoproj_install_path,
credentials_id: credentials_id,
@@ -106,22 +96,10 @@
# @return [String]
def job_name_from_package_name(package_name)
"#{job_prefix}#{package_name.gsub('/', '-')}"
end
- # Create a job for a package
- #
- # @return [void]
- def create_package_job(package, job_name: job_name_from_package_name(package.name), force: false, quiet_period: 5)
- job_name = job_name_from_package_name(package.name)
- if force
- server.delete_job(job_name)
- end
-
- server.create_job(job_name, 'package.xml', quiet_period: quiet_period)
- end
-
# Resolve a package by its name
def package_by_name(package_name)
package = ws.manifest.find_package_definition(package_name)
if !package
raise ArgumentError, "no package called #{package_name}"
@@ -169,12 +147,12 @@
def update(*packages, quiet_period: 5, gemfile: 'buildconf-Gemfile', autoproj_install_path: nil, vcs_credentials: Credentials.new)
reverse_dependencies = ws.manifest.compute_revdeps
packages.each do |package|
job_name = job_name_from_package_name(package.name)
- if !server.has_job?(job_name)
- create_package_job(package, job_name: job_name, quiet_period: quiet_period)
- end
+ server.create_or_reset_job(
+ job_name, 'package.xml',
+ job_name: job_name, quiet_period: quiet_period)
end
package_names = packages.map(&:name).to_set
packages.map do |package|
job_name = job_name_from_package_name(package.name)