autoproj-jenkins 0.3.12 → 0.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b13ae4987a42da1d0a0c189cfd334388ee517144
4
- data.tar.gz: 8a9c5782ebb1d54b488d01dcb4aefbe0c1312071
3
+ metadata.gz: 72a9cb86a1c8f624ec17a0a6ce883707efc5404a
4
+ data.tar.gz: d86de73479511e2832c12ac3d72a25ee199b9246
5
5
  SHA512:
6
- metadata.gz: aabb3ee8fe4f6854088c23ce1b2c189acd4baf222a8a8437a76396efe7b104a5a9c09e242fdcec61444dbe11efa19ac2b48ca7b0a83f41981044a1ed8c4baff3
7
- data.tar.gz: 86f7d440a45487a65e1fd51fb00271877afeb4e4fa7fdfe27ce80741d9f9c80af9360e044c6c30a731bbf4cd3cbdb4830b4e50ea6530c87cc51f918f71158509
6
+ metadata.gz: a6dceca3786f5b619cd8b44261d6af87f7487775b4f174f45e606edd0f040d015c917929035f21c6e39b33c5f4f8d358c5b9dff0bdfdc331e5dbfdd42a42c1bc
7
+ data.tar.gz: b6feea0a79c995366cc9efd0fba0f0e34cd9daeeced9e274dcd6a8346eb15e73e6aaa47ae98dad1f700a028bbcc9da586f7e6ab1ae560e2270ebfabecca8dbe3
@@ -22,7 +22,7 @@ module Autoproj
22
22
  results
23
23
  end
24
24
 
25
- def create_or_update_buildconf_job(*package_names, dev: false, credentials_id: nil, vcs_credentials: [])
25
+ def create_or_update_buildconf_job(*package_names, seed: nil, dev: false, credentials_id: nil, vcs_credentials: [])
26
26
  initialize_and_load
27
27
 
28
28
  if dev
@@ -38,12 +38,13 @@ module Autoproj
38
38
  # the buildconf template, so that the metapackage gets resolved
39
39
  # each time instead of only at the point 'jenkins init' was done
40
40
  updater.create_or_update_buildconf_job(*package_names, gemfile: gemfile,
41
+ seed: seed,
41
42
  autoproj_install_path: autoproj_install_path, dev: dev,
42
43
  credentials_id: credentials_id,
43
44
  vcs_credentials: parse_vcs_credentials(vcs_credentials))
44
45
  end
45
46
 
46
- def add_or_update_packages(*package_names, dev: false, vcs_credentials: [])
47
+ def add_or_update_packages(*package_names, seed: nil, dev: false, vcs_credentials: [])
47
48
  initialize_and_load
48
49
  source_packages, _ = finalize_setup(package_names, non_imported_packages: :ignore)
49
50
  source_packages = source_packages.map do |package_name|
@@ -60,6 +61,7 @@ module Autoproj
60
61
 
61
62
  updater.update(
62
63
  *source_packages,
64
+ seed: seed,
63
65
  gemfile: gemfile,
64
66
  autoproj_install_path: autoproj_install_path,
65
67
  vcs_credentials: parse_vcs_credentials(vcs_credentials))
@@ -59,12 +59,19 @@ module Autoproj
59
59
  default: 'autoproj-jenkins-cli'
60
60
  option :vcs_credentials, desc: 'list of vcs_type:URLs for which credentials should be provided (see documentation)',
61
61
  type: :array, default: []
62
+ option :seed, desc: 'a YAML file containing seed configuration',
63
+ type: :string
62
64
  def init(url, *package_names)
63
65
  require 'autoproj/cli/jenkins'
64
66
  ops = create_ops(url, target_os: options[:target_os])
65
67
 
68
+ if options[:seed]
69
+ seed = File.read(options[:seed])
70
+ end
71
+
66
72
  ops.create_or_update_buildconf_job(
67
73
  *package_names,
74
+ seed: seed,
68
75
  credentials_id: options[:credentials_id],
69
76
  vcs_credentials: options[:vcs_credentials],
70
77
  dev: options[:dev])
@@ -79,11 +86,18 @@ module Autoproj
79
86
  type: :boolean, default: false
80
87
  option :vcs_credentials, desc: 'list of vcs_type:URLs for which credentials should be provided (see documentation)',
81
88
  type: :array, default: []
89
+ option :seed, desc: 'a YAML file containing seed configuration',
90
+ type: :string
82
91
  def update(url, *package_names)
83
92
  require 'autoproj/cli/jenkins'
93
+
94
+ if options[:seed]
95
+ seed = File.read(options[:seed])
96
+ end
97
+
84
98
  ops = create_ops(url)
85
99
  Autoproj.report(silent: !options[:debug], debug: options[:debug]) do
