packaging 0.88.77 → 0.99.0

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.
Files changed (72) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +128 -74
  3. data/lib/packaging/artifactory.rb +60 -433
  4. data/lib/packaging/config/params.rb +7 -28
  5. data/lib/packaging/config.rb +50 -150
  6. data/lib/packaging/deb/repo.rb +19 -20
  7. data/lib/packaging/gem.rb +83 -41
  8. data/lib/packaging/ips.rb +57 -0
  9. data/lib/packaging/msi.rb +89 -0
  10. data/lib/packaging/nuget.rb +1 -1
  11. data/lib/packaging/osx.rb +36 -0
  12. data/lib/packaging/paths.rb +87 -225
  13. data/lib/packaging/platforms.rb +416 -443
  14. data/lib/packaging/repo.rb +22 -122
  15. data/lib/packaging/retrieve.rb +7 -36
  16. data/lib/packaging/rpm/repo.rb +8 -5
  17. data/lib/packaging/tar.rb +0 -9
  18. data/lib/packaging/util/date.rb +0 -5
  19. data/lib/packaging/util/execution.rb +2 -2
  20. data/lib/packaging/util/git.rb +1 -1
  21. data/lib/packaging/util/gpg.rb +1 -5
  22. data/lib/packaging/util/net.rb +37 -79
  23. data/lib/packaging/util/rake_utils.rb +0 -1
  24. data/lib/packaging/util/ship.rb +13 -142
  25. data/lib/packaging/util/tool.rb +1 -1
  26. data/lib/packaging/util/version.rb +0 -8
  27. data/lib/packaging/util.rb +2 -2
  28. data/lib/packaging.rb +3 -3
  29. data/spec/fixtures/config/params.yaml +2 -0
  30. data/spec/lib/packaging/artifactory_spec.rb +16 -66
  31. data/spec/lib/packaging/config_spec.rb +29 -49
  32. data/spec/lib/packaging/deb/repo_spec.rb +7 -16
  33. data/spec/lib/packaging/paths_spec.rb +56 -321
  34. data/spec/lib/packaging/platforms_spec.rb +21 -46
  35. data/spec/lib/packaging/repo_spec.rb +40 -78
  36. data/spec/lib/packaging/retrieve_spec.rb +8 -47
  37. data/spec/lib/packaging/rpm/repo_spec.rb +4 -4
  38. data/spec/lib/packaging/tar_spec.rb +40 -34
  39. data/spec/lib/packaging/util/git_tag_spec.rb +1 -1
  40. data/spec/lib/packaging/util/gpg_spec.rb +1 -1
  41. data/spec/lib/packaging/util/net_spec.rb +15 -35
  42. data/spec/lib/packaging/util/ship_spec.rb +63 -145
  43. data/spec/spec_helper.rb +14 -0
  44. data/tasks/00_utils.rake +6 -4
  45. data/tasks/apple.rake +0 -2
  46. data/tasks/config.rake +0 -5
  47. data/tasks/education.rake +5 -5
  48. data/tasks/fetch.rake +14 -17
  49. data/tasks/gem.rake +121 -134
  50. data/tasks/jenkins.rake +7 -51
  51. data/tasks/nightly_repos.rake +69 -20
  52. data/tasks/pe_ship.rake +11 -16
  53. data/tasks/retrieve.rake +6 -13
  54. data/tasks/ship.rake +256 -196
  55. data/tasks/sign.rake +135 -63
  56. data/tasks/tar.rake +6 -0
  57. data/templates/packaging.xml.erb +7 -9
  58. data/templates/repo.xml.erb +3 -6
  59. metadata +27 -80
  60. data/lib/packaging/archive.rb +0 -126
  61. data/lib/packaging/artifactory/extensions.rb +0 -94
  62. data/lib/packaging/config/validations.rb +0 -13
  63. data/lib/packaging/metrics.rb +0 -15
  64. data/lib/packaging/sign/deb.rb +0 -9
  65. data/lib/packaging/sign/dmg.rb +0 -41
  66. data/lib/packaging/sign/ips.rb +0 -57
  67. data/lib/packaging/sign/msi.rb +0 -124
  68. data/lib/packaging/sign/rpm.rb +0 -115
  69. data/lib/packaging/sign.rb +0 -8
  70. data/spec/lib/packaging/gem_spec.rb +0 -86
  71. data/spec/lib/packaging/sign_spec.rb +0 -133
  72. data/tasks/archive.rake +0 -69
@@ -3,8 +3,8 @@ require 'spec_helper'
3
3
  describe 'Pkg::Platforms' do
4
4
  describe '#by_package_format' do
5
5
  it 'should return an array of platforms that use a given format' do
