modulesync 0.8.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +8 -3
- data/.rubocop.yml +5 -0
- data/.rubocop_todo.yml +0 -5
- data/.travis.yml +8 -8
- data/CHANGELOG.md +44 -0
- data/Gemfile +3 -0
- data/README.md +63 -15
- data/Rakefile +1 -0
- data/features/step_definitions/git_steps.rb +23 -0
- data/features/update.feature +152 -28
- data/lib/modulesync.rb +79 -34
- data/lib/modulesync/cli.rb +28 -6
- data/lib/modulesync/git.rb +29 -8
- data/lib/modulesync/pr/github.rb +41 -0
- data/lib/modulesync/pr/gitlab.rb +40 -0
- data/lib/modulesync/renderer.rb +4 -3
- data/lib/modulesync/settings.rb +1 -2
- data/lib/modulesync/util.rb +10 -0
- data/lib/monkey_patches.rb +15 -0
- data/modulesync.gemspec +4 -2
- data/spec/unit/modulesync/pr/github_spec.rb +49 -0
- data/spec/unit/modulesync/pr/gitlab_spec.rb +81 -0
- data/spec/unit/modulesync_spec.rb +22 -0
- metadata +43 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2442835e7b5da17cc633790e9e4a2a3fe38c0a1b4d3fbd75ee8f60b6948ddc75
|
4
|
+
data.tar.gz: 0f0c8f284f95824e469759582db8188b37c8c8d7247f463dc9877e973887fcac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 521392847ed7f191f9ef9bb6a0c26d80fb7c557b882f092bec29834311af6c10a2e0bd5db2d1be162996fbfbcccfd5f9ac1063268b6480aa95c867802e9b48b3
|
7
|
+
data.tar.gz: b3ddc00ba28e2d5043cb0e24d3448c35ca84f3d42a4263de4efa8513f7c38d02ca2324289a2b15d2a5c84435a3329de76acccfae8da2da6f1df31d60553cdc77
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -7,6 +7,7 @@ AllCops:
|
|
7
7
|
- 'tmp/**/*'
|
8
8
|
- 'pkg/**/*'
|
9
9
|
- 'lib/monkey_patches.rb'
|
10
|
+
- 'spec/**/*'
|
10
11
|
|
11
12
|
Style/HashSyntax:
|
12
13
|
Enabled: false
|
@@ -18,3 +19,7 @@ Style/TrailingCommaInLiteral:
|
|
18
19
|
# would require external library
|
19
20
|
Layout/IndentHeredoc:
|
20
21
|
Enabled: false
|
22
|
+
|
23
|
+
# sane line length
|
24
|
+
Metrics/LineLength:
|
25
|
+
Max: 120
|
data/.rubocop_todo.yml
CHANGED
@@ -25,11 +25,6 @@ Metrics/ClassLength:
|
|
25
25
|
Metrics/CyclomaticComplexity:
|
26
26
|
Max: 13
|
27
27
|
|
28
|
-
# Offense count: 29
|
29
|
-
# Configuration parameters: AllowURI, URISchemes.
|
30
|
-
Metrics/LineLength:
|
31
|
-
Max: 319
|
32
|
-
|
33
28
|
# Offense count: 8
|
34
29
|
# Configuration parameters: CountComments.
|
35
30
|
Metrics/MethodLength:
|
data/.travis.yml
CHANGED
@@ -3,16 +3,16 @@ sudo: false
|
|
3
3
|
language: ruby
|
4
4
|
cache: bundler
|
5
5
|
dist: trusty
|
6
|
-
before_install:
|
7
|
-
- gem update --system
|
8
|
-
- gem install bundler
|
9
6
|
script: 'bundle exec rake test'
|
10
7
|
rvm:
|
11
8
|
- 2.0
|
12
|
-
- 2.1
|
13
|
-
- 2.2
|
14
|
-
- 2.3
|
15
|
-
- 2.4
|
9
|
+
- 2.1
|
10
|
+
- 2.2
|
11
|
+
- 2.3
|
12
|
+
- 2.4
|
13
|
+
- 2.5
|
14
|
+
- 2.6
|
15
|
+
- 2.7
|
16
16
|
notifications:
|
17
17
|
email: false
|
18
18
|
deploy:
|
@@ -21,7 +21,7 @@ deploy:
|
|
21
21
|
secure: "Tbf1EbLEobIIox+fftJZADZsfQQ6kl0urcMNetK7NJzFo/negD/WyJIUj3kro/B7buyYADEjTui/JR4o8EPbugfM3ie5vYOd5k3AesSzbdr4BSwGe/cGbGOB7/PZuGfFLkb94/FiCU2mIwibkbh1rHWGlBoPj7ntL0+5ZtdvsM4="
|
22
22
|
gem: modulesync
|
23
23
|
on:
|
24
|
-
rvm: 2.
|
24
|
+
rvm: 2.7
|
25
25
|
tags: true
|
26
26
|
all_branches: true
|
27
27
|
repo: voxpupuli/modulesync
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,49 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 2020-07-03 - 1.2.0
|
4
|
+
|
5
|
+
Add support for GitLab merge requests (MRs) [#175](https://github.com/voxpupuli/modulesync/pull/175)
|
6
|
+
|
7
|
+
## 2020-05-01 - 1.1.0
|
8
|
+
|
9
|
+
This release provides metadata in the ERB template scope which makes it easy to read files from inside the module. A possible application is reading metadata.json and generating CI configs based on that.
|
10
|
+
|
11
|
+
* Add metadata to ERB template scope - [#168](https://github.com/voxpupuli/modulesync/pull/168)
|
12
|
+
* Skip issuing a PR if one already exists for -b option - [#171](https://github.com/voxpupuli/modulesync/pull/171)
|
13
|
+
* Correct the type on the pr-labels option to prevent a deprecation warning - [#173](https://github.com/voxpupuli/modulesync/pull/173)
|
14
|
+
|
15
|
+
## 2019-09-19 - 1.0.0
|
16
|
+
|
17
|
+
This is the first stable release! 🎉
|
18
|
+
|
19
|
+
* Use namespace in directory structure when cloning repositories - [#152](https://github.com/voxpupuli/modulesync/pull/152)
|
20
|
+
* Fix minor typo in help output - [#165](https://github.com/voxpupuli/modulesync/pull/165)
|
21
|
+
* Small improvements and fixes - [#166](https://github.com/voxpupuli/modulesync/pull/166)
|
22
|
+
* Fix overwriting of :global values - [#169](https://github.com/voxpupuli/modulesync/pull/169)
|
23
|
+
|
24
|
+
## 2018-12-27 - 0.10.0
|
25
|
+
|
26
|
+
This is another awesome release!
|
27
|
+
|
28
|
+
* Add support to submit PRs to GitHub when changes are pushed - [#147](https://github.com/voxpupuli/modulesync/pull/147)
|
29
|
+
* Fix "flat files" still mentioned in README - [#151](https://github.com/voxpupuli/modulesync/pull/151)
|
30
|
+
|
31
|
+
## 2018-02-15 - 0.9.0
|
32
|
+
|
33
|
+
## Summary
|
34
|
+
|
35
|
+
This is an awesome release - Now honors the repo default branch[#142](https://github.com/voxpupuli/modulesync/pull/142)
|
36
|
+
|
37
|
+
### Bugfixes
|
38
|
+
|
39
|
+
* Monkey patch ls_files until ruby-git/ruby-git#320 is resolved
|
40
|
+
* Reraise exception rather than exit so we can rescue a derived StandardError when using skip_broken option
|
41
|
+
|
42
|
+
### Enhancements
|
43
|
+
|
44
|
+
* Add new option to produce a failure exit code on warnings
|
45
|
+
* Remove hard coding of managed_modules.yml which means that options passed to ModuleSync.update can override the filename
|
46
|
+
|
3
47
|
## 2017-11-03 - 0.8.2
|
4
48
|
|
5
49
|
### Summary
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -176,6 +176,30 @@ touching the modules, you can deactivate the hook.
|
|
176
176
|
msync hook deactivate
|
177
177
|
```
|
178
178
|
|
179
|
+
#### Submitting PRs/MRs to GitHub or GitLab
|
180
|
+
|
181
|
+
You can have modulesync submit Pull Requests on GitHub or Merge Requests on
|
182
|
+
GitLab automatically with the `--pr` CLI option.
|
183
|
+
|
184
|
+
```
|
185
|
+
msync update --pr
|
186
|
+
```
|
187
|
+
|
188
|
+
You must set the `GITHUB_TOKEN` or `GITLAB_TOKEN` environment variable
|
189
|
+
for GitHub PRs or GitLab MRs to work. Additional options:
|
190
|
+
|
191
|
+
* Set the PR/MR title with `--pr-title` or in `modulesync.yml` with the
|
192
|
+
`pr_title` attribute.
|
193
|
+
* Assign labels to the PR/MR with `--pr-labels` or in `modulesync.yml` with
|
194
|
+
the `pr_labels` attribute. **NOTE:** `pr_labels` should be a list. When
|
195
|
+
using the `--pr-labels` CLI option, you should use a comma separated list.
|
196
|
+
|
197
|
+
For GitHub Enterprise and self-hosted GitLab instances you need to set the
|
198
|
+
`GITHUB_BASE_URL` or `GITLAB_BASE_URL` environment variable in addition.
|
199
|
+
More details for GitHub:
|
200
|
+
|
201
|
+
* Octokit [`api_endpoint`](https://github.com/octokit/octokit.rb#interacting-with-the-githubcom-apis-in-github-enterprise)
|
202
|
+
|
179
203
|
### Using Forks and Non-master branches
|
180
204
|
|
181
205
|
The default functionality is to run ModuleSync on the puppetlabs modules, but
|
@@ -215,7 +239,7 @@ probably seems excessive. You can create a file called modulesync.yml in the
|
|
215
239
|
configuration directory that provides these arguments automatically. This file
|
216
240
|
has a form such as:
|
217
241
|
|
218
|
-
```
|
242
|
+
```yaml
|
219
243
|
---
|
220
244
|
namespace: mygithubusername
|
221
245
|
branch: modulesyncbranch
|
@@ -230,26 +254,33 @@ msync update -m "Commit message"
|
|
230
254
|
|
231
255
|
Available parameters for modulesync.yml
|
232
256
|
|
233
|
-
* git_base : The default URL to git clone from (Default: 'git@github.com:')
|
234
|
-
* namespace : Namespace of the projects to manage (Default: 'puppetlabs')
|
235
|
-
* branch : Branch to push to (Default: 'master')
|
236
|
-
* remote_branch : Remote branch to push to (Default: Same value as branch)
|
237
|
-
* message : Commit message to apply to updated modules.
|
238
|
-
* pre_commit_script : A script to be run before commiting (e.g. 'contrib/myfooscript.sh')
|
257
|
+
* `git_base` : The default URL to git clone from (Default: 'git@github.com:')
|
258
|
+
* `namespace` : Namespace of the projects to manage (Default: 'puppetlabs')
|
259
|
+
* `branch` : Branch to push to (Default: 'master')
|
260
|
+
* `remote_branch` : Remote branch to push to (Default: Same value as branch)
|
261
|
+
* `message` : Commit message to apply to updated modules.
|
262
|
+
* `pre_commit_script` : A script to be run before commiting (e.g. 'contrib/myfooscript.sh')
|
263
|
+
* `pr_title` : The title to use when submitting PRs/MRs to GitHub or GitLab.
|
264
|
+
* `pr_labels` : A list of labels to assign PRs/MRs created on GitHub or GitLab.
|
239
265
|
|
240
266
|
##### Example
|
241
267
|
|
242
|
-
######
|
268
|
+
###### GitHub
|
243
269
|
|
244
|
-
```
|
270
|
+
```yaml
|
245
271
|
---
|
246
272
|
namespace: MySuperOrganization
|
247
273
|
branch: modulesyncbranch
|
274
|
+
pr_title: "Updates to module template files via modulesync"
|
275
|
+
pr_labels:
|
276
|
+
- TOOLING
|
277
|
+
- MAINTENANCE
|
278
|
+
- MODULESYNC
|
248
279
|
```
|
249
280
|
|
250
|
-
######
|
281
|
+
###### GitLab
|
251
282
|
|
252
|
-
```
|
283
|
+
```yaml
|
253
284
|
---
|
254
285
|
git_base: 'user@gitlab.example.com:'
|
255
286
|
namespace: MySuperOrganization
|
@@ -258,7 +289,7 @@ branch: modulesyncbranch
|
|
258
289
|
|
259
290
|
###### Gerrit
|
260
291
|
|
261
|
-
```
|
292
|
+
```yaml
|
262
293
|
---
|
263
294
|
namespace: stackforge
|
264
295
|
git_base: ssh://jdoe@review.openstack.org:29418/
|
@@ -350,16 +381,33 @@ current date, bumped (minor) version, and commit message.
|
|
350
381
|
If `CHANGELOG.md` is absent in the repository, nothing will happen.
|
351
382
|
|
352
383
|
|
353
|
-
####
|
384
|
+
#### Working with templates
|
354
385
|
|
355
|
-
As
|
386
|
+
As mentioned, files in the moduleroot directory must be ERB templates (they must have an .erb extension, or they will be ignored). These files have direct access to @configs hash, which gets values from config_defaults.yml file and from the module being processed:
|
356
387
|
|
357
|
-
```
|
388
|
+
```erb
|
358
389
|
<%= @configs[:git_base] %>
|
359
390
|
<%= @configs[:namespace] %>
|
360
391
|
<%= @configs[:puppet_module] %>
|
361
392
|
```
|
362
393
|
|
394
|
+
Alternatively some meta data is passed to the template. This will allow you to add custom Ruby extensions inside the
|
395
|
+
template, reading other files from the module, to make the template system more adaptive.
|
396
|
+
|
397
|
+
```erb
|
398
|
+
module: <%= @metadata[:module_name] %>
|
399
|
+
target: <%= @metadata[:target_file] %>
|
400
|
+
workdir: <%= @metadata[:workdir] %>
|
401
|
+
```
|
402
|
+
|
403
|
+
Will result in something like:
|
404
|
+
|
405
|
+
```
|
406
|
+
module: puppet-test
|
407
|
+
target: modules/github-org/puppet-test/test
|
408
|
+
workdir: modules/github-org/puppet-test
|
409
|
+
```
|
410
|
+
|
363
411
|
The Templates
|
364
412
|
-------------
|
365
413
|
|
data/Rakefile
CHANGED
@@ -22,3 +22,26 @@ Given 'a remote module repository' do
|
|
22
22
|
git_base: file://#{expand_path('.')}/
|
23
23
|
CONFIG
|
24
24
|
end
|
25
|
+
|
26
|
+
Given Regexp.new(/a remote module repository with "(.+?)" as the default branch/) do |branch|
|
27
|
+
steps %(
|
28
|
+
Given a directory named "sources"
|
29
|
+
And I run `git clone --mirror https://github.com/maestrodev/puppet-test sources/puppet-test`
|
30
|
+
And a file named "managed_modules.yml" with:
|
31
|
+
"""
|
32
|
+
---
|
33
|
+
- puppet-test
|
34
|
+
"""
|
35
|
+
)
|
36
|
+
write_file('modulesync.yml', <<-CONFIG)
|
37
|
+
---
|
38
|
+
namespace: sources
|
39
|
+
git_base: file://#{expand_path('.')}/
|
40
|
+
CONFIG
|
41
|
+
cd('sources/puppet-test') do
|
42
|
+
steps %(
|
43
|
+
And I run `git branch -M master #{branch}`
|
44
|
+
And I run `git symbolic-ref HEAD refs/heads/#{branch}`
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
data/features/update.feature
CHANGED
@@ -31,9 +31,35 @@ Feature: update
|
|
31
31
|
Files added:
|
32
32
|
test
|
33
33
|
"""
|
34
|
-
Given I run `cat modules/puppet-test/test`
|
34
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
35
35
|
Then the output should contain "aruba"
|
36
36
|
|
37
|
+
Scenario: Using skip_broken option and adding a new file to repo without write access
|
38
|
+
Given a file named "managed_modules.yml" with:
|
39
|
+
"""
|
40
|
+
---
|
41
|
+
- puppet-test
|
42
|
+
"""
|
43
|
+
And a file named "modulesync.yml" with:
|
44
|
+
"""
|
45
|
+
---
|
46
|
+
namespace: maestrodev
|
47
|
+
git_base: 'git@github.com:'
|
48
|
+
"""
|
49
|
+
And a file named "config_defaults.yml" with:
|
50
|
+
"""
|
51
|
+
---
|
52
|
+
test:
|
53
|
+
name: aruba
|
54
|
+
"""
|
55
|
+
And a directory named "moduleroot"
|
56
|
+
And a file named "moduleroot/test.erb" with:
|
57
|
+
"""
|
58
|
+
<%= @configs['name'] %>
|
59
|
+
"""
|
60
|
+
When I run `msync update -s -m "Add test"`
|
61
|
+
Then the exit status should be 0
|
62
|
+
|
37
63
|
Scenario: Adding a new file to repo without write access
|
38
64
|
Given a file named "managed_modules.yml" with:
|
39
65
|
"""
|
@@ -44,7 +70,7 @@ Feature: update
|
|
44
70
|
"""
|
45
71
|
---
|
46
72
|
namespace: maestrodev
|
47
|
-
git_base: git@github.com:
|
73
|
+
git_base: 'git@github.com:'
|
48
74
|
"""
|
49
75
|
And a file named "config_defaults.yml" with:
|
50
76
|
"""
|
@@ -87,14 +113,14 @@ Feature: update
|
|
87
113
|
Then the exit status should be 0
|
88
114
|
And the output should match:
|
89
115
|
"""
|
90
|
-
Warning: using './moduleroot
|
116
|
+
Warning: using './moduleroot/test' as template without '.erb' suffix
|
91
117
|
"""
|
92
118
|
And the output should match:
|
93
119
|
"""
|
94
120
|
Files added:
|
95
121
|
test
|
96
122
|
"""
|
97
|
-
Given I run `cat modules/puppet-test/test`
|
123
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
98
124
|
Then the output should contain "aruba"
|
99
125
|
|
100
126
|
Scenario: Adding a new file using global values
|
@@ -127,7 +153,7 @@ Feature: update
|
|
127
153
|
Files added:
|
128
154
|
test
|
129
155
|
"""
|
130
|
-
Given I run `cat modules/puppet-test/test`
|
156
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
131
157
|
Then the output should contain "aruba"
|
132
158
|
|
133
159
|
Scenario: Adding a new file overriding global values
|
@@ -163,7 +189,7 @@ Feature: update
|
|
163
189
|
Files added:
|
164
190
|
test
|
165
191
|
"""
|
166
|
-
Given I run `cat modules/puppet-test/test`
|
192
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
167
193
|
Then the output should contain "aruba"
|
168
194
|
|
169
195
|
Scenario: Adding a new file ignoring global values
|
@@ -199,7 +225,7 @@ Feature: update
|
|
199
225
|
Files added:
|
200
226
|
test
|
201
227
|
"""
|
202
|
-
Given I run `cat modules/puppet-test/test`
|
228
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
203
229
|
Then the output should contain "aruba"
|
204
230
|
|
205
231
|
Scenario: Adding a file that ERB can't parse
|
@@ -258,6 +284,34 @@ Feature: update
|
|
258
284
|
When I run `msync update --noop -s`
|
259
285
|
Then the exit status should be 0
|
260
286
|
|
287
|
+
Scenario: Using skip_broken and fail_on_warnings options with invalid files
|
288
|
+
Given a file named "managed_modules.yml" with:
|
289
|
+
"""
|
290
|
+
---
|
291
|
+
- puppet-test
|
292
|
+
"""
|
293
|
+
And a file named "modulesync.yml" with:
|
294
|
+
"""
|
295
|
+
---
|
296
|
+
namespace: maestrodev
|
297
|
+
git_base: https://github.com/
|
298
|
+
"""
|
299
|
+
And a file named "config_defaults.yml" with:
|
300
|
+
"""
|
301
|
+
---
|
302
|
+
test:
|
303
|
+
name: aruba
|
304
|
+
"""
|
305
|
+
And a directory named "moduleroot"
|
306
|
+
And a file named "moduleroot/test.erb" with:
|
307
|
+
"""
|
308
|
+
<% @configs.each do |c| -%>
|
309
|
+
<%= c['name'] %>
|
310
|
+
<% end %>
|
311
|
+
"""
|
312
|
+
When I run `msync update --noop --skip_broken --fail_on_warnings`
|
313
|
+
Then the exit status should be 1
|
314
|
+
|
261
315
|
Scenario: Modifying an existing file
|
262
316
|
Given a file named "managed_modules.yml" with:
|
263
317
|
"""
|
@@ -288,7 +342,7 @@ Feature: update
|
|
288
342
|
Files changed:
|
289
343
|
+diff --git a/Gemfile b/Gemfile
|
290
344
|
"""
|
291
|
-
Given I run `cat modules/puppet-test/Gemfile`
|
345
|
+
Given I run `cat modules/maestrodev/puppet-test/Gemfile`
|
292
346
|
Then the output should contain:
|
293
347
|
"""
|
294
348
|
source 'https://somehost.com'
|
@@ -351,7 +405,7 @@ Feature: update
|
|
351
405
|
Not managing Gemfile in puppet-test
|
352
406
|
"""
|
353
407
|
And the exit status should be 0
|
354
|
-
Given I run `cat modules/puppet-test/Gemfile`
|
408
|
+
Given I run `cat modules/maestrodev/puppet-test/Gemfile`
|
355
409
|
Then the output should contain:
|
356
410
|
"""
|
357
411
|
source 'https://rubygems.org'
|
@@ -434,8 +488,8 @@ Feature: update
|
|
434
488
|
"""
|
435
489
|
some spec_helper fud
|
436
490
|
"""
|
437
|
-
And a directory named "modules/puppetlabs-apache/spec"
|
438
|
-
And a file named "modules/puppetlabs-apache/spec/spec_helper.rb" with:
|
491
|
+
And a directory named "modules/puppetlabs/puppetlabs-apache/spec"
|
492
|
+
And a file named "modules/puppetlabs/puppetlabs-apache/spec/spec_helper.rb" with:
|
439
493
|
"""
|
440
494
|
This is a fake spec_helper!
|
441
495
|
"""
|
@@ -445,7 +499,7 @@ Feature: update
|
|
445
499
|
Not managing spec/spec_helper.rb in puppetlabs-apache
|
446
500
|
"""
|
447
501
|
And the exit status should be 0
|
448
|
-
Given I run `cat modules/puppetlabs-apache/spec/spec_helper.rb`
|
502
|
+
Given I run `cat modules/puppetlabs/puppetlabs-apache/spec/spec_helper.rb`
|
449
503
|
Then the output should contain:
|
450
504
|
"""
|
451
505
|
This is a fake spec_helper!
|
@@ -484,7 +538,7 @@ Feature: update
|
|
484
538
|
Files added:
|
485
539
|
spec/spec_helper.rb
|
486
540
|
"""
|
487
|
-
Given I run `cat modules/puppet-test/spec/spec_helper.rb`
|
541
|
+
Given I run `cat modules/maestrodev/puppet-test/spec/spec_helper.rb`
|
488
542
|
Then the output should contain:
|
489
543
|
"""
|
490
544
|
require 'puppetlabs_spec_helper/module_helper'
|
@@ -523,7 +577,7 @@ Feature: update
|
|
523
577
|
Given a file named "managed_modules.yml" with:
|
524
578
|
"""
|
525
579
|
---
|
526
|
-
- puppet-test
|
580
|
+
- maestrodev/puppet-test
|
527
581
|
"""
|
528
582
|
And a file named "modulesync.yml" with:
|
529
583
|
"""
|
@@ -543,8 +597,8 @@ Feature: update
|
|
543
597
|
require '<%= required %>'
|
544
598
|
<% end %>
|
545
599
|
"""
|
546
|
-
Given I run `git init modules/puppet-test`
|
547
|
-
Given a file named "modules/puppet-test/.git/config" with:
|
600
|
+
Given I run `git init modules/maestrodev/puppet-test`
|
601
|
+
Given a file named "modules/maestrodev/puppet-test/.git/config" with:
|
548
602
|
"""
|
549
603
|
[core]
|
550
604
|
repositoryformatversion = 0
|
@@ -613,7 +667,7 @@ Feature: update
|
|
613
667
|
Files added:
|
614
668
|
test
|
615
669
|
"""
|
616
|
-
Given I run `cat modules/puppet-test/test`
|
670
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
617
671
|
Then the output should contain "aruba"
|
618
672
|
|
619
673
|
Scenario: When specifying configurations in managed_modules.yml and using a filter
|
@@ -648,9 +702,9 @@ Feature: update
|
|
648
702
|
Files added:
|
649
703
|
test
|
650
704
|
"""
|
651
|
-
Given I run `cat modules/puppet-test/test`
|
705
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
652
706
|
Then the output should contain "aruba"
|
653
|
-
And a directory named "modules/puppet-blacksmith" should not exist
|
707
|
+
And a directory named "modules/maestrodev/puppet-blacksmith" should not exist
|
654
708
|
|
655
709
|
Scenario: When specifying configurations in managed_modules.yml and using a negative filter
|
656
710
|
Given a file named "managed_modules.yml" with:
|
@@ -684,15 +738,15 @@ Feature: update
|
|
684
738
|
Files added:
|
685
739
|
test
|
686
740
|
"""
|
687
|
-
Given I run `cat modules/puppet-test/test`
|
741
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
688
742
|
Then the output should contain "aruba"
|
689
|
-
And a directory named "modules/puppet-blacksmith" should not exist
|
743
|
+
And a directory named "modules/maestrodev/puppet-blacksmith" should not exist
|
690
744
|
|
691
745
|
Scenario: Updating a module with a .sync.yml file
|
692
746
|
Given a file named "managed_modules.yml" with:
|
693
747
|
"""
|
694
748
|
---
|
695
|
-
- puppet-test
|
749
|
+
- maestrodev/puppet-test
|
696
750
|
"""
|
697
751
|
And a file named "modulesync.yml" with:
|
698
752
|
"""
|
@@ -702,6 +756,9 @@ Feature: update
|
|
702
756
|
And a file named "config_defaults.yml" with:
|
703
757
|
"""
|
704
758
|
---
|
759
|
+
:global:
|
760
|
+
global-default: some-default
|
761
|
+
global-to-overwrite: to-be-overwritten
|
705
762
|
spec/spec_helper.rb:
|
706
763
|
require:
|
707
764
|
- puppetlabs_spec_helper/module_helper
|
@@ -712,8 +769,14 @@ Feature: update
|
|
712
769
|
require '<%= required %>'
|
713
770
|
<% end %>
|
714
771
|
"""
|
715
|
-
|
716
|
-
|
772
|
+
And a file named "moduleroot/global-test.md.erb" with:
|
773
|
+
"""
|
774
|
+
<%= @configs['global-default'] %>
|
775
|
+
<%= @configs['global-to-overwrite'] %>
|
776
|
+
<%= @configs['module-default'] %>
|
777
|
+
"""
|
778
|
+
Given I run `git init modules/maestrodev/puppet-test`
|
779
|
+
Given a file named "modules/maestrodev/puppet-test/.git/config" with:
|
717
780
|
"""
|
718
781
|
[core]
|
719
782
|
repositoryformatversion = 0
|
@@ -726,9 +789,12 @@ Feature: update
|
|
726
789
|
url = https://github.com/maestrodev/puppet-test.git
|
727
790
|
fetch = +refs/heads/*:refs/remotes/origin/*
|
728
791
|
"""
|
729
|
-
Given a file named "modules/puppet-test/.sync.yml" with:
|
792
|
+
Given a file named "modules/maestrodev/puppet-test/.sync.yml" with:
|
730
793
|
"""
|
731
794
|
---
|
795
|
+
:global:
|
796
|
+
global-to-overwrite: it-is-overwritten
|
797
|
+
module-default: some-value
|
732
798
|
spec/spec_helper.rb:
|
733
799
|
unmanaged: true
|
734
800
|
"""
|
@@ -738,6 +804,13 @@ Feature: update
|
|
738
804
|
"""
|
739
805
|
Not managing spec/spec_helper.rb in puppet-test
|
740
806
|
"""
|
807
|
+
Given I run `cat modules/maestrodev/puppet-test/global-test.md`
|
808
|
+
Then the output should match:
|
809
|
+
"""
|
810
|
+
some-default
|
811
|
+
it-is-overwritten
|
812
|
+
some-value
|
813
|
+
"""
|
741
814
|
|
742
815
|
Scenario: Module with custom namespace
|
743
816
|
Given a file named "managed_modules.yml" with:
|
@@ -770,9 +843,9 @@ Feature: update
|
|
770
843
|
Files added:
|
771
844
|
test
|
772
845
|
"""
|
773
|
-
Given I run `cat modules/puppet-test/.git/config`
|
846
|
+
Given I run `cat modules/maestrodev/puppet-test/.git/config`
|
774
847
|
Then the output should contain "url = https://github.com/maestrodev/puppet-test.git"
|
775
|
-
Given I run `cat modules/puppet-lib-file_concat/.git/config`
|
848
|
+
Given I run `cat modules/electrical/puppet-lib-file_concat/.git/config`
|
776
849
|
Then the output should contain "url = https://github.com/electrical/puppet-lib-file_concat.git"
|
777
850
|
|
778
851
|
Scenario: Modifying an existing file with values exposed by the module
|
@@ -804,7 +877,7 @@ Feature: update
|
|
804
877
|
Files changed:
|
805
878
|
+diff --git a/README.md b/README.md
|
806
879
|
"""
|
807
|
-
Given I run `cat modules/puppet-test/README.md`
|
880
|
+
Given I run `cat modules/maestrodev/puppet-test/README.md`
|
808
881
|
Then the output should contain:
|
809
882
|
"""
|
810
883
|
echo 'https://github.com/maestrodev'
|
@@ -831,3 +904,54 @@ Feature: update
|
|
831
904
|
Then the exit status should be 0
|
832
905
|
Then the output should not contain "error"
|
833
906
|
Then the output should not contain "rejected"
|
907
|
+
|
908
|
+
Scenario: Repository with a default branch other than master
|
909
|
+
Given a mocked git configuration
|
910
|
+
And a remote module repository with "develop" as the default branch
|
911
|
+
And a file named "config_defaults.yml" with:
|
912
|
+
"""
|
913
|
+
---
|
914
|
+
Gemfile:
|
915
|
+
gem_source: https://somehost.com
|
916
|
+
"""
|
917
|
+
And a directory named "moduleroot"
|
918
|
+
And a file named "moduleroot/Gemfile.erb" with:
|
919
|
+
"""
|
920
|
+
source '<%= @configs['gem_source'] %>'
|
921
|
+
"""
|
922
|
+
When I run `msync update -m "Update Gemfile"`
|
923
|
+
Then the exit status should be 0
|
924
|
+
Then the output should contain "Using repository's default branch: develop"
|
925
|
+
|
926
|
+
Scenario: Adding a new file from a template using meta data
|
927
|
+
And a file named "config_defaults.yml" with:
|
928
|
+
"""
|
929
|
+
---
|
930
|
+
"""
|
931
|
+
Given a file named "managed_modules.yml" with:
|
932
|
+
"""
|
933
|
+
---
|
934
|
+
- puppet-test
|
935
|
+
"""
|
936
|
+
And a file named "modulesync.yml" with:
|
937
|
+
"""
|
938
|
+
---
|
939
|
+
namespace: maestrodev
|
940
|
+
git_base: https://github.com/
|
941
|
+
"""
|
942
|
+
And a directory named "moduleroot"
|
943
|
+
And a file named "moduleroot/test.erb" with:
|
944
|
+
"""
|
945
|
+
module: <%= @metadata[:module_name] %>
|
946
|
+
target: <%= @metadata[:target_file] %>
|
947
|
+
workdir: <%= @metadata[:workdir] %>
|
948
|
+
"""
|
949
|
+
When I run `msync update --noop`
|
950
|
+
Then the exit status should be 0
|
951
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
952
|
+
Then the output should contain:
|
953
|
+
"""
|
954
|
+
module: puppet-test
|
955
|
+
target: modules/maestrodev/puppet-test/test
|
956
|
+
workdir: modules/maestrodev/puppet-test
|
957
|
+
"""
|