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)