6
- deb_platforms = ['debian', 'ubuntu']
7
- rpm_platforms = ['aix', 'el', 'fedora', 'redhatfips', 'sles']
6
+ deb_platforms = ['cumulus', 'debian', 'ubuntu']
7
+ rpm_platforms = ['aix', 'cisco-wrlinux', 'el', 'fedora', 'redhat-fips', 'sles']
8
8
  expect(Pkg::Platforms.by_package_format('deb')).to match_array(deb_platforms)
9
9
  expect(Pkg::Platforms.by_package_format('rpm')).to match_array(rpm_platforms)
10
10
  end
@@ -12,21 +12,21 @@ describe 'Pkg::Platforms' do
12
12
 
13
13
  describe '#formats' do
14
14
  it 'should return all package formats' do
15
- fmts = ['rpm', 'deb', 'dmg', 'svr4', 'ips', 'msi']
15
+ fmts = ['rpm', 'deb', 'swix', 'dmg', 'svr4', 'ips', 'msi']
16
16
  expect(Pkg::Platforms.formats).to match_array(fmts)
17
17
  end
18
18
  end
19
19
 
20
20
  describe '#supported_platforms' do
21
21
  it 'should return all supported platforms' do
22
- platforms = ['aix', 'debian', 'el', 'fedora', 'osx', 'redhatfips', 'sles', 'solaris', 'ubuntu', 'windows', 'windowsfips']
22
+ platforms = ['aix', 'cisco-wrlinux', 'cumulus', 'debian', 'el', 'eos', 'fedora', 'osx', 'redhat-fips', 'sles', 'solaris', 'ubuntu', 'windows']
23
23
  expect(Pkg::Platforms.supported_platforms).to match_array(platforms)
24
24
  end
25
25
  end
26
26
 
27
27
  describe '#versions_for_platform' do
28
28
  it 'should return all supported versions for a given platform' do
29
- expect(Pkg::Platforms.versions_for_platform('el')).to match_array(['5', '6', '7', '8'])
29
+ expect(Pkg::Platforms.versions_for_platform('el')).to match_array(['5', '6', '7'])
30
30
  end
31
31
 
32
32
  it 'should raise an error if given a nonexistent platform' do
@@ -36,7 +36,7 @@ describe 'Pkg::Platforms' do
36
36
 
37
37
  describe '#codenames' do
38
38
  it 'should return all codenames for a given platform' do
39
- codenames = ['focal', 'bionic', 'buster', 'cosmic', 'jessie', 'stretch', 'trusty', 'xenial']
39
+ codenames = ['cumulus', 'wheezy', 'jessie', 'stretch', 'trusty', 'xenial']
40
40
  expect(Pkg::Platforms.codenames).to match_array(codenames)
41
41
  end
42
42
  end
@@ -59,27 +59,19 @@ describe 'Pkg::Platforms' do
59
59
 
60
60
  describe '#arches_for_codename' do
61
61
  it 'should return an array of arches corresponding to a given codename' do
62
- expect(Pkg::Platforms.arches_for_codename('xenial')).to match_array(['amd64', 'i386', 'ppc64el'])
63
- end
64
-
65
- it 'should be able to include source archietectures' do
66
- expect(Pkg::Platforms.arches_for_codename('xenial', true)).to match_array(["amd64", "i386", "ppc64el", "source"])
62
+ expect(Pkg::Platforms.arches_for_codename('trusty')).to match_array(['i386', 'amd64'])
67
63
  end
68
64
  end
69
65
 
70
66
  describe '#codename_to_tags' do
71
67
  it 'should return an array of platform tags corresponding to a given codename' do
72
- expect(Pkg::Platforms.codename_to_tags('xenial')).to match_array(['ubuntu-16.04-i386', 'ubuntu-16.04-amd64', "ubuntu-16.04-ppc64el"])
68
+ expect(Pkg::Platforms.codename_to_tags('trusty')).to match_array(['ubuntu-14.04-i386', 'ubuntu-14.04-amd64'])
73
69
  end
74
70
  end
75
71
 
76
72
  describe '#arches_for_platform_version' do
77
73
  it 'should return an array of arches for a given platform and version' do
78
- expect(Pkg::Platforms.arches_for_platform_version('sles', '12')).to match_array(['x86_64', 'ppc64le'])
79
- end
80
-
81
- it 'should be able to include source architectures' do
82
- expect(Pkg::Platforms.arches_for_platform_version('sles', '12', true)).to match_array(["SRPMS", "ppc64le", "x86_64"])
74
+ expect(Pkg::Platforms.arches_for_platform_version('sles', '11')).to match_array(['i386', 'x86_64', 's390x'])
83
75
  end
84
76
  end
85
77
 
@@ -97,16 +89,14 @@ describe 'Pkg::Platforms' do
97
89
  end
98
90
 
99
91
  describe '#platform_lookup' do
