packaging 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 (114) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +17 -0
  3. data/README-Solaris.md +117 -0
  4. data/README.md +1031 -0
  5. data/lib/packaging.rb +32 -0
  6. data/lib/packaging/artifactory.rb +278 -0
  7. data/lib/packaging/config.rb +392 -0
  8. data/lib/packaging/config/params.rb +366 -0
  9. data/lib/packaging/deb.rb +28 -0
  10. data/lib/packaging/deb/repo.rb +263 -0
  11. data/lib/packaging/gem.rb +112 -0
  12. data/lib/packaging/ips.rb +57 -0
  13. data/lib/packaging/msi.rb +89 -0
  14. data/lib/packaging/nuget.rb +39 -0
  15. data/lib/packaging/osx.rb +36 -0
  16. data/lib/packaging/paths.rb +238 -0
  17. data/lib/packaging/platforms.rb +480 -0
  18. data/lib/packaging/repo.rb +55 -0
  19. data/lib/packaging/retrieve.rb +46 -0
  20. data/lib/packaging/rpm.rb +5 -0
  21. data/lib/packaging/rpm/repo.rb +257 -0
  22. data/lib/packaging/tar.rb +154 -0
  23. data/lib/packaging/util.rb +146 -0
  24. data/lib/packaging/util/date.rb +15 -0
  25. data/lib/packaging/util/execution.rb +85 -0
  26. data/lib/packaging/util/file.rb +125 -0
  27. data/lib/packaging/util/git.rb +174 -0
  28. data/lib/packaging/util/git_tags.rb +73 -0
  29. data/lib/packaging/util/gpg.rb +62 -0
  30. data/lib/packaging/util/jenkins.rb +95 -0
  31. data/lib/packaging/util/misc.rb +69 -0
  32. data/lib/packaging/util/net.rb +368 -0
  33. data/lib/packaging/util/os.rb +17 -0
  34. data/lib/packaging/util/platform.rb +40 -0
  35. data/lib/packaging/util/rake_utils.rb +111 -0
  36. data/lib/packaging/util/serialization.rb +19 -0
  37. data/lib/packaging/util/ship.rb +171 -0
  38. data/lib/packaging/util/tool.rb +41 -0
  39. data/lib/packaging/util/version.rb +326 -0
  40. data/spec/fixtures/config/ext/build_defaults.yaml +2 -0
  41. data/spec/fixtures/config/ext/project_data.yaml +2 -0
  42. data/spec/fixtures/config/params.yaml +2 -0
  43. data/spec/fixtures/configs/components/test_file.json +1 -0
  44. data/spec/fixtures/configs/components/test_file_2.json +0 -0
  45. data/spec/fixtures/configs/components/test_file_not_tagged.json +1 -0
  46. data/spec/fixtures/configs/components/test_file_wrong_ext.txt +0 -0
  47. data/spec/fixtures/configs/components/test_file_wrong_ext.wrong +0 -0
  48. data/spec/fixtures/util/pre_tasks.yaml +4 -0
  49. data/spec/lib/packaging/artifactory_spec.rb +171 -0
  50. data/spec/lib/packaging/config_spec.rb +556 -0
  51. data/spec/lib/packaging/deb/repo_spec.rb +148 -0
  52. data/spec/lib/packaging/deb_spec.rb +52 -0
  53. data/spec/lib/packaging/paths_spec.rb +153 -0
  54. data/spec/lib/packaging/platforms_spec.rb +153 -0
  55. data/spec/lib/packaging/repo_spec.rb +97 -0
  56. data/spec/lib/packaging/retrieve_spec.rb +61 -0
  57. data/spec/lib/packaging/rpm/repo_spec.rb +133 -0
  58. data/spec/lib/packaging/tar_spec.rb +122 -0
  59. data/spec/lib/packaging/util/execution_spec.rb +56 -0
  60. data/spec/lib/packaging/util/file_spec.rb +139 -0
  61. data/spec/lib/packaging/util/git_spec.rb +160 -0
  62. data/spec/lib/packaging/util/git_tag_spec.rb +36 -0
  63. data/spec/lib/packaging/util/gpg_spec.rb +64 -0
  64. data/spec/lib/packaging/util/jenkins_spec.rb +112 -0
  65. data/spec/lib/packaging/util/misc_spec.rb +31 -0
  66. data/spec/lib/packaging/util/net_spec.rb +239 -0
  67. data/spec/lib/packaging/util/os_spec.rb +31 -0
  68. data/spec/lib/packaging/util/rake_utils_spec.rb +70 -0
  69. data/spec/lib/packaging/util/ship_spec.rb +117 -0
  70. data/spec/lib/packaging/util/version_spec.rb +123 -0
  71. data/spec/lib/packaging_spec.rb +19 -0
  72. data/spec/spec_helper.rb +36 -0
  73. data/static_artifacts/PackageInfo.plist +3 -0
  74. data/tasks/00_utils.rake +216 -0
  75. data/tasks/30_metrics.rake +33 -0
  76. data/tasks/apple.rake +266 -0
  77. data/tasks/build.rake +12 -0
  78. data/tasks/clean.rake +5 -0
  79. data/tasks/config.rake +30 -0
  80. data/tasks/deb.rake +129 -0
  81. data/tasks/deb_repos.rake +28 -0
  82. data/tasks/deprecated.rake +130 -0
  83. data/tasks/doc.rake +20 -0
  84. data/tasks/education.rake +57 -0
  85. data/tasks/fetch.rake +57 -0
  86. data/tasks/gem.rake +146 -0
  87. data/tasks/jenkins.rake +494 -0
  88. data/tasks/jenkins_dynamic.rake +202 -0
  89. data/tasks/load_extras.rake +21 -0
  90. data/tasks/mock.rake +348 -0
  91. data/tasks/nightly_repos.rake +335 -0
  92. data/tasks/pe_deb.rake +12 -0
  93. data/tasks/pe_rpm.rake +13 -0
  94. data/tasks/pe_ship.rake +221 -0
  95. data/tasks/pe_sign.rake +13 -0
  96. data/tasks/pe_tar.rake +5 -0
  97. data/tasks/retrieve.rake +45 -0
  98. data/tasks/rpm.rake +66 -0
  99. data/tasks/rpm_repos.rake +29 -0
  100. data/tasks/ship.rake +752 -0
  101. data/tasks/sign.rake +226 -0
  102. data/tasks/tag.rake +8 -0
  103. data/tasks/tar.rake +34 -0
  104. data/tasks/update.rake +16 -0
  105. data/tasks/vanagon.rake +35 -0
  106. data/tasks/vendor_gems.rake +117 -0
  107. data/tasks/version.rake +33 -0
  108. data/tasks/z_data_dump.rake +65 -0
  109. data/templates/README +1 -0
  110. data/templates/downstream.xml.erb +47 -0
  111. data/templates/msi.xml.erb +197 -0
  112. data/templates/packaging.xml.erb +344 -0
  113. data/templates/repo.xml.erb +114 -0
  114. metadata +234 -0
