modulesync 0.9.0 → 1.3.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.
- checksums.yaml +4 -4
- data/.gitignore +8 -3
- data/.rubocop.yml +5 -0
- data/.rubocop_todo.yml +1 -6
- data/.travis.yml +8 -5
- data/CHANGELOG.md +38 -1
- data/Gemfile +1 -0
- data/README.md +86 -15
- data/Rakefile +1 -0
- data/features/step_definitions/git_steps.rb +1 -1
- data/features/update.feature +79 -27
- data/lib/modulesync.rb +107 -33
- data/lib/modulesync/cli.rb +28 -6
- data/lib/modulesync/git.rb +5 -1
- data/lib/modulesync/pr/github.rb +47 -0
- data/lib/modulesync/pr/gitlab.rb +42 -0
- data/lib/modulesync/renderer.rb +4 -3
- data/lib/modulesync/settings.rb +1 -2
- data/lib/modulesync/util.rb +10 -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 +9 -1
- metadata +41 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fb5357d0ecf1e4f620be302b55c9f1e88779c446021097172866c87a1e57d8f
|
4
|
+
data.tar.gz: be3975ae4dbe2a4e6a32cc5851bc0e9ce8ac8dd0b9560175380f492e43dabe27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15051bcc97f904d9d886e67abf9e6ea99818410ec3f330f7d67ed9cc86451f322b79861801218f46b534a0f3241f3aa15dc16928360c471c0742e0b8f3c120f7
|
7
|
+
data.tar.gz: d527c5e7eeeccfabdbd5eb328759b826873aea33f12419179a89f84a1499af784788de9ca420eab8cbc5d2d83fdf1a9a8f6bbde1c536b25aca9c35b21c77c40b
|
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
@@ -19,17 +19,12 @@ Metrics/AbcSize:
|
|
19
19
|
# Offense count: 1
|
20
20
|
# Configuration parameters: CountComments.
|
21
21
|
Metrics/ClassLength:
|
22
|
-
Max:
|
22
|
+
Max: 107
|
23
23
|
|
24
24
|
# Offense count: 4
|
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
@@ -6,10 +6,13 @@ dist: trusty
|
|
6
6
|
script: 'bundle exec rake test'
|
7
7
|
rvm:
|
8
8
|
- 2.0
|
9
|
-
- 2.1
|
10
|
-
- 2.2
|
11
|
-
- 2.3
|
12
|
-
- 2.4
|
9
|
+
- 2.1
|
10
|
+
- 2.2
|
11
|
+
- 2.3
|
12
|
+
- 2.4
|
13
|
+
- 2.5
|
14
|
+
- 2.6
|
15
|
+
- 2.7
|
13
16
|
notifications:
|
14
17
|
email: false
|
15
18
|
deploy:
|
@@ -18,7 +21,7 @@ deploy:
|
|
18
21
|
secure: "Tbf1EbLEobIIox+fftJZADZsfQQ6kl0urcMNetK7NJzFo/negD/WyJIUj3kro/B7buyYADEjTui/JR4o8EPbugfM3ie5vYOd5k3AesSzbdr4BSwGe/cGbGOB7/PZuGfFLkb94/FiCU2mIwibkbh1rHWGlBoPj7ntL0+5ZtdvsM4="
|
19
22
|
gem: modulesync
|
20
23
|
on:
|
21
|
-
rvm: 2.
|
24
|
+
rvm: 2.7
|
22
25
|
tags: true
|
23
26
|
all_branches: true
|
24
27
|
repo: voxpupuli/modulesync
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,43 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
##
|
3
|
+
## 2020-07-03 - 1.3.0
|
4
|
+
|
5
|
+
* Expose --managed_modules_conf [#184](https://github.com/voxpupuli/modulesync/pull/184)
|
6
|
+
* Allow absolute path for config files [#183](https://github.com/voxpupuli/modulesync/pull/183)
|
7
|
+
* Add pr_target_branch option [#182](https://github.com/voxpupuli/modulesync/pull/182)
|
8
|
+
* Allow to specify namespace in module_options [#181](https://github.com/voxpupuli/modulesync/pull/181)
|
9
|
+
* Allow to override PR parameters per module [#178](https://github.com/voxpupuli/modulesync/pull/178)
|
10
|
+
* Include the gitlab library (if we interact with gitlab), not github [#179](https://github.com/voxpupuli/modulesync/pull/179)
|
11
|
+
|
12
|
+
## 2020-07-03 - 1.2.0
|
13
|
+
|
14
|
+
* Add support for GitLab merge requests (MRs) [#175](https://github.com/voxpupuli/modulesync/pull/175)
|
15
|
+
|
16
|
+
## 2020-05-01 - 1.1.0
|
17
|
+
|
18
|
+
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.
|
19
|
+
|
20
|
+
* Add metadata to ERB template scope - [#168](https://github.com/voxpupuli/modulesync/pull/168)
|
21
|
+
* Skip issuing a PR if one already exists for -b option - [#171](https://github.com/voxpupuli/modulesync/pull/171)
|
22
|
+
* Correct the type on the pr-labels option to prevent a deprecation warning - [#173](https://github.com/voxpupuli/modulesync/pull/173)
|
23
|
+
|
24
|
+
## 2019-09-19 - 1.0.0
|
25
|
+
|
26
|
+
This is the first stable release! 🎉
|
27
|
+
|
28
|
+
* Use namespace in directory structure when cloning repositories - [#152](https://github.com/voxpupuli/modulesync/pull/152)
|
29
|
+
* Fix minor typo in help output - [#165](https://github.com/voxpupuli/modulesync/pull/165)
|
30
|
+
* Small improvements and fixes - [#166](https://github.com/voxpupuli/modulesync/pull/166)
|
31
|
+
* Fix overwriting of :global values - [#169](https://github.com/voxpupuli/modulesync/pull/169)
|
32
|
+
|
33
|
+
## 2018-12-27 - 0.10.0
|
34
|
+
|
35
|
+
This is another awesome release!
|
36
|
+
|
37
|
+
* Add support to submit PRs to GitHub when changes are pushed - [#147](https://github.com/voxpupuli/modulesync/pull/147)
|
38
|
+
* Fix "flat files" still mentioned in README - [#151](https://github.com/voxpupuli/modulesync/pull/151)
|
39
|
+
|
40
|
+
## 2018-02-15 - 0.9.0
|
4
41
|
|
5
42
|
## Summary
|
6
43
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -176,6 +176,51 @@ 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
|
+
In order for GitHub PRs or GitLab MRs to work, you must either provide
|
189
|
+
the `GITHUB_TOKEN` or `GITLAB_TOKEN` environment variables,
|
190
|
+
or set them per repository in `managed_modules.yml`, using the `github` or
|
191
|
+
`gitlab` keys respectively.
|
192
|
+
|
193
|
+
For GitHub Enterprise and self-hosted GitLab instances you also need to set the
|
194
|
+
`GITHUB_BASE_URL` or `GITLAB_BASE_URL` environment variables, or use the
|
195
|
+
`base_url` parameter in `managed_modules.yml`:
|
196
|
+
|
197
|
+
```yaml
|
198
|
+
---
|
199
|
+
repo1:
|
200
|
+
:github:
|
201
|
+
:token: 'EXAMPLE_TOKEN'
|
202
|
+
:base_url: 'https://api.github.com/'
|
203
|
+
|
204
|
+
repo2:
|
205
|
+
:gitlab:
|
206
|
+
:token: 'EXAMPLE_TOKEN'
|
207
|
+
:base_url: 'https://git.example.com/api/v4'
|
208
|
+
```
|
209
|
+
|
210
|
+
Then:
|
211
|
+
|
212
|
+
* Set the PR/MR title with `--pr-title` or in `modulesync.yml` with the
|
213
|
+
`pr_title` attribute.
|
214
|
+
* Assign labels to the PR/MR with `--pr-labels` or in `modulesync.yml` with
|
215
|
+
the `pr_labels` attribute. **NOTE:** `pr_labels` should be a list. When
|
216
|
+
using the `--pr-labels` CLI option, you should use a comma separated list.
|
217
|
+
* Set the target branch with `--pr_target_branch` or in `modulesync.yml` with
|
218
|
+
the `pr_target_branch` attribute.
|
219
|
+
|
220
|
+
More details for GitHub:
|
221
|
+
|
222
|
+
* Octokit [`api_endpoint`](https://github.com/octokit/octokit.rb#interacting-with-the-githubcom-apis-in-github-enterprise)
|
223
|
+
|
179
224
|
### Using Forks and Non-master branches
|
180
225
|
|
181
226
|
The default functionality is to run ModuleSync on the puppetlabs modules, but
|
@@ -215,7 +260,7 @@ probably seems excessive. You can create a file called modulesync.yml in the
|
|
215
260
|
configuration directory that provides these arguments automatically. This file
|
216
261
|
has a form such as:
|
217
262
|
|
218
|
-
```
|
263
|
+
```yaml
|
219
264
|
---
|
220
265
|
namespace: mygithubusername
|
221
266
|
branch: modulesyncbranch
|
@@ -230,26 +275,35 @@ msync update -m "Commit message"
|
|
230
275
|
|
231
276
|
Available parameters for modulesync.yml
|
232
277
|
|
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
|
-
|
236
|
-
|
237
|
-
*
|
238
|
-
*
|
278
|
+
* `git_base` : The default URL to git clone from (Default: 'git@github.com:')
|
279
|
+
* `namespace` : Namespace of the projects to manage (Default: 'puppetlabs').
|
280
|
+
This value can be overridden in the module name (e.g. 'namespace/mod') or by
|
281
|
+
using the `namespace` key for the module in `managed_modules.yml`.
|
282
|
+
* `branch` : Branch to push to (Default: 'master')
|
283
|
+
* `remote_branch` : Remote branch to push to (Default: Same value as branch)
|
284
|
+
* `message` : Commit message to apply to updated modules.
|
285
|
+
* `pre_commit_script` : A script to be run before commiting (e.g. 'contrib/myfooscript.sh')
|
286
|
+
* `pr_title` : The title to use when submitting PRs/MRs to GitHub or GitLab.
|
287
|
+
* `pr_labels` : A list of labels to assign PRs/MRs created on GitHub or GitLab.
|
239
288
|
|
240
289
|
##### Example
|
241
290
|
|
242
|
-
######
|
291
|
+
###### GitHub
|
243
292
|
|
244
|
-
```
|
293
|
+
```yaml
|
245
294
|
---
|
246
295
|
namespace: MySuperOrganization
|
247
296
|
branch: modulesyncbranch
|
297
|
+
pr_title: "Updates to module template files via modulesync"
|
298
|
+
pr_labels:
|
299
|
+
- TOOLING
|
300
|
+
- MAINTENANCE
|
301
|
+
- MODULESYNC
|
248
302
|
```
|
249
303
|
|
250
|
-
######
|
304
|
+
###### GitLab
|
251
305
|
|
252
|
-
```
|
306
|
+
```yaml
|
253
307
|
---
|
254
308
|
git_base: 'user@gitlab.example.com:'
|
255
309
|
namespace: MySuperOrganization
|
@@ -258,7 +312,7 @@ branch: modulesyncbranch
|
|
258
312
|
|
259
313
|
###### Gerrit
|
260
314
|
|
261
|
-
```
|
315
|
+
```yaml
|
262
316
|
---
|
263
317
|
namespace: stackforge
|
264
318
|
git_base: ssh://jdoe@review.openstack.org:29418/
|
@@ -350,16 +404,33 @@ current date, bumped (minor) version, and commit message.
|
|
350
404
|
If `CHANGELOG.md` is absent in the repository, nothing will happen.
|
351
405
|
|
352
406
|
|
353
|
-
####
|
407
|
+
#### Working with templates
|
354
408
|
|
355
|
-
As
|
409
|
+
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
410
|
|
357
|
-
```
|
411
|
+
```erb
|
358
412
|
<%= @configs[:git_base] %>
|
359
413
|
<%= @configs[:namespace] %>
|
360
414
|
<%= @configs[:puppet_module] %>
|
361
415
|
```
|
362
416
|
|
417
|
+
Alternatively some meta data is passed to the template. This will allow you to add custom Ruby extensions inside the
|
418
|
+
template, reading other files from the module, to make the template system more adaptive.
|
419
|
+
|
420
|
+
```erb
|
421
|
+
module: <%= @metadata[:module_name] %>
|
422
|
+
target: <%= @metadata[:target_file] %>
|
423
|
+
workdir: <%= @metadata[:workdir] %>
|
424
|
+
```
|
425
|
+
|
426
|
+
Will result in something like:
|
427
|
+
|
428
|
+
```
|
429
|
+
module: puppet-test
|
430
|
+
target: modules/github-org/puppet-test/test
|
431
|
+
workdir: modules/github-org/puppet-test
|
432
|
+
```
|
433
|
+
|
363
434
|
The Templates
|
364
435
|
-------------
|
365
436
|
|
data/Rakefile
CHANGED
@@ -23,7 +23,7 @@ Given 'a remote module repository' do
|
|
23
23
|
CONFIG
|
24
24
|
end
|
25
25
|
|
26
|
-
Given /a remote module repository with "(.+?)" as the default branch/ do |branch|
|
26
|
+
Given Regexp.new(/a remote module repository with "(.+?)" as the default branch/) do |branch|
|
27
27
|
steps %(
|
28
28
|
Given a directory named "sources"
|
29
29
|
And I run `git clone --mirror https://github.com/maestrodev/puppet-test sources/puppet-test`
|
data/features/update.feature
CHANGED
@@ -31,7 +31,7 @@ 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
37
|
Scenario: Using skip_broken option and adding a new file to repo without write access
|
@@ -113,14 +113,14 @@ Feature: update
|
|
113
113
|
Then the exit status should be 0
|
114
114
|
And the output should match:
|
115
115
|
"""
|
116
|
-
Warning: using './moduleroot
|
116
|
+
Warning: using './moduleroot/test' as template without '.erb' suffix
|
117
117
|
"""
|
118
118
|
And the output should match:
|
119
119
|
"""
|
120
120
|
Files added:
|
121
121
|
test
|
122
122
|
"""
|
123
|
-
Given I run `cat modules/puppet-test/test`
|
123
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
124
124
|
Then the output should contain "aruba"
|
125
125
|
|
126
126
|
Scenario: Adding a new file using global values
|
@@ -153,7 +153,7 @@ Feature: update
|
|
153
153
|
Files added:
|
154
154
|
test
|
155
155
|
"""
|
156
|
-
Given I run `cat modules/puppet-test/test`
|
156
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
157
157
|
Then the output should contain "aruba"
|
158
158
|
|
159
159
|
Scenario: Adding a new file overriding global values
|
@@ -189,7 +189,7 @@ Feature: update
|
|
189
189
|
Files added:
|
190
190
|
test
|
191
191
|
"""
|
192
|
-
Given I run `cat modules/puppet-test/test`
|
192
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
193
193
|
Then the output should contain "aruba"
|
194
194
|
|
195
195
|
Scenario: Adding a new file ignoring global values
|
@@ -225,7 +225,7 @@ Feature: update
|
|
225
225
|
Files added:
|
226
226
|
test
|
227
227
|
"""
|
228
|
-
Given I run `cat modules/puppet-test/test`
|
228
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
229
229
|
Then the output should contain "aruba"
|
230
230
|
|
231
231
|
Scenario: Adding a file that ERB can't parse
|
@@ -342,7 +342,7 @@ Feature: update
|
|
342
342
|
Files changed:
|
343
343
|
+diff --git a/Gemfile b/Gemfile
|
344
344
|
"""
|
345
|
-
Given I run `cat modules/puppet-test/Gemfile`
|
345
|
+
Given I run `cat modules/maestrodev/puppet-test/Gemfile`
|
346
346
|
Then the output should contain:
|
347
347
|
"""
|
348
348
|
source 'https://somehost.com'
|
@@ -405,7 +405,7 @@ Feature: update
|
|
405
405
|
Not managing Gemfile in puppet-test
|
406
406
|
"""
|
407
407
|
And the exit status should be 0
|
408
|
-
Given I run `cat modules/puppet-test/Gemfile`
|
408
|
+
Given I run `cat modules/maestrodev/puppet-test/Gemfile`
|
409
409
|
Then the output should contain:
|
410
410
|
"""
|
411
411
|
source 'https://rubygems.org'
|
@@ -488,8 +488,8 @@ Feature: update
|
|
488
488
|
"""
|
489
489
|
some spec_helper fud
|
490
490
|
"""
|
491
|
-
And a directory named "modules/puppetlabs-apache/spec"
|
492
|
-
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:
|
493
493
|
"""
|
494
494
|
This is a fake spec_helper!
|
495
495
|
"""
|
@@ -499,7 +499,7 @@ Feature: update
|
|
499
499
|
Not managing spec/spec_helper.rb in puppetlabs-apache
|
500
500
|
"""
|
501
501
|
And the exit status should be 0
|
502
|
-
Given I run `cat modules/puppetlabs-apache/spec/spec_helper.rb`
|
502
|
+
Given I run `cat modules/puppetlabs/puppetlabs-apache/spec/spec_helper.rb`
|
503
503
|
Then the output should contain:
|
504
504
|
"""
|
505
505
|
This is a fake spec_helper!
|
@@ -538,7 +538,7 @@ Feature: update
|
|
538
538
|
Files added:
|
539
539
|
spec/spec_helper.rb
|
540
540
|
"""
|
541
|
-
Given I run `cat modules/puppet-test/spec/spec_helper.rb`
|
541
|
+
Given I run `cat modules/maestrodev/puppet-test/spec/spec_helper.rb`
|
542
542
|
Then the output should contain:
|
543
543
|
"""
|
544
544
|
require 'puppetlabs_spec_helper/module_helper'
|
@@ -577,7 +577,7 @@ Feature: update
|
|
577
577
|
Given a file named "managed_modules.yml" with:
|
578
578
|
"""
|
579
579
|
---
|
580
|
-
- puppet-test
|
580
|
+
- maestrodev/puppet-test
|
581
581
|
"""
|
582
582
|
And a file named "modulesync.yml" with:
|
583
583
|
"""
|
@@ -597,8 +597,8 @@ Feature: update
|
|
597
597
|
require '<%= required %>'
|
598
598
|
<% end %>
|
599
599
|
"""
|
600
|
-
Given I run `git init modules/puppet-test`
|
601
|
-
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:
|
602
602
|
"""
|
603
603
|
[core]
|
604
604
|
repositoryformatversion = 0
|
@@ -667,7 +667,7 @@ Feature: update
|
|
667
667
|
Files added:
|
668
668
|
test
|
669
669
|
"""
|
670
|
-
Given I run `cat modules/puppet-test/test`
|
670
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
671
671
|
Then the output should contain "aruba"
|
672
672
|
|
673
673
|
Scenario: When specifying configurations in managed_modules.yml and using a filter
|
@@ -702,9 +702,9 @@ Feature: update
|
|
702
702
|
Files added:
|
703
703
|
test
|
704
704
|
"""
|
705
|
-
Given I run `cat modules/puppet-test/test`
|
705
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
706
706
|
Then the output should contain "aruba"
|
707
|
-
And a directory named "modules/puppet-blacksmith" should not exist
|
707
|
+
And a directory named "modules/maestrodev/puppet-blacksmith" should not exist
|
708
708
|
|
709
709
|
Scenario: When specifying configurations in managed_modules.yml and using a negative filter
|
710
710
|
Given a file named "managed_modules.yml" with:
|
@@ -738,15 +738,15 @@ Feature: update
|
|
738
738
|
Files added:
|
739
739
|
test
|
740
740
|
"""
|
741
|
-
Given I run `cat modules/puppet-test/test`
|
741
|
+
Given I run `cat modules/maestrodev/puppet-test/test`
|
742
742
|
Then the output should contain "aruba"
|
743
|
-
And a directory named "modules/puppet-blacksmith" should not exist
|
743
|
+
And a directory named "modules/maestrodev/puppet-blacksmith" should not exist
|
744
744
|
|
745
745
|
Scenario: Updating a module with a .sync.yml file
|
746
746
|
Given a file named "managed_modules.yml" with:
|
747
747
|
"""
|
748
748
|
---
|
749
|
-
- puppet-test
|
749
|
+
- maestrodev/puppet-test
|
750
750
|
"""
|
751
751
|
And a file named "modulesync.yml" with:
|
752
752
|
"""
|
@@ -756,6 +756,9 @@ Feature: update
|
|
756
756
|
And a file named "config_defaults.yml" with:
|
757
757
|
"""
|
758
758
|
---
|
759
|
+
:global:
|
760
|
+
global-default: some-default
|
761
|
+
global-to-overwrite: to-be-overwritten
|
759
762
|
spec/spec_helper.rb:
|
760
763
|
require:
|
761
764
|
- puppetlabs_spec_helper/module_helper
|
@@ -766,8 +769,14 @@ Feature: update
|
|
766
769
|
require '<%= required %>'
|
767
770
|
<% end %>
|
768
771
|
"""
|
769
|
-
|
770
|
-
|
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:
|
771
780
|
"""
|
772
781
|
[core]
|
773
782
|
repositoryformatversion = 0
|
@@ -780,9 +789,12 @@ Feature: update
|
|
780
789
|
url = https://github.com/maestrodev/puppet-test.git
|
781
790
|
fetch = +refs/heads/*:refs/remotes/origin/*
|
782
791
|
"""
|
783
|
-
Given a file named "modules/puppet-test/.sync.yml" with:
|
792
|
+
Given a file named "modules/maestrodev/puppet-test/.sync.yml" with:
|
784
793
|
"""
|
785
794
|
---
|
795
|
+
:global:
|
796
|
+
global-to-overwrite: it-is-overwritten
|
797
|
+
module-default: some-value
|
786
798
|
spec/spec_helper.rb:
|
787
799
|
unmanaged: true
|
788
800
|
"""
|
@@ -792,6 +804,13 @@ Feature: update
|
|
792
804
|
"""
|
793
805
|
Not managing spec/spec_helper.rb in puppet-test
|
794
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
|
+
"""
|
795
814
|
|
796
815
|
Scenario: Module with custom namespace
|
797
816
|
Given a file named "managed_modules.yml" with:
|
@@ -824,9 +843,9 @@ Feature: update
|
|
824
843
|
Files added:
|
825
844
|
test
|
826
845
|
"""
|
827
|
-
Given I run `cat modules/puppet-test/.git/config`
|
846
|
+
Given I run `cat modules/maestrodev/puppet-test/.git/config`
|
828
847
|
Then the output should contain "url = https://github.com/maestrodev/puppet-test.git"
|
829
|
-
Given I run `cat modules/puppet-lib-file_concat/.git/config`
|
848
|
+
Given I run `cat modules/electrical/puppet-lib-file_concat/.git/config`
|
830
849
|
Then the output should contain "url = https://github.com/electrical/puppet-lib-file_concat.git"
|
831
850
|
|
832
851
|
Scenario: Modifying an existing file with values exposed by the module
|
@@ -858,7 +877,7 @@ Feature: update
|
|
858
877
|
Files changed:
|
859
878
|
+diff --git a/README.md b/README.md
|
860
879
|
"""
|
861
|
-
Given I run `cat modules/puppet-test/README.md`
|
880
|
+
Given I run `cat modules/maestrodev/puppet-test/README.md`
|
862
881
|
Then the output should contain:
|
863
882
|
"""
|
864
883
|
echo 'https://github.com/maestrodev'
|
@@ -903,3 +922,36 @@ Feature: update
|
|
903
922
|
When I run `msync update -m "Update Gemfile"`
|
904
923
|
Then the exit status should be 0
|
905
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
|
+
"""
|