autoproj-jenkins 0.3.12 → 0.3.13
Sign up to get free protection for your applications and to get access to all the features.
- 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
|