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 +4 -4
- data/lib/autoproj/cli/jenkins.rb +4 -2
- data/lib/autoproj/cli/main_jenkins.rb +15 -1
- data/lib/autoproj/jenkins/templates/bootstrap.pipeline.erb +3 -1
- data/lib/autoproj/jenkins/templates/buildconf-config.yml.erb +1 -8
- data/lib/autoproj/jenkins/templates/buildconf.pipeline.erb +4 -4
- data/lib/autoproj/jenkins/templates/library.pipeline.erb +4 -0
- data/lib/autoproj/jenkins/templates/package.pipeline.erb +1 -1
- data/lib/autoproj/jenkins/updater.rb +6 -3
- data/lib/autoproj/jenkins/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72a9cb86a1c8f624ec17a0a6ce883707efc5404a
|
4
|
+
data.tar.gz: d86de73479511e2832c12ac3d72a25ee199b9246
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6dceca3786f5b619cd8b44261d6af87f7487775b4f174f45e606edd0f040d015c917929035f21c6e39b33c5f4f8d358c5b9dff0bdfdc331e5dbfdd42a42c1bc
|
7
|
+
data.tar.gz: b6feea0a79c995366cc9efd0fba0f0e34cd9daeeced9e274dcd6a8346eb15e73e6aaa47ae98dad1f700a028bbcc9da586f7e6ab1ae560e2270ebfabecca8dbe3
|
data/lib/autoproj/cli/jenkins.rb
CHANGED
@@ -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
|
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
|
|
@@ -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: "**/*",
|
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.
|
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:
|
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
|