86
- updated_jobs = ops.add_or_update_packages(*package_names, dev: options[:dev], vcs_credentials: options[:vcs_credentials])
100
+ updated_jobs = ops.add_or_update_packages(*package_names, seed: seed, dev: options[:dev], vcs_credentials: options[:vcs_credentials])
87
101
  updated_jobs.sort.each do |job_name|
88
102
  puts job_name
89
103
  end
@@ -6,7 +6,9 @@ sh 'wget -O autoproj_install https://raw.githubusercontent.com/rock-core/autopro
6
6
  <% end %>
7
7
  def gemfile = "<%= read_and_escape_file gemfile %>"
8
8
  writeFile file: 'Gemfile', text: gemfile
9
- def config = "<%= render_template('buildconf-config.yml', vcs: vcs, escape: true) %>"
9
+ def user_seed_config = "<%= escape_to_groovy(seed) %>"
10
+ writeFile file: 'user_seed.yml', text: user_seed_config
11
+ def config = "<%= render_template('buildconf-config.yml', seed: seed, vcs: vcs, escape: true) %>"
10
12
  writeFile file: 'seed.yml', text: config
11
13
  dir('dev') {
12
14
  sh "ruby ../autoproj_install --skip-stage2 --seed-config=../seed.yml --gems-path=${env.JENKINS_HOME}/cache/gems --gemfile=../Gemfile"
@@ -1,14 +1,7 @@
1
1
  osdeps_mode: 'all'
2
- GITORIOUS: http,http,http
3
- GITHUB: http,http,http
4
2
  separate_prefixes: true
5
- ROCK_SELECTED_FLAVOR: master
6
- ROCK_FLAVOR: master
7
- ROCK_BRANCH: master
8
- USE_OCL: false
9
- rtt_target: gnulinux
10
- rtt_corba_implementation: omniorb
11
3
  autoproj_test_utility_default: true
12
4
  import_log_enabled: false
13
5
  jenkins_ci: true
14
6
  <%= ::YAML.dump('manifest_source' => vcs.to_hash).gsub(/^---\s*/, '') %>
7
+ <%= seed %>
@@ -5,7 +5,7 @@ node(label: 'autoproj-jenkins') {
5
5
  def autoproj = "${fullWorkspaceDir}/dev/.autoproj/bin/autoproj"
6
6
 
7
7
  stage('bootstrap') {
8
- <%= render_template('bootstrap.pipeline', poll: true, vcs: vcs, gemfile: gemfile, autoproj_install_path: autoproj_install_path, vcs_credentials: vcs_credentials, indent: 4) %>
8
+ <%= render_template('bootstrap.pipeline', seed: seed, poll: true, vcs: vcs, gemfile: gemfile, autoproj_install_path: autoproj_install_path, vcs_credentials: vcs_credentials, indent: 4) %>
9
9
  }
10
10
 
11
11
  dir('dev') {
@@ -37,15 +37,15 @@ node(label: 'autoproj-jenkins') {
37
37
  jobNames = withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: '<%= credentials_id %>',
38
38
  usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
39
39
  def credentials = " --username '${env.USERNAME}' --password '${env.PASSWORD}'"
40
- sh(script: "${autoproj} jenkins update${arg_dev}${arg_job_prefix} '${env.JENKINS_URL}' ${arg_packages}${credentials}${arg_vcs_credentials}", returnStdout: true).split("\n")
40
+ sh(script: "${autoproj} jenkins update${arg_dev}${arg_job_prefix} --seed=../user_seed.yml '${env.JENKINS_URL}' ${arg_packages}${credentials}${arg_vcs_credentials}", returnStdout: true).split("\n")
41
41
  }
42
42
  <% else %>
43
43
  jobNames = sh(
44
- script: "${autoproj} jenkins update${arg_dev}${arg_job_prefix} 'http://localhost:8080' ${arg_packages}${arg_vcs_credentials}",
44
+ script: "${autoproj} jenkins update${arg_dev}${arg_job_prefix} --seed=../user_seed.yml 'http://localhost:8080' ${arg_packages}${arg_vcs_credentials}",
45
45
  returnStdout: true).split("\n")
46
46
  <% end %>
47
+ triggerDownstreamJobs(jobNames)
47
48
  }
48
- triggerDownstreamJobs(jobNames)
49
49
  }
50
50
  }
51
51
 
@@ -8,6 +8,10 @@ def isUpstreamOK(jobName, buildId)
8
8
  }
9
9
 
10
10
  def build = job.getBuild(buildId.toString())
11
+ if (!build)
12
+ {
13
+ error("cannot find build ${buildId} of job ${jobName}")
14
+ }
11
15
 
12
16
  def result = build.getResult()
13
17
  if (result)
