Skip to content

Commit b6e9c9b

Browse files
authored
Merge pull request #9364 from joshcooper/nightly_gems
(PA-6427) Add rake tasks for building nightly gem
2 parents 73e253a + a587c45 commit b6e9c9b

File tree

2 files changed

+67
-41
lines changed

2 files changed

+67
-41
lines changed

Rakefile

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,43 @@ end
2929

3030
namespace :pl_ci do
3131
desc 'Build puppet gems'
32-
task :gem_build do
33-
stdout, stderr, status = Open3.capture3('gem build puppet.gemspec --platform x86-mingw32 && gem build puppet.gemspec --platform x64-mingw32 && gem build puppet.gemspec --platform universal-darwin && gem build puppet.gemspec')
32+
task :gem_build, [:gemspec] do |t, args|
33+
args.with_defaults(gemspec: 'puppet.gemspec')
34+
stdout, stderr, status = Open3.capture3(<<~END)
35+
gem build #{args.gemspec} --platform x86-mingw32 && \
36+
gem build #{args.gemspec} --platform x64-mingw32 && \
37+
gem build #{args.gemspec} --platform universal-darwin && \
38+
gem build #{args.gemspec}
39+
END
3440
if !status.exitstatus.zero?
35-
puts "Error building facter.gemspec \n#{stdout} \n#{stderr}"
41+
puts "Error building #{args.gemspec}\n#{stdout} \n#{stderr}"
3642
exit(1)
3743
else
3844
puts stdout
3945
end
4046
end
47+
48+
desc 'build the nightly puppet gems'
49+
task :nightly_gem_build do
50+
# this is taken from `rake package:nightly_gem`
51+
extended_dot_version = %x{git describe --tags --dirty --abbrev=7}.chomp.tr('-', '.')
52+
53+
# we must create tempfile in the same directory as puppetg.gemspec, since
54+
# it uses __dir__ to determine which files to include
55+
require 'tempfile'
56+
Tempfile.create('gemspec', __dir__) do |dst|
57+
File.open('puppet.gemspec', 'r') do |src|
58+
src.readlines.each do |line|
59+
if line.match?(/version\s*=\s*['"][0-9.]+['"]/)
60+
line = "spec.version = '#{extended_dot_version}'"
61+
end
62+
dst.puts line
63+
end
64+
end
65+
dst.flush
66+
Rake::Task['pl_ci:gem_build'].invoke(dst.path)
67+
end
68+
end
4169
end
4270

4371
task :spec do

puppet.gemspec

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,43 @@
1-
Gem::Specification.new do |s|
2-
s.name = "puppet"
3-
version = "8.7.0"
4-
mdata = version.match(/(\d+\.\d+\.\d+)/)
5-
s.version = mdata ? mdata[1] : version
6-
s.licenses = ['Apache-2.0']
1+
Gem::Specification.new do |spec|
2+
spec.name = "puppet"
3+
spec.version = "8.7.0"
4+
spec.licenses = ['Apache-2.0']
75

8-
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1")
9-
s.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
10-
s.authors = ["Puppet Labs"]
11-
s.date = "2012-08-17"
12-
s.description = <<~EOF
6+
spec.required_rubygems_version = Gem::Requirement.new("> 1.3.1")
7+
spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
8+
spec.authors = ["Puppet Labs"]
9+
spec.date = "2012-08-17"
10+
spec.description = <<~EOF
1311
Puppet, an automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks
1412
(such as adding users, installing packages, and updating server configurations) based on a centralized specification.
1513
EOF
16-
s.email = "[email protected]"
17-
s.executables = ["puppet"]
18-
s.files = Dir['[A-Z]*'] + Dir['install.rb'] + Dir['bin/*'] + Dir['lib/**/*'] + Dir['conf/*'] + Dir['man/**/*'] + Dir['tasks/*'] + Dir['locales/**/*'] + Dir['ext/**/*'] + Dir['examples/**/*']
19-
s.license = "Apache-2.0"
20-
s.homepage = "https://github.com/puppetlabs/puppet"
21-
s.rdoc_options = ["--title", "Puppet - Configuration Management", "--main", "README", "--line-numbers"]
22-
s.require_paths = ["lib"]
23-
s.summary = "Puppet, an automated configuration management tool"
24-
s.specification_version = 4
25-
s.add_runtime_dependency(%q<facter>, [">= 4.3.0", "< 5"])
26-
s.add_runtime_dependency(%q<semantic_puppet>, "~> 1.0")
27-
s.add_runtime_dependency(%q<fast_gettext>, ">= 2.1", "< 3")
28-
s.add_runtime_dependency(%q<locale>, "~> 2.1")
29-
s.add_runtime_dependency(%q<multi_json>, "~> 1.13")
30-
s.add_runtime_dependency(%q<puppet-resource_api>, "~> 1.5")
31-
s.add_runtime_dependency(%q<concurrent-ruby>, "~> 1.0")
32-
s.add_runtime_dependency(%q<deep_merge>, "~> 1.0")
33-
s.add_runtime_dependency(%q<scanf>, "~> 1.0")
14+
spec.email = "[email protected]"
15+
spec.executables = ["puppet"]
16+
spec.files = Dir['[A-Z]*'] + Dir['install.rb'] + Dir['bin/*'] + Dir['lib/**/*'] + Dir['conf/*'] + Dir['man/**/*'] + Dir['tasks/*'] + Dir['locales/**/*'] + Dir['ext/**/*'] + Dir['examples/**/*']
17+
spec.license = "Apache-2.0"
18+
spec.homepage = "https://github.com/puppetlabs/puppet"
19+
spec.rdoc_options = ["--title", "Puppet - Configuration Management", "--main", "README", "--line-numbers"]
20+
spec.require_paths = ["lib"]
21+
spec.summary = "Puppet, an automated configuration management tool"
22+
spec.specification_version = 4
23+
spec.add_runtime_dependency(%q<facter>, [">= 4.3.0", "< 5"])
24+
spec.add_runtime_dependency(%q<semantic_puppet>, "~> 1.0")
25+
spec.add_runtime_dependency(%q<fast_gettext>, ">= 2.1", "< 3")
26+
spec.add_runtime_dependency(%q<locale>, "~> 2.1")
27+
spec.add_runtime_dependency(%q<multi_json>, "~> 1.13")
28+
spec.add_runtime_dependency(%q<puppet-resource_api>, "~> 1.5")
29+
spec.add_runtime_dependency(%q<concurrent-ruby>, "~> 1.0")
30+
spec.add_runtime_dependency(%q<deep_merge>, "~> 1.0")
31+
spec.add_runtime_dependency(%q<scanf>, "~> 1.0")
3432

35-
platform = s.platform.to_s
36-
if platform == 'universal-darwin'
37-
s.add_runtime_dependency('CFPropertyList', ['>= 3.0.6', '< 4'])
38-
end
33+
platform = spec.platform.to_s
34+
if platform == 'universal-darwin'
35+
spec.add_runtime_dependency('CFPropertyList', ['>= 3.0.6', '< 4'])
36+
end
3937

40-
if platform == 'x64-mingw32' || platform == 'x86-mingw32'
41-
# ffi 1.16.0 - 1.16.2 are broken on Windows
42-
s.add_runtime_dependency('ffi', '>= 1.15.5', '< 1.17.0', '!= 1.16.0', '!= 1.16.1', '!= 1.16.2')
43-
s.add_runtime_dependency('minitar', '~> 0.9')
44-
end
38+
if platform == 'x64-mingw32' || platform == 'x86-mingw32'
39+
# ffi 1.16.0 - 1.16.2 are broken on Windows
40+
spec.add_runtime_dependency('ffi', '>= 1.15.5', '< 1.17.0', '!= 1.16.0', '!= 1.16.1', '!= 1.16.2')
41+
spec.add_runtime_dependency('minitar', '~> 0.9')
42+
end
4543
end

0 commit comments

Comments
 (0)