100
- ['osx-10.15-x86_64', 'osx-11-x86_64'].each do |platform|
101
- it 'should return a hash of platform info' do
102
- expect(Pkg::Platforms.platform_lookup(platform)).to be_instance_of(Hash)
103
- end
104
-
105
- it 'should include at least arch and package format keys' do
106
- expect(Pkg::Platforms.platform_lookup(platform).keys).to include(:architectures)
107
- expect(Pkg::Platforms.platform_lookup(platform).keys).to include(:package_format)
108
- end
109
- end
92
+ it 'should return a hash of platform info' do
93
+ expect(Pkg::Platforms.platform_lookup('osx-10.10-x86_64')).to be_instance_of(Hash)
94
+ end
95
+
96
+ it 'should include at least arch and package format keys' do
97
+ expect(Pkg::Platforms.platform_lookup('osx-10.10-x86_64').keys).to include(:architectures)
98
+ expect(Pkg::Platforms.platform_lookup('osx-10.10-x86_64').keys).to include(:package_format)
99
+ end
110
100
  end
111
101
 
112
102
  describe '#get_attribute' do
@@ -115,7 +105,7 @@ describe 'Pkg::Platforms' do
115
105
  end
116
106
 
117
107
  it 'fails with a reasonable error when specified attribute is not defined' do