@@ -44,7 +44,7 @@ node(label: 'autoproj-jenkins') {
44
44
  def upstreamPackagePrefixes = null
45
45
 
46
46
  stage('bootstrap') {
47
- <%= render_template('bootstrap.pipeline', poll: false, vcs: buildconf_vcs, gemfile: gemfile, autoproj_install_path: autoproj_install_path, vcs_credentials: vcs_credentials, indent: 4) %>
47
+ <%= render_template('bootstrap.pipeline', seed: seed, poll: false, vcs: buildconf_vcs, gemfile: gemfile, autoproj_install_path: autoproj_install_path, vcs_credentials: vcs_credentials, indent: 4) %>
48
48
 
49
49
  def jenkins_dependency_overrides = "<%= render_template 'jenkins_dependency_overrides.rb', escape: true, package_name: package_name, upstream_jobs: upstream_jobs %>"
50
50
  writeFile file: 'dev/autoproj/overrides.d/99_jenkins_dependency_overrides.rb',
@@ -50,7 +50,7 @@ module Autoproj::Jenkins
50
50
  # with --dev or not
51
51
  # @param [Array<Autoproj::PackageDefinition>] packages if non-empty,
52
52
  # restrict operations to these packages and their dependencies
53
- def render_buildconf_pipeline(*package_names, gemfile: 'buildconf-Gemfile', autoproj_install_path: nil, dev: false, credentials_id: nil, vcs_credentials: Credentials.new)
53
+ def render_buildconf_pipeline(*package_names, gemfile: 'buildconf-Gemfile', autoproj_install_path: nil, dev: false, credentials_id: nil, vcs_credentials: Credentials.new, seed: nil)
54
54
  manifest_vcs = ws.manifest.vcs
55
55
  if manifest_vcs.local? || manifest_vcs.none?
56
56
  raise ArgumentError, "cannot use Jenkins to build an autoproj buildconf that is not on a remotely acessible VCS"
@@ -64,6 +64,7 @@ module Autoproj::Jenkins
64
64
  autoproj_install_path: autoproj_install_path,
65
65
  job_prefix: job_prefix,
66
66
  credentials_id: credentials_id,
67
+ seed: seed,
67
68
  vcs_credentials: vcs_credentials,
68
69
  dev: dev)
69
70
  end
@@ -77,7 +78,7 @@ module Autoproj::Jenkins
77
78
  # within VMs
78
79
  # @param [Integer] quiet_period the job's quiet period, in seconds.
79
80
  # Mostly used within autoproj-jenkins tests
80
- def create_or_update_buildconf_job(*package_names, gemfile: 'buildconf-Gemfile', autoproj_install_path: nil, dev: false, quiet_period: 5, credentials_id: nil, vcs_credentials: Credentials.new)
81
+ def create_or_update_buildconf_job(*package_names, gemfile: 'buildconf-Gemfile', autoproj_install_path: nil, seed: nil, dev: false, quiet_period: 5, credentials_id: nil, vcs_credentials: Credentials.new)
81
82
  job_name = job_name_from_package_name("buildconf")
82
83
 
83
84
  pipeline = render_buildconf_pipeline(
@@ -86,6 +87,7 @@ module Autoproj::Jenkins
86
87
  autoproj_install_path: autoproj_install_path,
87
88
  credentials_id: credentials_id,
88
89
  vcs_credentials: vcs_credentials,
90
+ seed: seed,
89
91
  dev: dev)
90
92
  server.create_or_reset_job(job_name, 'buildconf.xml', pipeline: pipeline, quiet_period: quiet_period)
91
93
  end
@@ -144,7 +146,7 @@ module Autoproj::Jenkins
144
146
  #
145
147
  # @return [Array<String>] the list of names of the jobs that have been
146
148
  # created/updated
147
- def update(*packages, quiet_period: 5, gemfile: 'buildconf-Gemfile', autoproj_install_path: nil, vcs_credentials: Credentials.new)
149
+ def update(*packages, seed: nil, quiet_period: 5, gemfile: 'buildconf-Gemfile', autoproj_install_path: nil, vcs_credentials: Credentials.new)
148
150
  reverse_dependencies = ws.manifest.compute_revdeps
149
151
 
150
152
  package_names = packages.map(&:name).to_set
@@ -168,6 +170,7 @@ module Autoproj::Jenkins
168
170
  pipeline = server.render_pipeline(job_name, 'package.pipeline',
169
171
  buildconf_vcs: ws.manifest.vcs,
170
172
  vcs: package.vcs,
173
+ seed: seed,
171
174
  package_name: package.name,
172
175
  package_dir: Pathname.new(package.autobuild.srcdir).relative_path_from(Pathname.new(ws.root_dir)).to_s,
173
176
  artifact_glob: "**/*",
@@ -1,5 +1,5 @@
1
1
  module Autoproj
2
2
  module Jenkins
3
- VERSION = "0.3.12"
3
+ VERSION = "0.3.13"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoproj-jenkins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.12
4
+ version: 0.3.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvain Joyeux
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-24 00:00:00.000000000 Z
11
+ date: 2017-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jenkins_api_client