@@ -0,0 +1,114 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <project>
3
+ <actions/>
4
+ <description>&lt;p&gt;&#xd;
5
+ Dynamically created job to generate apt and yum repos from packages built by jenkins. It uses the git archive from the package:tar cell in the upstream package matrix to determine which repos to create.&#xd;
6
+ &lt;/p&gt;&#xd;
7
+ &lt;p&gt;&#xd;
8
+ This job will trigger the downstream job supplied with DOWNSTREAM_JOB if passed to rake in the upstream invocation.&#xd;
9
+ &lt;/p&gt;&#xd;
10
+ </description>
11
+ <logRotator class="hudson.tasks.LogRotator">
12
+ <daysToKeep>3</daysToKeep>
13
+ <numToKeep>-1</numToKeep>
14
+ <artifactDaysToKeep>-1</artifactDaysToKeep>
15
+ <artifactNumToKeep>-1</artifactNumToKeep>
16
+ </logRotator>
17
+ <keepDependencies>false</keepDependencies>
18
+ <properties>
19
+ <jenkins.plugins.hipchat.HipChatNotifier_-HipChatJobProperty plugin="hipchat-plugin@0.1.0">
20
+ <room></room>
21
+ <startNotification>false</startNotification>
22
+ </jenkins.plugins.hipchat.HipChatNotifier_-HipChatJobProperty>
23
+ </properties>
24
+ <scm class="hudson.scm.NullSCM"/>
25
+ <assignedNode>deb||rpm</assignedNode>
26
+ <canRoam>false</canRoam>
27
+ <disabled>false</disabled>
28
+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
29
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
30
+ <triggers class="vector"/>
31
+ <concurrentBuild>false</concurrentBuild>
32
+ <builders>
33
+ <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.25">
34
+ <projectName><%= "#{Pkg::Config.project}-packaging-#{Pkg::Config.build_date}-#{Pkg::Config.ref}" %>/command=package_tar</projectName>
35
+ <filter>**/PROJECT_BUNDLE, **/BUILD_PROPERTIES</filter>
36
+ <target></target>
37
+ <selector class="hudson.plugins.copyartifact.TriggeredBuildSelector">
38
+ <fallbackToLastSuccessful>true</fallbackToLastSuccessful>
39
+ </selector>
40
+ <flatten>true</flatten>
41
+ </hudson.plugins.copyartifact.CopyArtifact>
42
+ <hudson.tasks.Shell>
43
+ <command>#!/bin/bash
44
+ ## We have to check if this has been triggered by a successful package build
45
+ curl -s &quot;http://<%= "#{Pkg::Config.jenkins_build_host}" %>/job/<%= "#{Pkg::Config.project}-packaging-#{Pkg::Config.build_date}-#{Pkg::Config.ref}" %>/lastBuild/api/json&quot; | grep result\&quot;:\&quot;SUCCESS\&quot; > /dev/null
46
+
47
+ PACKAGE_BUILD_RESULT=$?
48
+
49
+ set -e
50
+
51
+ if [ $PACKAGE_BUILD_RESULT -eq 0 ] ; then
52
+ echo &quot;Detected upstream package build success. Building repos.&quot;
53
+ ### We&apos;ve retrieved the git bundle from the tarball build, so now we clone it
54
+ ### and use it to trigger our repo creation
55
+ #
56
+ # PROJECT_BUNDLE is a tarball containing a bundle file and git_repo is the
57
+ # directory that will contain the git repository. First we untar the tarball
58
+ # and then clone the git bundle
59
+
60
+ [ -f &quot;PROJECT_BUNDLE&quot; ] || exit 1
61
+
62
+ [ -f &quot;BUILD_PROPERTIES&quot; ] || exit 1
63
+
64
+ [ -d project ] &amp;&amp; rm -rf project
65
+
66
+ mkdir project &amp;&amp; tar -xzf PROJECT_BUNDLE -C project/
67
+
68
+ pushd project
69
+ git clone --recursive $(ls) git_repo
70
+
71
+ pushd git_repo
72
+
73
+ ### Clone the packaging repo
74
+ rake package:bootstrap --trace
75
+
76
+ ### Run repo creation
77
+ <% if Pkg::Config.final_mocks and not Pkg::Config.final_mocks.empty? %>
78
+ rake PARAMS_FILE=../../BUILD_PROPERTIES pl:jenkins:rpm_repos --trace
79
+ <% else %>
80
+ echo "No mock/rpm targets found, skipping rpm repo creation"
81
+ <% end %>
82
+ <% if Pkg::Config.cows and not Pkg::Config.cows.empty? %>
83
+ rake PARAMS_FILE=../../BUILD_PROPERTIES pl:jenkins:deb_repos --trace
84
+ <% else %>
85
+ echo "No cow/deb targets found, skipping deb repo creation"
86
+ <% end %>
87
+ popd
88
+ popd
89
+ else
90
+ echo &quot;Detected upstream package build failure. Failing repo creation.&quot;
91
+ exit 1
92
+ fi
93
+
94
+ </command>
95
+ </hudson.tasks.Shell>
96
+ </builders><% if ENV['DOWNSTREAM_JOB'] %>
97
+ <publishers>
98
+ <hudson.tasks.BuildTrigger>
99
+ <childProjects><%= "#{Pkg::Config.project}-downstream-#{Pkg::Config.build_date}-#{Pkg::Config.ref}" %></childProjects>
100
+ <threshold>
101
+ <name>FAILURE</name>
102
+ <ordinal>2</ordinal>
103
+ <color>RED</color>
104
+ </threshold>
105
+ </hudson.tasks.BuildTrigger>
106
+ </publishers><% else %>
107
+ <publishers/><% end %>
108
+ <buildWrappers>
109
+ <hudson.plugins.ansicolor.AnsiColorBuildWrapper plugin="ansicolor@0.3.1">
110
+ <colorMapName>xterm</colorMapName>
111
+ </hudson.plugins.ansicolor.AnsiColorBuildWrapper>
112
+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/>
113
+ </buildWrappers>
114
+ </project>
metadata ADDED
@@ -0,0 +1,234 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: packaging
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.99.0
5
+ platform: ruby
6
+ authors:
7
+ - Puppet Labs
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.14.1
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.14.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.24.1
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.24.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: artifactory
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Packaging automation written in Rake and Ruby. Easily build native packages
70
+ for most platforms with a few data files and git.
71
+ email: info@puppetlabs.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - LICENSE
77
+ - README-Solaris.md
78
+ - README.md
79
+ - lib/packaging.rb
80
+ - lib/packaging/artifactory.rb
81
+ - lib/packaging/config.rb
82
+ - lib/packaging/config/params.rb
83
+ - lib/packaging/deb.rb
84
+ - lib/packaging/deb/repo.rb
85
+ - lib/packaging/gem.rb
86
+ - lib/packaging/ips.rb
87
+ - lib/packaging/msi.rb
88
+ - lib/packaging/nuget.rb
89
+ - lib/packaging/osx.rb
90
+ - lib/packaging/paths.rb
91
+ - lib/packaging/platforms.rb
92
+ - lib/packaging/repo.rb
93
+ - lib/packaging/retrieve.rb
94
+ - lib/packaging/rpm.rb
95
+ - lib/packaging/rpm/repo.rb
96
+ - lib/packaging/tar.rb
97
+ - lib/packaging/util.rb
98
+ - lib/packaging/util/date.rb
99
+ - lib/packaging/util/execution.rb
100
+ - lib/packaging/util/file.rb
101
+ - lib/packaging/util/git.rb
102
+ - lib/packaging/util/git_tags.rb
103
+ - lib/packaging/util/gpg.rb
104
+ - lib/packaging/util/jenkins.rb
105
+ - lib/packaging/util/misc.rb
106
+ - lib/packaging/util/net.rb
107
+ - lib/packaging/util/os.rb
108
+ - lib/packaging/util/platform.rb
109
+ - lib/packaging/util/rake_utils.rb
110
+ - lib/packaging/util/serialization.rb
111
+ - lib/packaging/util/ship.rb
112
+ - lib/packaging/util/tool.rb
113
+ - lib/packaging/util/version.rb
114
+ - spec/fixtures/config/ext/build_defaults.yaml
115
+ - spec/fixtures/config/ext/project_data.yaml
116
+ - spec/fixtures/config/params.yaml
117
+ - spec/fixtures/configs/components/test_file.json
118
+ - spec/fixtures/configs/components/test_file_2.json
119
+ - spec/fixtures/configs/components/test_file_not_tagged.json
120
+ - spec/fixtures/configs/components/test_file_wrong_ext.txt
121
+ - spec/fixtures/configs/components/test_file_wrong_ext.wrong
122
+ - spec/fixtures/util/pre_tasks.yaml
123
+ - spec/lib/packaging/artifactory_spec.rb
124
+ - spec/lib/packaging/config_spec.rb
125
+ - spec/lib/packaging/deb/repo_spec.rb
126
+ - spec/lib/packaging/deb_spec.rb
127
+ - spec/lib/packaging/paths_spec.rb
128
+ - spec/lib/packaging/platforms_spec.rb
129
+ - spec/lib/packaging/repo_spec.rb
130
+ - spec/lib/packaging/retrieve_spec.rb
131
+ - spec/lib/packaging/rpm/repo_spec.rb
132
+ - spec/lib/packaging/tar_spec.rb
133
+ - spec/lib/packaging/util/execution_spec.rb
134
+ - spec/lib/packaging/util/file_spec.rb
135
+ - spec/lib/packaging/util/git_spec.rb
136
+ - spec/lib/packaging/util/git_tag_spec.rb
137
+ - spec/lib/packaging/util/gpg_spec.rb
138
+ - spec/lib/packaging/util/jenkins_spec.rb
139
+ - spec/lib/packaging/util/misc_spec.rb
140
+ - spec/lib/packaging/util/net_spec.rb
141
+ - spec/lib/packaging/util/os_spec.rb
142
+ - spec/lib/packaging/util/rake_utils_spec.rb
143
+ - spec/lib/packaging/util/ship_spec.rb
144
+ - spec/lib/packaging/util/version_spec.rb
145
+ - spec/lib/packaging_spec.rb
146
+ - spec/spec_helper.rb
147
+ - static_artifacts/PackageInfo.plist
148
+ - tasks/00_utils.rake
149
+ - tasks/30_metrics.rake
150
+ - tasks/apple.rake
151
+ - tasks/build.rake
152
+ - tasks/clean.rake
153
+ - tasks/config.rake
154
+ - tasks/deb.rake
155
+ - tasks/deb_repos.rake
156
+ - tasks/deprecated.rake
157
+ - tasks/doc.rake
158
+ - tasks/education.rake
159
+ - tasks/fetch.rake
160
+ - tasks/gem.rake
161
+ - tasks/jenkins.rake
162
+ - tasks/jenkins_dynamic.rake
163
+ - tasks/load_extras.rake
164
+ - tasks/mock.rake
165
+ - tasks/nightly_repos.rake
166
+ - tasks/pe_deb.rake
167
+ - tasks/pe_rpm.rake
168
+ - tasks/pe_ship.rake
169
+ - tasks/pe_sign.rake
170
+ - tasks/pe_tar.rake
171
+ - tasks/retrieve.rake
172
+ - tasks/rpm.rake
173
+ - tasks/rpm_repos.rake
174
+ - tasks/ship.rake
175
+ - tasks/sign.rake
176
+ - tasks/tag.rake
177
+ - tasks/tar.rake
178
+ - tasks/update.rake
179
+ - tasks/vanagon.rake
180
+ - tasks/vendor_gems.rake
181
+ - tasks/version.rake
182
+ - tasks/z_data_dump.rake
183
+ - templates/README
184
+ - templates/downstream.xml.erb
185
+ - templates/msi.xml.erb
186
+ - templates/packaging.xml.erb
187
+ - templates/repo.xml.erb
188
+ homepage: http://github.com/puppetlabs/packaging
189
+ licenses: []
190
+ metadata: {}
191
+ post_install_message:
192
+ rdoc_options: []
193
+ require_paths:
194
+ - lib
195
+ required_ruby_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ requirements: []
206
+ rubyforge_project:
207
+ rubygems_version: 2.2.5
208
+ signing_key:
209
+ specification_version: 4
210
+ summary: Puppet Labs' packaging automation
211
+ test_files:
212
+ - spec/lib/packaging/paths_spec.rb
213
+ - spec/lib/packaging/config_spec.rb
214
+ - spec/lib/packaging/util/execution_spec.rb
215
+ - spec/lib/packaging/util/os_spec.rb
216
+ - spec/lib/packaging/util/version_spec.rb
217
+ - spec/lib/packaging/util/git_spec.rb
218
+ - spec/lib/packaging/util/jenkins_spec.rb
219
+ - spec/lib/packaging/util/rake_utils_spec.rb
220
+ - spec/lib/packaging/util/gpg_spec.rb
221
+ - spec/lib/packaging/util/git_tag_spec.rb
222
+ - spec/lib/packaging/util/file_spec.rb
223
+ - spec/lib/packaging/util/net_spec.rb
224
+ - spec/lib/packaging/util/misc_spec.rb
225
+ - spec/lib/packaging/util/ship_spec.rb
226
+ - spec/lib/packaging/repo_spec.rb
227
+ - spec/lib/packaging/tar_spec.rb
228
+ - spec/lib/packaging/retrieve_spec.rb
229
+ - spec/lib/packaging/platforms_spec.rb
230
+ - spec/lib/packaging/deb_spec.rb
231
+ - spec/lib/packaging/deb/repo_spec.rb
232
+ - spec/lib/packaging/rpm/repo_spec.rb
233
+ - spec/lib/packaging/artifactory_spec.rb
234
+ - spec/lib/packaging_spec.rb