118
- expect { Pkg::Platforms.get_attribute('osx-10.15-x86_64', :signature_format) }.to raise_error(/doesn't have information/)
108
+ expect { Pkg::Platforms.get_attribute('eos-4-i386', :signature_format) }.to raise_error(/doesn't have information/)
119
109
  end
120
110
  end
121
111
 
@@ -129,15 +119,14 @@ describe 'Pkg::Platforms' do
129
119
  test_cases = {
130
120
  'debian-9-amd64' => ['debian', '9', 'amd64'],
131
121
  'windows-2012-x86' => ['windows', '2012', 'x86'],
132
- 'windowsfips-2012-x64' => ['windowsfips', '2012', 'x64'],
133
122
  'el-7-x86_64' => ['el', '7', 'x86_64'],
123
+ 'cisco-wrlinux-7-x86_64' => ['cisco-wrlinux', '7', 'x86_64'],
124
+ 'cisco-wrlinux-7' => ['cisco-wrlinux', '7', ''],
134
125
  'el-6' => ['el', '6', ''],
135
126
  'xenial-amd64' => ['ubuntu', '16.04', 'amd64'],
136
127
  'xenial' => ['ubuntu', '16.04', ''],
137
128
  'windows-2012' => ['windows', '2012', ''],
138
- 'redhatfips-7-x86_64' => ['redhatfips', '7', 'x86_64'],
139
- 'el-7-SRPMS' => ['el', '7', 'SRPMS'],
140
- 'ubuntu-16.04-source' => ['ubuntu', '16.04', 'source'],
129
+ 'redhat-fips-7-x86_64' => ['redhat-fips', '7', 'x86_64'],
141
130
  }
142
131
 
143
132
  fail_cases = [
@@ -147,8 +136,6 @@ describe 'Pkg::Platforms' do
147
136
  'windows-x86',
148
137
  'el-7-notarch',
149
138
  'debian-7-x86_64',
150
- 'el-7-source',
151
- 'debian-7-SRPMS',
152
139
  ]
153
140
 
154
141
  test_cases.each do |platform_tag, results|
@@ -163,16 +150,4 @@ describe 'Pkg::Platforms' do
163
150
  end
164
151
  end
165
152
  end
166
-
167
- describe '#generic_platform_tag' do
168
- it 'fails for unsupported platforms' do
169
- expect { Pkg::Platforms.generic_platform_tag('butts') }.to raise_error
170
- end
171
-
172
- it 'returns a supported platform tag containing the supplied platform' do
173
- Pkg::Platforms.supported_platforms.each do |platform|
174
- expect(Pkg::Platforms.platform_tags).to include(Pkg::Platforms.generic_platform_tag(platform))
175
- end
176
- end
177
- end
178
153
  end
@@ -16,45 +16,46 @@ describe "#Pkg::Repo" do
16
16
  allow(Pkg::Util::File).to receive(:empty_dir?).and_return(false)
17
17
  allow(Pkg::Util::Execution).to receive(:capture3)
18
18
 
19
- expect(Dir).to receive(:chdir).with('pkg/project/1.1.1').and_yield
19
+ expect(Dir).to receive(:chdir).with("pkg").and_yield
20
+ expect(Dir).to receive(:chdir).with("project/1.1.1").and_yield
20
21
  Pkg::Repo.create_signed_repo_archive("/path", "project-debian-6-i386", "version")
21
22
  end
22
23
 
23
- it 'should use a ref if ref is specified as versioning' do
24
- allow(Pkg::Util::Tool).to receive(:check_tool).and_return('tarcommand')
25
- allow(Dir).to receive(:chdir).with('pkg').and_yield
24
+ it "should use a ref if ref is specified as versioning" do
25
+ allow(Pkg::Util::Tool).to receive(:check_tool).and_return("tarcommand")
26
+ allow(Dir).to receive(:chdir).with("pkg").and_yield
26
27
  allow(Pkg::Util::File).to receive(:empty_dir?).and_return(false)
27
28
  allow(Pkg::Util::Execution).to receive(:capture3)
28
29
 
29
- expect(Pkg::Config).to receive(:project).and_return('project')
30
- expect(Pkg::Config).to receive(:ref).and_return('AAAAAAAAAAAAAAA')
31
- expect(Dir).to receive(:chdir).with('pkg/project/AAAAAAAAAAAAAAA').and_yield
32
- Pkg::Repo.create_signed_repo_archive('/path', 'project-debian-6-i386', 'ref')
30
+ expect(Pkg::Config).to receive(:project).and_return("project")
31
+ expect(Pkg::Config).to receive(:ref).and_return("AAAAAAAAAAAAAAA")
32
+ expect(Dir).to receive(:chdir).with("project/AAAAAAAAAAAAAAA").and_yield
33
+ Pkg::Repo.create_signed_repo_archive("/path", "project-debian-6-i386", "ref")
33
34
  end
34
35
 
35
- it 'should use dot versions if version is specified as versioning' do
36
- allow(Pkg::Util::Tool).to receive(:check_tool).and_return('tarcommand')
37
- allow(Dir).to receive(:chdir).with('pkg').and_yield
36
+ it "should use dot versions if version is specified as versioning" do
37
+ allow(Pkg::Util::Tool).to receive(:check_tool).and_return("tarcommand")
38
+ allow(Dir).to receive(:chdir).with("pkg").and_yield
38
39
  allow(Pkg::Util::File).to receive(:empty_dir?).and_return(false)
39
40
  allow(Pkg::Util::Execution).to receive(:capture3)
40
41
 
41
- expect(Pkg::Config).to receive(:project).and_return('project')
42
- expect(Pkg::Util::Version).to receive(:dot_version).and_return('1.1.1')
43
- expect(Dir).to receive(:chdir).with('pkg/project/1.1.1').and_yield
44
- Pkg::Repo.create_signed_repo_archive('/path', 'project-debian-6-i386', 'version')
42
+ expect(Pkg::Config).to receive(:project).and_return("project")
43
+ expect(Pkg::Util::Version).to receive(:dot_version).and_return("1.1.1")
44
+ expect(Dir).to receive(:chdir).with("project/1.1.1").and_yield
45
+ Pkg::Repo.create_signed_repo_archive("/path", "project-debian-6-i386", "version")
45
46
  end
46
47
 
47
- it 'should fail if ENV["FAIL_ON_MISSING_TARGET"] is true and empty_dir? is also true' do
48
- allow(Pkg::Util::Tool).to receive(:check_tool).and_return('tarcommand')
49
- allow(Pkg::Config).to receive(:project).and_return('project')
50
- allow(Pkg::Util::Version).to receive(:dot_version).and_return('1.1.1')
48
+ it "should fail if ENV['FAIL_ON_MISSING_TARGET'] is true and empty_dir? is also true" do
49
+ allow(Pkg::Util::Tool).to receive(:check_tool).and_return("tarcommand")
50
+ allow(Pkg::Config).to receive(:project).and_return("project")
51
+ allow(Pkg::Util::Version).to receive(:dot_version).and_return("1.1.1")
51
52
  allow(Pkg::Util::Execution).to receive(:capture3)
52
- allow(Dir).to receive(:chdir).with('pkg').and_yield
53
- allow(Dir).to receive(:chdir).with('project/1.1.1').and_yield
53
+ allow(Dir).to receive(:chdir).with("pkg").and_yield
54
+ allow(Dir).to receive(:chdir).with("project/1.1.1").and_yield
54
55
  allow(Pkg::Util::File).to receive(:empty_dir?).and_return(true)
55
- ENV['FAIL_ON_MISSING_TARGET'] = 'true'
56
+ ENV['FAIL_ON_MISSING_TARGET'] = "true"
56
57
 
57
- expect{Pkg::Repo.create_signed_repo_archive('/path', 'project-debian-6-i386', 'version')}.to raise_error(RuntimeError, 'Error: missing packages under /path')
58
+ expect{Pkg::Repo.create_signed_repo_archive("/path", "project-debian-6-i386", "version")}.to raise_error(RuntimeError, "ERROR: missing packages under /path")
58
59
  end
59
60
 
60
61
  it "should only warn if ENV['FAIL_ON_MISSING_TARGET'] is false and empty_dir? is true" do
@@ -62,74 +63,35 @@ describe "#Pkg::Repo" do
62
63
  allow(Pkg::Config).to receive(:project).and_return("project")
63
64
  allow(Pkg::Util::Version).to receive(:dot_version).and_return("1.1.1")
64
65
  allow(Pkg::Util::Execution).to receive(:capture3)
65
- allow(Dir).to receive(:chdir).with("pkg/project/1.1.1").and_yield
66
+ allow(Dir).to receive(:chdir).with("pkg").and_yield
67
+ allow(Dir).to receive(:chdir).with("project/1.1.1").and_yield
66
68
  allow(Pkg::Util::File).to receive(:empty_dir?).and_return(true)
67
69
  ENV['FAIL_ON_MISSING_TARGET'] = "false"
68
70
 
69
71
  expect{Pkg::Repo.create_signed_repo_archive("/path", "project-debian-6-i386", "version")}.not_to raise_error
70
72
  end
71
73
 
72
- it 'should invoke tar correctly' do
73
- allow(Pkg::Util::Tool).to receive(:check_tool).and_return('tarcommand')
74
- allow(Pkg::Config).to receive(:project).and_return('project')
75
- allow(Pkg::Util::Version).to receive(:dot_version).and_return('1.1.1')
76
- allow(Dir).to receive(:chdir).with('pkg/project/1.1.1').and_yield
74
+ it "should invoke tar correctly" do
75
+ allow(Pkg::Util::Tool).to receive(:check_tool).and_return("tarcommand")
76
+ allow(Pkg::Config).to receive(:project).and_return("project")
77
+ allow(Pkg::Util::Version).to receive(:dot_version).and_return("1.1.1")
78
+ allow(Dir).to receive(:chdir).with("pkg").and_yield
79
+ allow(Dir).to receive(:chdir).with("project/1.1.1").and_yield
77
80
  allow(Pkg::Util::File).to receive(:empty_dir?).and_return(false)
78
81
 
79
- expect(Pkg::Util::Execution).to receive(:capture3).with('tarcommand --owner=0 --group=0 --create --gzip --file repos/project-debian-6-i386.tar.gz /path')
80
- Pkg::Repo.create_signed_repo_archive('/path', 'project-debian-6-i386', 'version')
82
+ expect(Pkg::Util::Execution).to receive(:capture3).with("tarcommand --owner=0 --group=0 --create --gzip --file repos/project-debian-6-i386.tar.gz /path")
83
+ Pkg::Repo.create_signed_repo_archive("/path", "project-debian-6-i386", "version")
81
84
  end
82
85
  end
83
86
 
84
- describe '#create_signed_repo_archive' do
85
- it 'should invoke create_signed_repo_archive correctly for multiple entries in platform_repos' do
87
+ describe "#create_signed_repo_archive" do
88
+ it "should invoke create_signed_repo_archive correctly for multiple entries in platform_repos" do
86
89
  allow(Pkg::Config).to receive(:platform_repos).and_return(platform_repo_stub)
87
- allow(Pkg::Config).to receive(:project).and_return('project')
88
- allow(Pkg::Util::Version).to receive(:dot_version).and_return('1.1.1')
89
- allow(Dir).to receive(:chdir).with('pkg/project/1.1.1').and_yield
90
-
91
- expect(Pkg::Repo).to receive(:create_signed_repo_archive).with('repos/el/4/**/i386', 'project-el-4-i386', 'version')
92
- expect(Pkg::Repo).to receive(:create_signed_repo_archive).with('repos/el/5/**/i386', 'project-el-5-i386', 'version')
93
- expect(Pkg::Repo).to receive(:create_signed_repo_archive).with('repos/el/6/**/i386', 'project-el-6-i386', 'version')
94
-
95
- allow(Pkg::Util::Execution).to receive(:capture3)
96
- Pkg::Repo.create_all_repo_archives('project', 'version')
97
- end
98
- end
99
-
100
- describe "#argument_required?" do
101
- let(:repo_command) { "some command with __REPO_PATH__ but not repo name or anything" }
102
- let(:required_arg) { 'repo_path' }
103
- let(:optional_arg) { 'repo_name' }
104
-
105
- it 'should return true if command requires arg' do
106
- expect(Pkg::Repo.argument_required?(required_arg, repo_command)).to be_true
107
- end
108
-
109
- it 'should return false if command does not need arg' do
110
- expect(Pkg::Repo.argument_required?(optional_arg, repo_command)).to be_false
111
- end
112
- end
113
-
114
- describe "#update_repo" do
115
- let(:remote_host) { 'weth.delivery.puppetlabs.net' }
116
- let(:repo_command) { "some command with __REPO_NAME__ and __REPO_PATH__ and stuff" }
117
- let(:repo_name) { 'puppet5' }
118
- let(:repo_path) { '/opt/repository/apt' }
119
- let(:apt_releases) { ['stretch', 'trusty', 'xenial'] }
120
-
121
- before(:each) do
122
- allow(Pkg::Util::Gpg).to receive(:key)
123
- allow(Pkg::Config).to receive(:apt_releases).and_return(apt_releases)
124
- end
125
-
126
- it 'should fail if required params are nil' do
127
- expect{ Pkg::Repo.update_repo(remote_host, repo_command, { :repo_path => repo_path }) }.to raise_error(RuntimeError, /Missing required argument 'repo_name'/)
128
- end
129
90
 
130
- it 'should execute command if optional params are nil' do
131
- expect(Pkg::Util::Net).to receive(:remote_execute).with(remote_host, "some command with #{repo_name} and #{repo_path} and stuff")
132
- Pkg::Repo.update_repo(remote_host, repo_command, { :repo_name => repo_name, :repo_path => repo_path })
91
+ expect(Pkg::Repo).to receive(:create_signed_repo_archive).with("repos/el/4/**/i386", "project-el-4-i386", "version")
92
+ expect(Pkg::Repo).to receive(:create_signed_repo_archive).with("repos/el/5/**/i386", "project-el-5-i386", "version")
93
+ expect(Pkg::Repo).to receive(:create_signed_repo_archive).with("repos/el/6/**/i386", "project-el-6-i386", "version")
94
+ Pkg::Repo.create_all_repo_archives("project", "version")
133
95
  end
134
96
  end
135
97
  end
@@ -7,19 +7,18 @@ describe 'Pkg::Retrieve' do
7
7
  remote_target = 'repos'
8
8
  project = 'puppet-agent'
9
9
  ref = 'b25e64984dd505391f248fe5501ad81e2645b6d2'
10
- foss_platforms = ['el-7-x86_64', 'ubuntu-16.04-amd64', 'osx-10.15-x86_64', 'osx-11-x86_64', 'windows-2012-x64']
10
+ foss_platforms = ['el-7-x86_64', 'ubuntu-16.04-amd64', 'osx-10.11-x86_64', 'windows-2012-x64']
11
11
  platform_data = {:platform_data => {
12
- 'aix-7.1-power' => {:artifact => './aix/7.1/PC1/ppc/puppet-agent-5.3.2.155.gb25e649-1.aix7.1.ppc.rpm'},
12
+ 'aix-6.1-power' => {:artifact => './aix/6.1/PC1/ppc/puppet-agent-5.3.2.155.gb25e649-1.aix6.1.ppc.rpm'},
13
13
  'el-7-x86_64' => {:artifact => './el/7/PC1/x86_64/puppet-agent-5.3.2.155.gb25e649-1.el7.x86_64.rpm'},
14
- 'osx-10.15-x86_64' => {:artifact => './apple/10.15/PC1/x86_64/puppet-agent-5.3.2.155.gb25e649-1.osx10.15.dmg'},
15
- 'osx-11-x86_64' => {:artifact => './apple/11/PC1/x86_64/puppet-agent-5.3.2.155.gb25e649-1.osx11.dmg'},
16
- 'sles-11-i386' => {:artifact => './sles/11/PC1/i386/puppet-agent-5.3.2.155.gb25e649-1.sles11.i386.rpm'},
14
+ 'osx-10.11-x86_64' => {:artifact => './apple/10.11/PC1/x86_64/puppet-agent-5.3.2.155.gb25e649-1.osx10.11.dmg'},
15
+ 'sles-11-s390x' => {:artifact => './sles/11/PC1/s390x/puppet-agent-5.3.2.155.gb25e649-1.sles11.s390x.rpm'},
17
16
  'solaris-10-sparc' => {:artifact => './solaris/10/PC1/puppet-agent-5.3.2.155.gb25e649-1.sparc.pkg.gz'},
18
17
  'ubuntu-16.04-amd64' => {:artifact => './deb/xenial/PC1/puppet-agent_5.3.2.155.gb25e649-1xenial_amd64.deb'},
19
18
  'windows-2012-x64' => {:artifact => './windows/puppet-agent-x64.msi'},
20
19
  }}
21
- build_url = "builds.delivery.puppetlabs.net/#{project}/#{ref}/#{remote_target}"
22
- build_path = "/opt/jenkins-builds/#{project}/#{ref}/#{remote_target}"
20
+ build_url = "builds.delivery.puppetlabs.net/#{project}/#{ref}"
21
+ build_path = "/opt/jenkins-builds/#{project}/#{ref}"
23
22
 
24
23
  before :each do
25
24
  allow(Pkg::Config).to receive(:project).and_return(project)
@@ -29,44 +28,6 @@ describe 'Pkg::Retrieve' do
29
28
  allow(Pkg::Util::Serialization).to receive(:load_yaml).and_return(platform_data)
30
29
  end
31
30
 
32
- describe '#default_wget_command' do
33
- let(:options) { [
34
- "--quiet",
35
- "--recursive",
36
- "--no-parent",
37
- "--no-host-directories",
38
- "--level=0",
39
- "--cut-dirs=3",
40
- "--directory-prefix=#{local_target}",
41
- "--reject='index*",
42
- ] }
43
- before :each do
44
- allow(Pkg::Util::Tool).to receive(:check_tool).with('wget').and_return('wget')
45
- end
46
- context 'when no options passed' do
47
- it 'should include default options' do
48
- options.each do |option|
49
- expect(Pkg::Retrieve.default_wget_command(local_target, build_url)).to include(option)
50
- end
51
- end
52
- end
53
- context 'when options are passed' do
54
- it 'should add to existing options' do
55
- options.push('--convert-links')
56
- options.each do |option|
57
- expect(Pkg::Retrieve.default_wget_command(local_target, build_url, {'convert-links' => true})).to include(option)
58
- end
59
- end
60
- it 'should replace default values' do
61
- options.push('--level=1').delete('--level=0')
62
- expect(Pkg::Retrieve.default_wget_command(local_target, build_url, {'level' => 1})).to_not include('--level=0')
63
- options.each do |option|
64
- expect(Pkg::Retrieve.default_wget_command(local_target, build_url, {'level' => 1})).to include(option)
65
- end
66
- end
67
- end
68
- end
69
-
70
31
  describe '#foss_only_retrieve' do
71
32
  it 'should fail without foss_platforms' do
72
33
  allow(Pkg::Config).to receive(:foss_platforms).and_return(nil)
@@ -87,13 +48,13 @@ describe 'Pkg::Retrieve' do
87
48
  describe '#retrieve_all' do
88
49
  it 'should try to use wget first' do
89
50
  expect(Pkg::Retrieve).to receive(:default_wget)
90
- Pkg::Retrieve.retrieve_all(build_url, build_path, local_target)
51
+ Pkg::Retrieve.retrieve_all(build_url, build_path, remote_target, local_target)
91
52
  end
92
53
 
93
54
  it 'should use rsync if wget is not found' do
94
55
  allow(Pkg::Util::Tool).to receive(:find_tool).with('wget').and_return(nil)
95
56
  expect(Pkg::Util::Net).to receive(:rsync_from)
96
- Pkg::Retrieve.retrieve_all(build_url, build_path, local_target)
57
+ Pkg::Retrieve.retrieve_all(build_url, build_path, remote_target, local_target)
97
58
  end
98
59
  end
99
60
  end
@@ -102,10 +102,10 @@ describe "Pkg::Rpm::Repo" do
102
102
  Pkg::Repo.should_receive(:directories_that_contain_packages).and_return(pkg_directories)
103
103
  Pkg::Repo.should_receive(:populate_repo_directory)
104
104
  Pkg::Rpm::Repo.should_receive(:repo_creation_command).and_return(command)
105
- Pkg::Util::Net.should_receive(:remote_execute).with(Pkg::Config.distribution_server, command)
105
+ Pkg::Util::Net.should_receive(:remote_ssh_cmd).with(Pkg::Config.distribution_server, command)
106
106
  Pkg::Rpm::Repo.should_receive(:generate_repo_configs)
107
107
  Pkg::Rpm::Repo.should_receive(:ship_repo_configs)
108
- Pkg::Util::Net.should_receive(:remote_execute).with(Pkg::Config.distribution_server, "rm -f #{artifact_directory}/repos/.lock" )
108
+ Pkg::Util::Net.should_receive(:remote_ssh_cmd).with(Pkg::Config.distribution_server, "rm -f #{artifact_directory}/repos/.lock" )
109
109
  Pkg::Rpm::Repo.create_remote_repos
110
110
  end
111
111
  end
@@ -124,8 +124,8 @@ describe "Pkg::Rpm::Repo" do
124
124
  Pkg::Config.distribution_server = "a.host.that.wont.exist"
125
125
  repo_dir = "#{Pkg::Config.jenkins_repo_path}/#{Pkg::Config.project}/#{Pkg::Config.ref}/repo_configs/rpm"
126
126
  Pkg::Util::File.should_receive(:empty_dir?).with("pkg/repo_configs/rpm").and_return(false)
127
- Pkg::Util::RakeUtils.should_receive(:invoke_task).with("pl:fetch")
128
- Pkg::Util::Net.should_receive(:remote_execute).with(Pkg::Config.distribution_server, "mkdir -p #{repo_dir}")
127
+ Pkg::Rpm::Repo.should_receive(:invoke_task).with("pl:fetch")
128
+ Pkg::Util::Net.should_receive(:remote_ssh_cmd).with(Pkg::Config.distribution_server, "mkdir -p #{repo_dir}")
129
129
  Pkg::Util::Execution.should_receive(:retry_on_fail).with(:times => 3)
130
130
  Pkg::Rpm::Repo.ship_repo_configs
131
131
  end
@@ -20,44 +20,34 @@ describe "tar.rb" do
20
20
  "#{PROJECT_ROOT}/ext/debian/changelog.erb"
21
21
  ]
22
22
  end
23
- before(:each) do
24
- Pkg::Config.config_from_hash(
25
- {
26
- :templates => templates,
27
- :project => project,
28
- :version => version,
29
- :files => files,
30
- :project_root => PROJECT_ROOT,
31
- :packaging_root => "ext/packaging"
32
- })
33
- end
34
-
35
- describe '#initialize' do
36
- it 'should always mark ext/packaging and pkg directories as excluded files' do
37
- Pkg::Config.tar_excludes = ['foo']
38
- expect(Pkg::Tar.new.excludes).to eql(['foo', 'pkg', 'ext/packaging'])
39
-
40
- Pkg::Config.tar_excludes = []
41
- expect(Pkg::Tar.new.excludes).to eql(['pkg', 'ext/packaging'])
42
- end
43
-
44
- it 'should archive the entire project directory by default' do
45
- Pkg::Config.files = nil
46
- expect(Pkg::Tar.new.files).to eql(Dir.glob('*'))
47
- end
48
-
49
- it 'should archive the user-specified list of files' do
50
- expect(Pkg::Tar.new.files).to eql(files)
51
- end
52
- end
53
23
 
54
24
  describe "#expand_templates" do
55
25
  it "should be invoked when Pkg::Config.templates is set" do
26
+ Pkg::Config.config_from_hash(
27
+ {
28
+ :templates => templates,
29
+ :project => project,
30
+ :version => version,
31
+ :files => files,
32
+ :project_root => PROJECT_ROOT,
33
+ :packaging_root => "ext/packaging"
34
+ })
35
+
56
36
  Pkg::Tar.any_instance.should_receive(:expand_templates)
57
37
  Pkg::Tar.new
58
38
  end
59
39
 
60
40
  it "packaging templates should be filtered and paths should be expanded" do
41
+ Pkg::Config.config_from_hash(
42
+ {
43
+ :templates => templates,
44
+ :project => project,
45
+ :version => version,
46
+ :files => files,
47
+ :project_root => PROJECT_ROOT,
48
+ :packaging_root => "ext/packaging"
49
+ })
50
+
61
51
  templates.each do |temp|
62
52
  if temp.is_a?(String)
63
53
  Dir.stub(:glob).with(File.join(PROJECT_ROOT, temp)).and_return(File.join(PROJECT_ROOT, temp))
@@ -72,11 +62,17 @@ describe "tar.rb" do
72
62
  end
73
63
 
74
64
  describe "#template" do
75
- before(:each) do
76
- Pkg::Config.templates = expanded_templates
77
- end
78
-
79
65
  it "should handle hashes and strings correctly" do
66
+ Pkg::Config.config_from_hash(
67
+ {
68
+ :templates => expanded_templates,
69
+ :project => project,
70
+ :version => version,
71
+ :files => files,
72
+ :project_root => PROJECT_ROOT,
73
+ :packaging_root => "ext/packaging"
74
+ })
75
+
80
76
  # Set up correct stubs and expectations
81
77
  expanded_templates.each do |temp|
82
78
  if temp.is_a?(String)
@@ -96,6 +92,16 @@ describe "tar.rb" do
96
92
  end
97
93
 
98
94
  it "should raise an error if the template source can't be found" do
95
+ Pkg::Config.config_from_hash(
96
+ {
97
+ :templates => expanded_templates,
98
+ :project => project,
99
+ :version => version,
100
+ :files => files,
101
+ :project_root => PROJECT_ROOT,
102
+ :packaging_root => "ext/packaging"
103
+ })
104
+
99
105
  # Set up correct stubs and expectations
100
106
  expanded_templates.each do |temp|
101
107
  if temp.is_a?(String)
@@ -17,7 +17,7 @@ describe "Pkg::Util::Git_tag" do
17
17
 
18
18
  context "branch?" do
19
19
  it "sets ref type as a branch when passed a branch" do
20
- git_tag = Pkg::Util::Git_tag.new("git://github.com/puppetlabs/leatherman.git", "main")
20
+ git_tag = Pkg::Util::Git_tag.new("git://github.com/puppetlabs/leatherman.git", "master")
21
21
  expect(git_tag.branch?).to eq(true)
22
22
  end
23
23
  end
@@ -24,7 +24,7 @@ describe "Pkg::Util::Gpg" do
24
24
 
25
25
  describe '#kill_keychain' do
26
26
  it "doesn't reload the keychain if already loaded" do
27
- Pkg::Util::Gpg.instance_variable_set("@keychain_loaded", true)
27
+ Pkg::Util::Gpg.instance_variable_set("@keychain_loaded", TRUE)
28
28
  Pkg::Util::Gpg.should_receive(:kill_keychain).never
29
29
  Pkg::Util::Gpg.should_receive(:start_keychain).never
30
30
  Pkg::Util::Gpg.load_keychain