modulesync 1.2.0 → 2.1.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/.config/cucumber.yml +1 -0
- data/.github/workflows/ci.yml +29 -0
- data/.github/workflows/release.yml +30 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +8 -1
- data/.rubocop_todo.yml +16 -35
- data/CHANGELOG.md +82 -1
- data/Gemfile +5 -1
- data/HISTORY.md +227 -0
- data/README.md +29 -6
- data/Rakefile +24 -0
- data/features/cli.feature +14 -6
- data/features/hook.feature +3 -5
- data/features/step_definitions/git_steps.rb +73 -35
- data/features/support/env.rb +4 -0
- data/features/update.feature +163 -341
- data/features/update/bad_context.feature +26 -0
- data/features/update/bump_version.feature +87 -0
- data/lib/modulesync.rb +92 -51
- data/lib/modulesync/cli.rb +10 -4
- data/lib/modulesync/cli/thor.rb +24 -0
- data/lib/modulesync/pr/github.rb +25 -9
- data/lib/modulesync/pr/gitlab.rb +27 -13
- data/lib/modulesync/puppet_module.rb +37 -0
- data/lib/modulesync/repository.rb +158 -0
- data/lib/modulesync/source_code.rb +57 -0
- data/lib/modulesync/util.rb +4 -1
- data/lib/monkey_patches.rb +9 -48
- data/modulesync.gemspec +4 -4
- data/spec/helpers/faker.rb +14 -0
- data/spec/helpers/faker/puppet_module_remote_repo.rb +146 -0
- data/spec/unit/modulesync_spec.rb +7 -3
- metadata +30 -10
- data/.travis.yml +0 -27
- data/lib/modulesync/git.rb +0 -194
data/README.md
CHANGED
@@ -169,7 +169,7 @@ msync hook activate
|
|
169
169
|
```
|
170
170
|
|
171
171
|
If you have activated the hook but want to make changes to the configuration
|
172
|
-
directory (such as changes to managed_modules.yml or modulesync.yml) without
|
172
|
+
directory (such as changes to `managed_modules.yml` or `modulesync.yml`) without
|
173
173
|
touching the modules, you can deactivate the hook.
|
174
174
|
|
175
175
|
```
|
@@ -185,17 +185,38 @@ GitLab automatically with the `--pr` CLI option.
|
|
185
185
|
msync update --pr
|
186
186
|
```
|
187
187
|
|
188
|
-
|
189
|
-
|
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 specify the
|
195
|
+
`base_url` parameter in `modulesync.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:
|
190
211
|
|
191
212
|
* Set the PR/MR title with `--pr-title` or in `modulesync.yml` with the
|
192
213
|
`pr_title` attribute.
|
193
214
|
* Assign labels to the PR/MR with `--pr-labels` or in `modulesync.yml` with
|
194
215
|
the `pr_labels` attribute. **NOTE:** `pr_labels` should be a list. When
|
195
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.
|
196
219
|
|
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
220
|
More details for GitHub:
|
200
221
|
|
201
222
|
* Octokit [`api_endpoint`](https://github.com/octokit/octokit.rb#interacting-with-the-githubcom-apis-in-github-enterprise)
|
@@ -255,7 +276,9 @@ msync update -m "Commit message"
|
|
255
276
|
Available parameters for modulesync.yml
|
256
277
|
|
257
278
|
* `git_base` : The default URL to git clone from (Default: 'git@github.com:')
|
258
|
-
* `namespace` : Namespace of the projects to manage (Default: 'puppetlabs')
|
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`.
|
259
282
|
* `branch` : Branch to push to (Default: 'master')
|
260
283
|
* `remote_branch` : Remote branch to push to (Default: Same value as branch)
|
261
284
|
* `message` : Commit message to apply to updated modules.
|
data/Rakefile
CHANGED
@@ -20,3 +20,27 @@ end
|
|
20
20
|
|
21
21
|
task :test => %i[clean spec cucumber rubocop]
|
22
22
|
task :default => %i[test]
|
23
|
+
|
24
|
+
begin
|
25
|
+
require 'github_changelog_generator/task'
|
26
|
+
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
27
|
+
config.header = "# Changelog\n\nAll notable changes to this project will be documented in this file."
|
28
|
+
config.exclude_labels = %w[duplicate question invalid wontfix wont-fix modulesync skip-changelog]
|
29
|
+
config.user = 'voxpupuli'
|
30
|
+
config.project = 'modulesync'
|
31
|
+
config.future_release = Gem::Specification.load("#{config.project}.gemspec").version
|
32
|
+
end
|
33
|
+
|
34
|
+
# Workaround for https://github.com/github-changelog-generator/github-changelog-generator/issues/715
|
35
|
+
require 'rbconfig'
|
36
|
+
if RbConfig::CONFIG['host_os'] =~ /linux/
|
37
|
+
task :changelog do
|
38
|
+
puts 'Fixing line endings...'
|
39
|
+
changelog_file = File.join(__dir__, 'CHANGELOG.md')
|
40
|
+
changelog_txt = File.read(changelog_file)
|
41
|
+
new_contents = changelog_txt.gsub(/\r\n/, "\n")
|
42
|
+
File.open(changelog_file, 'w') { |file| file.puts new_contents }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
rescue LoadError
|
46
|
+
end
|
data/features/cli.feature
CHANGED
@@ -4,21 +4,26 @@ Feature: CLI
|
|
4
4
|
Scenario: When passing no arguments to the msync command
|
5
5
|
When I run `msync`
|
6
6
|
And the output should match /Commands:/
|
7
|
+
Then the exit status should be 1
|
7
8
|
|
8
9
|
Scenario: When passing invalid arguments to the msync update command
|
9
10
|
When I run `msync update`
|
10
11
|
And the output should match /No value provided for required option/
|
12
|
+
Then the exit status should be 1
|
11
13
|
|
12
14
|
Scenario: When passing invalid arguments to the msync hook command
|
13
15
|
When I run `msync hook`
|
14
16
|
And the output should match /Commands:/
|
17
|
+
Then the exit status should be 1
|
15
18
|
|
16
|
-
Scenario: When running the help
|
19
|
+
Scenario: When running the help command
|
17
20
|
When I run `msync help`
|
18
21
|
And the output should match /Commands:/
|
22
|
+
Then the exit status should be 0
|
19
23
|
|
20
24
|
Scenario: When overriding a setting from the config file on the command line
|
21
|
-
Given a
|
25
|
+
Given a puppet module "puppet-test" from "fakenamespace"
|
26
|
+
And a file named "managed_modules.yml" with:
|
22
27
|
"""
|
23
28
|
---
|
24
29
|
- puppet-test
|
@@ -26,10 +31,13 @@ Feature: CLI
|
|
26
31
|
And a file named "modulesync.yml" with:
|
27
32
|
"""
|
28
33
|
---
|
29
|
-
|
30
|
-
git_base: 'git@github.com:'
|
34
|
+
namespace: default
|
31
35
|
"""
|
36
|
+
And a git_base option appended to "modulesync.yml" for local tests
|
32
37
|
And a directory named "moduleroot"
|
33
|
-
When I run `msync update --noop --
|
38
|
+
When I run `msync update --noop --namespace fakenamespace --branch command-line-branch`
|
34
39
|
Then the exit status should be 0
|
35
|
-
And the output should
|
40
|
+
And the output should contain:
|
41
|
+
"""
|
42
|
+
Creating new branch command-line-branch
|
43
|
+
"""
|
data/features/hook.feature
CHANGED
@@ -5,8 +5,7 @@ Feature: hook
|
|
5
5
|
Given a directory named ".git/hooks"
|
6
6
|
When I run `msync hook activate`
|
7
7
|
Then the exit status should be 0
|
8
|
-
|
9
|
-
Then the output should contain "bash"
|
8
|
+
And the file named ".git/hooks/pre-push" should contain "bash"
|
10
9
|
|
11
10
|
Scenario: Deactivating a hook
|
12
11
|
Given a file named ".git/hooks/pre-push" with:
|
@@ -21,8 +20,7 @@ Feature: hook
|
|
21
20
|
Given a directory named ".git/hooks"
|
22
21
|
When I run `msync hook activate -a '--foo bar --baz quux' -b master`
|
23
22
|
Then the exit status should be 0
|
24
|
-
|
25
|
-
Then the output should match:
|
23
|
+
And the file named ".git/hooks/pre-push" should contain:
|
26
24
|
"""
|
27
|
-
"
|
25
|
+
"$message" -n puppetlabs -b master --foo bar --baz quux
|
28
26
|
"""
|
@@ -1,47 +1,85 @@
|
|
1
|
-
|
2
|
-
steps %(
|
3
|
-
Given a mocked home directory
|
4
|
-
And I run `git config --global user.name Test`
|
5
|
-
And I run `git config --global user.email test@example.com`
|
6
|
-
)
|
7
|
-
end
|
1
|
+
require_relative '../../spec/helpers/faker/puppet_module_remote_repo'
|
8
2
|
|
9
|
-
Given 'a
|
3
|
+
Given 'a basic setup with a puppet module {string} from {string}' do |name, namespace|
|
10
4
|
steps %(
|
11
|
-
Given a
|
12
|
-
And
|
5
|
+
Given a mocked git configuration
|
6
|
+
And a puppet module "#{name}" from "#{namespace}"
|
13
7
|
And a file named "managed_modules.yml" with:
|
14
8
|
"""
|
15
9
|
---
|
16
|
-
-
|
10
|
+
- #{name}
|
17
11
|
"""
|
12
|
+
And a file named "modulesync.yml" with:
|
13
|
+
"""
|
14
|
+
---
|
15
|
+
namespace: #{namespace}
|
16
|
+
"""
|
17
|
+
And a git_base option appended to "modulesync.yml" for local tests
|
18
18
|
)
|
19
|
-
write_file('modulesync.yml', <<-CONFIG)
|
20
|
-
---
|
21
|
-
namespace: sources
|
22
|
-
git_base: file://#{expand_path('.')}/
|
23
|
-
CONFIG
|
24
19
|
end
|
25
20
|
|
26
|
-
Given
|
21
|
+
Given 'a mocked git configuration' do
|
27
22
|
steps %(
|
28
|
-
Given a
|
29
|
-
And I run `git
|
30
|
-
And
|
31
|
-
"""
|
32
|
-
---
|
33
|
-
- puppet-test
|
34
|
-
"""
|
23
|
+
Given a mocked home directory
|
24
|
+
And I run `git config --global user.name Aruba`
|
25
|
+
And I run `git config --global user.email aruba@example.com`
|
35
26
|
)
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
27
|
+
end
|
28
|
+
|
29
|
+
Given 'a puppet module {string} from {string}' do |name, namespace|
|
30
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
31
|
+
pmrr.populate
|
32
|
+
end
|
33
|
+
|
34
|
+
Given 'a git_base option appended to "modulesync.yml" for local tests' do
|
35
|
+
File.write "#{Aruba.config.working_directory}/modulesync.yml", "\ngit_base: #{ModuleSync::Faker::PuppetModuleRemoteRepo.git_base}", mode: 'a'
|
36
|
+
end
|
37
|
+
|
38
|
+
Given 'the puppet module {string} from {string} is read-only' do |name, namespace|
|
39
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
40
|
+
pmrr.read_only = true
|
41
|
+
end
|
42
|
+
|
43
|
+
Then 'the puppet module {string} from {string} should have no commits between {string} and {string}' do |name, namespace, commit1, commit2|
|
44
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
45
|
+
expect(pmrr.commit_count_between(commit1, commit2)).to eq 0
|
46
|
+
end
|
47
|
+
|
48
|
+
Then 'the puppet module {string} from {string} should have( only) {int} commit(s) made by {string}' do |name, namespace, commit_count, author|
|
49
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
50
|
+
expect(pmrr.commit_count_by(author)).to eq commit_count
|
51
|
+
end
|
52
|
+
|
53
|
+
Then 'the puppet module {string} from {string} should have( only) {int} commit(s) made by {string} in branch {string}' do |name, namespace, commit_count, author, branch|
|
54
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
55
|
+
expect(pmrr.commit_count_by(author, branch)).to eq commit_count
|
56
|
+
end
|
57
|
+
|
58
|
+
Then 'the puppet module {string} from {string} should have no commits made by {string}' do |name, namespace, author|
|
59
|
+
step "the puppet module \"#{name}\" from \"#{namespace}\" should have 0 commits made by \"#{author}\""
|
60
|
+
end
|
61
|
+
|
62
|
+
Given 'the puppet module {string} from {string} has a file named {string} with:' do |name, namespace, filename, content|
|
63
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
64
|
+
pmrr.add_file(filename, content)
|
65
|
+
end
|
66
|
+
|
67
|
+
Then 'the puppet module {string} from {string} should have a branch {string} with a file named {string} which contains:' do |name, namespace, branch, filename, content|
|
68
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
69
|
+
expect(pmrr.read_file(filename, branch)).to include(content)
|
70
|
+
end
|
71
|
+
|
72
|
+
Given 'the puppet module {string} from {string} has the default branch named {string}' do |name, namespace, default_branch|
|
73
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
74
|
+
pmrr.default_branch = default_branch
|
75
|
+
end
|
76
|
+
|
77
|
+
Then('the puppet module {string} from {string} should have a tag named {string}') do |name, namespace, tag|
|
78
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
79
|
+
expect(pmrr.tags).to include(tag)
|
80
|
+
end
|
81
|
+
|
82
|
+
Then('the puppet module {string} from {string} should not have a tag named {string}') do |name, namespace, tag|
|
83
|
+
pmrr = ModuleSync::Faker::PuppetModuleRemoteRepo.new(name, namespace)
|
84
|
+
expect(pmrr.tags).not_to include(tag)
|
47
85
|
end
|
data/features/support/env.rb
CHANGED
data/features/update.feature
CHANGED
@@ -2,17 +2,7 @@ Feature: update
|
|
2
2
|
ModuleSync needs to update module boilerplate
|
3
3
|
|
4
4
|
Scenario: Adding a new file
|
5
|
-
Given a
|
6
|
-
"""
|
7
|
-
---
|
8
|
-
- puppet-test
|
9
|
-
"""
|
10
|
-
And a file named "modulesync.yml" with:
|
11
|
-
"""
|
12
|
-
---
|
13
|
-
namespace: maestrodev
|
14
|
-
git_base: https://github.com/
|
15
|
-
"""
|
5
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
16
6
|
And a file named "config_defaults.yml" with:
|
17
7
|
"""
|
18
8
|
---
|
@@ -31,21 +21,11 @@ Feature: update
|
|
31
21
|
Files added:
|
32
22
|
test
|
33
23
|
"""
|
34
|
-
|
35
|
-
Then the output should contain "aruba"
|
24
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain "aruba"
|
36
25
|
|
37
26
|
Scenario: Using skip_broken option and adding a new file to repo without write access
|
38
|
-
Given a
|
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
|
-
"""
|
27
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
28
|
+
And the puppet module "puppet-test" from "fakenamespace" is read-only
|
49
29
|
And a file named "config_defaults.yml" with:
|
50
30
|
"""
|
51
31
|
---
|
@@ -59,19 +39,11 @@ Feature: update
|
|
59
39
|
"""
|
60
40
|
When I run `msync update -s -m "Add test"`
|
61
41
|
Then the exit status should be 0
|
42
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
62
43
|
|
63
44
|
Scenario: Adding a new file to repo without write access
|
64
|
-
Given a
|
65
|
-
|
66
|
-
---
|
67
|
-
- puppet-test
|
68
|
-
"""
|
69
|
-
And a file named "modulesync.yml" with:
|
70
|
-
"""
|
71
|
-
---
|
72
|
-
namespace: maestrodev
|
73
|
-
git_base: 'git@github.com:'
|
74
|
-
"""
|
45
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
46
|
+
And the puppet module "puppet-test" from "fakenamespace" is read-only
|
75
47
|
And a file named "config_defaults.yml" with:
|
76
48
|
"""
|
77
49
|
---
|
@@ -85,19 +57,10 @@ Feature: update
|
|
85
57
|
"""
|
86
58
|
When I run `msync update -m "Add test" -r`
|
87
59
|
Then the exit status should be 1
|
60
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
88
61
|
|
89
62
|
Scenario: Adding a new file, without the .erb suffix
|
90
|
-
Given a
|
91
|
-
"""
|
92
|
-
---
|
93
|
-
- puppet-test
|
94
|
-
"""
|
95
|
-
And a file named "modulesync.yml" with:
|
96
|
-
"""
|
97
|
-
---
|
98
|
-
namespace: maestrodev
|
99
|
-
git_base: https://github.com/
|
100
|
-
"""
|
63
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
101
64
|
And a file named "config_defaults.yml" with:
|
102
65
|
"""
|
103
66
|
---
|
@@ -120,21 +83,11 @@ Feature: update
|
|
120
83
|
Files added:
|
121
84
|
test
|
122
85
|
"""
|
123
|
-
|
124
|
-
|
86
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain "aruba"
|
87
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
125
88
|
|
126
89
|
Scenario: Adding a new file using global values
|
127
|
-
Given a
|
128
|
-
"""
|
129
|
-
---
|
130
|
-
- puppet-test
|
131
|
-
"""
|
132
|
-
And a file named "modulesync.yml" with:
|
133
|
-
"""
|
134
|
-
---
|
135
|
-
namespace: maestrodev
|
136
|
-
git_base: https://github.com/
|
137
|
-
"""
|
90
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
138
91
|
And a file named "config_defaults.yml" with:
|
139
92
|
"""
|
140
93
|
---
|
@@ -153,21 +106,11 @@ Feature: update
|
|
153
106
|
Files added:
|
154
107
|
test
|
155
108
|
"""
|
156
|
-
|
157
|
-
|
109
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain "aruba"
|
110
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
158
111
|
|
159
112
|
Scenario: Adding a new file overriding global values
|
160
|
-
Given a
|
161
|
-
"""
|
162
|
-
---
|
163
|
-
- puppet-test
|
164
|
-
"""
|
165
|
-
And a file named "modulesync.yml" with:
|
166
|
-
"""
|
167
|
-
---
|
168
|
-
namespace: maestrodev
|
169
|
-
git_base: https://github.com/
|
170
|
-
"""
|
113
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
171
114
|
And a file named "config_defaults.yml" with:
|
172
115
|
"""
|
173
116
|
---
|
@@ -189,21 +132,11 @@ Feature: update
|
|
189
132
|
Files added:
|
190
133
|
test
|
191
134
|
"""
|
192
|
-
|
193
|
-
|
135
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain "aruba"
|
136
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
194
137
|
|
195
138
|
Scenario: Adding a new file ignoring global values
|
196
|
-
Given a
|
197
|
-
"""
|
198
|
-
---
|
199
|
-
- puppet-test
|
200
|
-
"""
|
201
|
-
And a file named "modulesync.yml" with:
|
202
|
-
"""
|
203
|
-
---
|
204
|
-
namespace: maestrodev
|
205
|
-
git_base: https://github.com/
|
206
|
-
"""
|
139
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
207
140
|
And a file named "config_defaults.yml" with:
|
208
141
|
"""
|
209
142
|
---
|
@@ -225,21 +158,11 @@ Feature: update
|
|
225
158
|
Files added:
|
226
159
|
test
|
227
160
|
"""
|
228
|
-
|
229
|
-
|
161
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain "aruba"
|
162
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
230
163
|
|
231
164
|
Scenario: Adding a file that ERB can't parse
|
232
|
-
Given a
|
233
|
-
"""
|
234
|
-
---
|
235
|
-
- puppet-test
|
236
|
-
"""
|
237
|
-
And a file named "modulesync.yml" with:
|
238
|
-
"""
|
239
|
-
---
|
240
|
-
namespace: maestrodev
|
241
|
-
git_base: https://github.com/
|
242
|
-
"""
|
165
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
243
166
|
And a file named "config_defaults.yml" with:
|
244
167
|
"""
|
245
168
|
---
|
@@ -255,19 +178,10 @@ Feature: update
|
|
255
178
|
"""
|
256
179
|
When I run `msync update --noop`
|
257
180
|
Then the exit status should be 1
|
181
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
258
182
|
|
259
183
|
Scenario: Using skip_broken option with invalid files
|
260
|
-
Given a
|
261
|
-
"""
|
262
|
-
---
|
263
|
-
- puppet-test
|
264
|
-
"""
|
265
|
-
And a file named "modulesync.yml" with:
|
266
|
-
"""
|
267
|
-
---
|
268
|
-
namespace: maestrodev
|
269
|
-
git_base: https://github.com/
|
270
|
-
"""
|
184
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
271
185
|
And a file named "config_defaults.yml" with:
|
272
186
|
"""
|
273
187
|
---
|
@@ -283,19 +197,10 @@ Feature: update
|
|
283
197
|
"""
|
284
198
|
When I run `msync update --noop -s`
|
285
199
|
Then the exit status should be 0
|
200
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
286
201
|
|
287
202
|
Scenario: Using skip_broken and fail_on_warnings options with invalid files
|
288
|
-
Given a
|
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
|
-
"""
|
203
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
299
204
|
And a file named "config_defaults.yml" with:
|
300
205
|
"""
|
301
206
|
---
|
@@ -311,18 +216,13 @@ Feature: update
|
|
311
216
|
"""
|
312
217
|
When I run `msync update --noop --skip_broken --fail_on_warnings`
|
313
218
|
Then the exit status should be 1
|
219
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
314
220
|
|
315
221
|
Scenario: Modifying an existing file
|
316
|
-
Given a
|
317
|
-
|
318
|
-
---
|
319
|
-
- puppet-test
|
222
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
223
|
+
And the puppet module "puppet-test" from "fakenamespace" has a file named "Gemfile" with:
|
320
224
|
"""
|
321
|
-
|
322
|
-
"""
|
323
|
-
---
|
324
|
-
namespace: maestrodev
|
325
|
-
git_base: https://github.com/
|
225
|
+
source 'https://example.com'
|
326
226
|
"""
|
327
227
|
And a file named "config_defaults.yml" with:
|
328
228
|
"""
|
@@ -342,15 +242,18 @@ Feature: update
|
|
342
242
|
Files changed:
|
343
243
|
+diff --git a/Gemfile b/Gemfile
|
344
244
|
"""
|
345
|
-
|
346
|
-
Then the output should contain:
|
245
|
+
And the file named "modules/fakenamespace/puppet-test/Gemfile" should contain:
|
347
246
|
"""
|
348
247
|
source 'https://somehost.com'
|
349
248
|
"""
|
249
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
350
250
|
|
351
251
|
Scenario: Modifying an existing file and committing the change
|
352
|
-
Given a
|
353
|
-
And
|
252
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
253
|
+
And the puppet module "puppet-test" from "fakenamespace" has a file named "Gemfile" with:
|
254
|
+
"""
|
255
|
+
source 'https://example.com'
|
256
|
+
"""
|
354
257
|
And a file named "config_defaults.yml" with:
|
355
258
|
"""
|
356
259
|
---
|
@@ -364,30 +267,25 @@ Feature: update
|
|
364
267
|
"""
|
365
268
|
When I run `msync update -m "Update Gemfile" -r test`
|
366
269
|
Then the exit status should be 0
|
367
|
-
|
368
|
-
And
|
369
|
-
|
270
|
+
And the puppet module "puppet-test" from "fakenamespace" should have only 1 commit made by "Aruba"
|
271
|
+
And the puppet module "puppet-test" from "fakenamespace" should have 1 commit made by "Aruba" in branch "test"
|
272
|
+
And the puppet module "puppet-test" from "fakenamespace" should have a branch "test" with a file named "Gemfile" which contains:
|
370
273
|
"""
|
371
274
|
source 'https://somehost.com'
|
372
275
|
"""
|
373
276
|
|
374
277
|
Scenario: Setting an existing file to unmanaged
|
375
|
-
Given a
|
376
|
-
|
377
|
-
---
|
378
|
-
- puppet-test
|
379
|
-
"""
|
380
|
-
And a file named "modulesync.yml" with:
|
278
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
279
|
+
And the puppet module "puppet-test" from "fakenamespace" has a file named "Gemfile" with:
|
381
280
|
"""
|
382
|
-
|
383
|
-
namespace: maestrodev
|
384
|
-
git_base: https://github.com/
|
281
|
+
source 'https://rubygems.org'
|
385
282
|
"""
|
386
283
|
And a file named "config_defaults.yml" with:
|
387
284
|
"""
|
388
285
|
---
|
389
286
|
Gemfile:
|
390
287
|
unmanaged: true
|
288
|
+
gem_source: https://somehost.com
|
391
289
|
"""
|
392
290
|
And a directory named "moduleroot"
|
393
291
|
And a file named "moduleroot/Gemfile.erb" with:
|
@@ -402,27 +300,17 @@ Feature: update
|
|
402
300
|
"""
|
403
301
|
And the output should match:
|
404
302
|
"""
|
405
|
-
Not managing Gemfile in puppet-test
|
303
|
+
Not managing 'Gemfile' in 'puppet-test'
|
406
304
|
"""
|
407
305
|
And the exit status should be 0
|
408
|
-
|
409
|
-
Then the output should contain:
|
306
|
+
And the file named "modules/fakenamespace/puppet-test/Gemfile" should contain:
|
410
307
|
"""
|
411
308
|
source 'https://rubygems.org'
|
412
309
|
"""
|
310
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
413
311
|
|
414
312
|
Scenario: Setting an existing file to deleted
|
415
|
-
Given a
|
416
|
-
"""
|
417
|
-
---
|
418
|
-
- puppet-test
|
419
|
-
"""
|
420
|
-
And a file named "modulesync.yml" with:
|
421
|
-
"""
|
422
|
-
---
|
423
|
-
namespace: maestrodev
|
424
|
-
git_base: https://github.com/
|
425
|
-
"""
|
313
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
426
314
|
And a file named "config_defaults.yml" with:
|
427
315
|
"""
|
428
316
|
---
|
@@ -434,6 +322,10 @@ Feature: update
|
|
434
322
|
"""
|
435
323
|
source '<%= @configs['gem_source'] %>'
|
436
324
|
"""
|
325
|
+
And the puppet module "puppet-test" from "fakenamespace" has a file named "Gemfile" with:
|
326
|
+
"""
|
327
|
+
source 'https://rubygems.org'
|
328
|
+
"""
|
437
329
|
When I run `msync update --noop`
|
438
330
|
Then the output should match:
|
439
331
|
"""
|
@@ -442,19 +334,10 @@ Feature: update
|
|
442
334
|
deleted file mode 100644
|
443
335
|
"""
|
444
336
|
And the exit status should be 0
|
337
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
445
338
|
|
446
339
|
Scenario: Setting a non-existent file to deleted
|
447
|
-
Given a
|
448
|
-
"""
|
449
|
-
---
|
450
|
-
- puppet-test
|
451
|
-
"""
|
452
|
-
And a file named "modulesync.yml" with:
|
453
|
-
"""
|
454
|
-
---
|
455
|
-
namespace: maestrodev
|
456
|
-
git_base: https://github.com/
|
457
|
-
"""
|
340
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
458
341
|
And a file named "config_defaults.yml" with:
|
459
342
|
"""
|
460
343
|
---
|
@@ -464,19 +347,10 @@ Feature: update
|
|
464
347
|
And a directory named "moduleroot"
|
465
348
|
When I run `msync update -m 'deletes a file that doesnt exist!' -f puppet-test`
|
466
349
|
And the exit status should be 0
|
350
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
467
351
|
|
468
352
|
Scenario: Setting a directory to unmanaged
|
469
|
-
Given a
|
470
|
-
"""
|
471
|
-
---
|
472
|
-
- puppetlabs-apache
|
473
|
-
"""
|
474
|
-
And a file named "modulesync.yml" with:
|
475
|
-
"""
|
476
|
-
---
|
477
|
-
namespace: puppetlabs
|
478
|
-
git_base: https://github.com/
|
479
|
-
"""
|
353
|
+
Given a basic setup with a puppet module "puppet-apache" from "puppetlabs"
|
480
354
|
And a file named "config_defaults.yml" with:
|
481
355
|
"""
|
482
356
|
---
|
@@ -488,36 +362,26 @@ Feature: update
|
|
488
362
|
"""
|
489
363
|
some spec_helper fud
|
490
364
|
"""
|
491
|
-
And a directory named "modules/puppetlabs/
|
492
|
-
And a file named "modules/puppetlabs/
|
365
|
+
And a directory named "modules/puppetlabs/puppet-apache/spec"
|
366
|
+
And a file named "modules/puppetlabs/puppet-apache/spec/spec_helper.rb" with:
|
493
367
|
"""
|
494
368
|
This is a fake spec_helper!
|
495
369
|
"""
|
496
370
|
When I run `msync update --offline`
|
497
371
|
Then the output should contain:
|
498
372
|
"""
|
499
|
-
Not managing spec/spec_helper.rb in
|
373
|
+
Not managing 'spec/spec_helper.rb' in 'puppet-apache'
|
500
374
|
"""
|
501
375
|
And the exit status should be 0
|
502
|
-
|
503
|
-
Then the output should contain:
|
376
|
+
And the file named "modules/puppetlabs/puppet-apache/spec/spec_helper.rb" should contain:
|
504
377
|
"""
|
505
378
|
This is a fake spec_helper!
|
506
379
|
"""
|
507
380
|
And the exit status should be 0
|
381
|
+
And the puppet module "puppet-apache" from "puppetlabs" should have no commits made by "Aruba"
|
508
382
|
|
509
383
|
Scenario: Adding a new file in a new subdirectory
|
510
|
-
Given a
|
511
|
-
"""
|
512
|
-
---
|
513
|
-
- puppet-test
|
514
|
-
"""
|
515
|
-
And a file named "modulesync.yml" with:
|
516
|
-
"""
|
517
|
-
---
|
518
|
-
namespace: maestrodev
|
519
|
-
git_base: https://github.com/
|
520
|
-
"""
|
384
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
521
385
|
And a file named "config_defaults.yml" with:
|
522
386
|
"""
|
523
387
|
---
|
@@ -538,24 +402,14 @@ Feature: update
|
|
538
402
|
Files added:
|
539
403
|
spec/spec_helper.rb
|
540
404
|
"""
|
541
|
-
|
542
|
-
Then the output should contain:
|
405
|
+
And the file named "modules/fakenamespace/puppet-test/spec/spec_helper.rb" should contain:
|
543
406
|
"""
|
544
407
|
require 'puppetlabs_spec_helper/module_helper'
|
545
408
|
"""
|
409
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
546
410
|
|
547
411
|
Scenario: Updating offline
|
548
|
-
Given a
|
549
|
-
"""
|
550
|
-
---
|
551
|
-
- puppet-test
|
552
|
-
"""
|
553
|
-
And a file named "modulesync.yml" with:
|
554
|
-
"""
|
555
|
-
---
|
556
|
-
namespace: maestrodev
|
557
|
-
git_base: https://github.com/
|
558
|
-
"""
|
412
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
559
413
|
And a file named "config_defaults.yml" with:
|
560
414
|
"""
|
561
415
|
---
|
@@ -572,19 +426,15 @@ Feature: update
|
|
572
426
|
When I run `msync update --offline`
|
573
427
|
Then the exit status should be 0
|
574
428
|
And the output should not match /Files (changed|added|deleted):/
|
429
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
575
430
|
|
576
431
|
Scenario: Pulling a module that already exists in the modules directory
|
577
|
-
Given a
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
"""
|
584
|
-
---
|
585
|
-
git_base: https://github.com/
|
586
|
-
"""
|
587
|
-
And a file named "config_defaults.yml" with:
|
432
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
433
|
+
And a directory named "moduleroot"
|
434
|
+
When I run `msync update --message "First update run"`
|
435
|
+
Then the exit status should be 0
|
436
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
437
|
+
Given a file named "config_defaults.yml" with:
|
588
438
|
"""
|
589
439
|
---
|
590
440
|
spec/spec_helper.rb:
|
@@ -597,20 +447,6 @@ Feature: update
|
|
597
447
|
require '<%= required %>'
|
598
448
|
<% end %>
|
599
449
|
"""
|
600
|
-
Given I run `git init modules/maestrodev/puppet-test`
|
601
|
-
Given a file named "modules/maestrodev/puppet-test/.git/config" with:
|
602
|
-
"""
|
603
|
-
[core]
|
604
|
-
repositoryformatversion = 0
|
605
|
-
filemode = true
|
606
|
-
bare = false
|
607
|
-
logallrefupdates = true
|
608
|
-
ignorecase = true
|
609
|
-
precomposeunicode = true
|
610
|
-
[remote "origin"]
|
611
|
-
url = https://github.com/maestrodev/puppet-test.git
|
612
|
-
fetch = +refs/heads/*:refs/remotes/origin/*
|
613
|
-
"""
|
614
450
|
When I run `msync update --noop`
|
615
451
|
Then the exit status should be 0
|
616
452
|
And the output should match:
|
@@ -618,37 +454,24 @@ Feature: update
|
|
618
454
|
Files added:
|
619
455
|
spec/spec_helper.rb
|
620
456
|
"""
|
457
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
621
458
|
|
622
|
-
Scenario: When running update
|
623
|
-
Given a
|
624
|
-
"""
|
625
|
-
---
|
626
|
-
- puppet-test
|
627
|
-
"""
|
628
|
-
And a file named "modulesync.yml" with:
|
629
|
-
"""
|
630
|
-
---
|
631
|
-
namespace: maestrodev
|
632
|
-
git_base: https://github.com/
|
633
|
-
"""
|
459
|
+
Scenario: When running update without changes
|
460
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
634
461
|
And a directory named "moduleroot"
|
635
|
-
When I run `msync update --
|
462
|
+
When I run `msync update --message "Running without changes"`
|
636
463
|
Then the exit status should be 0
|
637
|
-
And the
|
464
|
+
And the stdout should contain "There were no changes in 'modules/fakenamespace/puppet-test'. Not committing."
|
465
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
638
466
|
|
639
467
|
Scenario: When specifying configurations in managed_modules.yml
|
640
|
-
Given a
|
468
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
469
|
+
And a file named "managed_modules.yml" with:
|
641
470
|
"""
|
642
471
|
---
|
643
472
|
puppet-test:
|
644
473
|
module_name: test
|
645
474
|
"""
|
646
|
-
And a file named "modulesync.yml" with:
|
647
|
-
"""
|
648
|
-
---
|
649
|
-
namespace: maestrodev
|
650
|
-
git_base: https://github.com/
|
651
|
-
"""
|
652
475
|
And a file named "config_defaults.yml" with:
|
653
476
|
"""
|
654
477
|
---
|
@@ -667,11 +490,14 @@ Feature: update
|
|
667
490
|
Files added:
|
668
491
|
test
|
669
492
|
"""
|
670
|
-
|
671
|
-
|
493
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain "aruba"
|
494
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
672
495
|
|
673
496
|
Scenario: When specifying configurations in managed_modules.yml and using a filter
|
674
|
-
Given a
|
497
|
+
Given a mocked git configuration
|
498
|
+
And a puppet module "puppet-test" from "fakenamespace"
|
499
|
+
And a puppet module "puppet-blacksmith" from "fakenamespace"
|
500
|
+
And a file named "managed_modules.yml" with:
|
675
501
|
"""
|
676
502
|
---
|
677
503
|
puppet-blacksmith:
|
@@ -681,9 +507,9 @@ Feature: update
|
|
681
507
|
And a file named "modulesync.yml" with:
|
682
508
|
"""
|
683
509
|
---
|
684
|
-
|
685
|
-
git_base: https://github.com/
|
510
|
+
namespace: fakenamespace
|
686
511
|
"""
|
512
|
+
And a git_base option appended to "modulesync.yml" for local tests
|
687
513
|
And a file named "config_defaults.yml" with:
|
688
514
|
"""
|
689
515
|
---
|
@@ -702,12 +528,15 @@ Feature: update
|
|
702
528
|
Files added:
|
703
529
|
test
|
704
530
|
"""
|
705
|
-
|
706
|
-
|
707
|
-
And
|
531
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain "aruba"
|
532
|
+
And a directory named "modules/fakenamespace/puppet-blacksmith" should not exist
|
533
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
708
534
|
|
709
535
|
Scenario: When specifying configurations in managed_modules.yml and using a negative filter
|
710
|
-
Given a
|
536
|
+
Given a mocked git configuration
|
537
|
+
And a puppet module "puppet-test" from "fakenamespace"
|
538
|
+
And a puppet module "puppet-blacksmith" from "fakenamespace"
|
539
|
+
And a file named "managed_modules.yml" with:
|
711
540
|
"""
|
712
541
|
---
|
713
542
|
puppet-blacksmith:
|
@@ -717,9 +546,9 @@ Feature: update
|
|
717
546
|
And a file named "modulesync.yml" with:
|
718
547
|
"""
|
719
548
|
---
|
720
|
-
|
721
|
-
git_base: https://github.com/
|
549
|
+
namespace: fakenamespace
|
722
550
|
"""
|
551
|
+
And a git_base option appended to "modulesync.yml" for local tests
|
723
552
|
And a file named "config_defaults.yml" with:
|
724
553
|
"""
|
725
554
|
---
|
@@ -738,21 +567,12 @@ Feature: update
|
|
738
567
|
Files added:
|
739
568
|
test
|
740
569
|
"""
|
741
|
-
|
742
|
-
|
743
|
-
And
|
570
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain "aruba"
|
571
|
+
And a directory named "modules/fakenamespace/puppet-blacksmith" should not exist
|
572
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
744
573
|
|
745
574
|
Scenario: Updating a module with a .sync.yml file
|
746
|
-
Given a
|
747
|
-
"""
|
748
|
-
---
|
749
|
-
- maestrodev/puppet-test
|
750
|
-
"""
|
751
|
-
And a file named "modulesync.yml" with:
|
752
|
-
"""
|
753
|
-
---
|
754
|
-
git_base: https://github.com/
|
755
|
-
"""
|
575
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
756
576
|
And a file named "config_defaults.yml" with:
|
757
577
|
"""
|
758
578
|
---
|
@@ -775,21 +595,7 @@ Feature: update
|
|
775
595
|
<%= @configs['global-to-overwrite'] %>
|
776
596
|
<%= @configs['module-default'] %>
|
777
597
|
"""
|
778
|
-
|
779
|
-
Given a file named "modules/maestrodev/puppet-test/.git/config" with:
|
780
|
-
"""
|
781
|
-
[core]
|
782
|
-
repositoryformatversion = 0
|
783
|
-
filemode = true
|
784
|
-
bare = false
|
785
|
-
logallrefupdates = true
|
786
|
-
ignorecase = true
|
787
|
-
precomposeunicode = true
|
788
|
-
[remote "origin"]
|
789
|
-
url = https://github.com/maestrodev/puppet-test.git
|
790
|
-
fetch = +refs/heads/*:refs/remotes/origin/*
|
791
|
-
"""
|
792
|
-
Given a file named "modules/maestrodev/puppet-test/.sync.yml" with:
|
598
|
+
And the puppet module "puppet-test" from "fakenamespace" has a file named ".sync.yml" with:
|
793
599
|
"""
|
794
600
|
---
|
795
601
|
:global:
|
@@ -802,18 +608,21 @@ Feature: update
|
|
802
608
|
Then the exit status should be 0
|
803
609
|
And the output should match:
|
804
610
|
"""
|
805
|
-
Not managing spec/spec_helper.rb in puppet-test
|
611
|
+
Not managing 'spec/spec_helper.rb' in 'puppet-test'
|
806
612
|
"""
|
807
|
-
|
808
|
-
Then the output should match:
|
613
|
+
And the file named "modules/fakenamespace/puppet-test/global-test.md" should contain:
|
809
614
|
"""
|
810
615
|
some-default
|
811
616
|
it-is-overwritten
|
812
617
|
some-value
|
813
618
|
"""
|
619
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
814
620
|
|
815
621
|
Scenario: Module with custom namespace
|
816
|
-
Given a
|
622
|
+
Given a mocked git configuration
|
623
|
+
And a puppet module "puppet-test" from "fakenamespace"
|
624
|
+
And a puppet module "puppet-lib-file_concat" from "electrical"
|
625
|
+
And a file named "managed_modules.yml" with:
|
817
626
|
"""
|
818
627
|
---
|
819
628
|
- puppet-test
|
@@ -822,9 +631,9 @@ Feature: update
|
|
822
631
|
And a file named "modulesync.yml" with:
|
823
632
|
"""
|
824
633
|
---
|
825
|
-
|
826
|
-
git_base: https://github.com/
|
634
|
+
namespace: fakenamespace
|
827
635
|
"""
|
636
|
+
And a git_base option appended to "modulesync.yml" for local tests
|
828
637
|
And a file named "config_defaults.yml" with:
|
829
638
|
"""
|
830
639
|
---
|
@@ -843,23 +652,13 @@ Feature: update
|
|
843
652
|
Files added:
|
844
653
|
test
|
845
654
|
"""
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
655
|
+
And the file named "modules/fakenamespace/puppet-test/.git/config" should match /^\s+url = .*fakenamespace.puppet-test$/
|
656
|
+
And the file named "modules/electrical/puppet-lib-file_concat/.git/config" should match /^\s+url = .*electrical.puppet-lib-file_concat$/
|
657
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
658
|
+
And the puppet module "puppet-lib-file_concat" from "electrical" should have no commits made by "Aruba"
|
850
659
|
|
851
660
|
Scenario: Modifying an existing file with values exposed by the module
|
852
|
-
Given a
|
853
|
-
"""
|
854
|
-
---
|
855
|
-
- puppet-test
|
856
|
-
"""
|
857
|
-
And a file named "modulesync.yml" with:
|
858
|
-
"""
|
859
|
-
---
|
860
|
-
namespace: maestrodev
|
861
|
-
git_base: https://github.com/
|
862
|
-
"""
|
661
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
863
662
|
And a file named "config_defaults.yml" with:
|
864
663
|
"""
|
865
664
|
---
|
@@ -868,7 +667,12 @@ Feature: update
|
|
868
667
|
And a directory named "moduleroot"
|
869
668
|
And a file named "moduleroot/README.md.erb" with:
|
870
669
|
"""
|
871
|
-
|
670
|
+
module: <%= @configs[:puppet_module] %>
|
671
|
+
namespace: <%= @configs[:namespace] %>
|
672
|
+
"""
|
673
|
+
And the puppet module "puppet-test" from "fakenamespace" has a file named "README.md" with:
|
674
|
+
"""
|
675
|
+
Hello world!
|
872
676
|
"""
|
873
677
|
When I run `msync update --noop`
|
874
678
|
Then the exit status should be 0
|
@@ -877,15 +681,15 @@ Feature: update
|
|
877
681
|
Files changed:
|
878
682
|
+diff --git a/README.md b/README.md
|
879
683
|
"""
|
880
|
-
|
881
|
-
Then the output should contain:
|
684
|
+
And the file named "modules/fakenamespace/puppet-test/README.md" should contain:
|
882
685
|
"""
|
883
|
-
|
686
|
+
module: puppet-test
|
687
|
+
namespace: fakenamespace
|
884
688
|
"""
|
689
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
885
690
|
|
886
691
|
Scenario: Running the same update twice and pushing to a remote branch
|
887
|
-
Given a
|
888
|
-
And a remote module repository
|
692
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
889
693
|
And a file named "config_defaults.yml" with:
|
890
694
|
"""
|
891
695
|
---
|
@@ -899,15 +703,41 @@ Feature: update
|
|
899
703
|
"""
|
900
704
|
When I run `msync update -m "Update Gemfile" -r test`
|
901
705
|
Then the exit status should be 0
|
706
|
+
And the puppet module "puppet-test" from "fakenamespace" should have only 1 commit made by "Aruba"
|
707
|
+
And the puppet module "puppet-test" from "fakenamespace" should have 1 commit made by "Aruba" in branch "test"
|
902
708
|
Given I remove the directory "modules"
|
903
709
|
When I run `msync update -m "Update Gemfile" -r test`
|
904
710
|
Then the exit status should be 0
|
905
711
|
Then the output should not contain "error"
|
906
712
|
Then the output should not contain "rejected"
|
713
|
+
And the puppet module "puppet-test" from "fakenamespace" should have only 1 commit made by "Aruba"
|
714
|
+
And the puppet module "puppet-test" from "fakenamespace" should have 1 commit made by "Aruba" in branch "test"
|
715
|
+
|
716
|
+
Scenario: Creating a GitHub PR with an update
|
717
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
718
|
+
And a directory named "moduleroot"
|
719
|
+
And I set the environment variables to:
|
720
|
+
| variable | value |
|
721
|
+
| GITHUB_TOKEN | foobar |
|
722
|
+
When I run `msync update --noop --branch managed_update --pr`
|
723
|
+
Then the output should contain "Would submit PR "
|
724
|
+
And the exit status should be 0
|
725
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
726
|
+
|
727
|
+
Scenario: Creating a GitLab MR with an update
|
728
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
729
|
+
And a directory named "moduleroot"
|
730
|
+
And I set the environment variables to:
|
731
|
+
| variable | value |
|
732
|
+
| GITLAB_TOKEN | foobar |
|
733
|
+
When I run `msync update --noop --branch managed_update --pr`
|
734
|
+
Then the output should contain "Would submit MR "
|
735
|
+
And the exit status should be 0
|
736
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|
907
737
|
|
908
738
|
Scenario: Repository with a default branch other than master
|
909
|
-
Given a
|
910
|
-
And
|
739
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
740
|
+
And the puppet module "puppet-test" from "fakenamespace" has the default branch named "develop"
|
911
741
|
And a file named "config_defaults.yml" with:
|
912
742
|
"""
|
913
743
|
---
|
@@ -921,24 +751,16 @@ Feature: update
|
|
921
751
|
"""
|
922
752
|
When I run `msync update -m "Update Gemfile"`
|
923
753
|
Then the exit status should be 0
|
924
|
-
|
754
|
+
And the output should contain "Using repository's default branch: develop"
|
755
|
+
And the puppet module "puppet-test" from "fakenamespace" should have only 1 commit made by "Aruba"
|
756
|
+
And the puppet module "puppet-test" from "fakenamespace" should have 1 commit made by "Aruba" in branch "develop"
|
925
757
|
|
926
|
-
Scenario: Adding a new file from a template using
|
758
|
+
Scenario: Adding a new file from a template using metadata
|
759
|
+
Given a basic setup with a puppet module "puppet-test" from "fakenamespace"
|
927
760
|
And a file named "config_defaults.yml" with:
|
928
761
|
"""
|
929
762
|
---
|
930
763
|
"""
|
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
764
|
And a directory named "moduleroot"
|
943
765
|
And a file named "moduleroot/test.erb" with:
|
944
766
|
"""
|
@@ -948,10 +770,10 @@ Feature: update
|
|
948
770
|
"""
|
949
771
|
When I run `msync update --noop`
|
950
772
|
Then the exit status should be 0
|
951
|
-
|
952
|
-
Then the output should contain:
|
773
|
+
And the file named "modules/fakenamespace/puppet-test/test" should contain:
|
953
774
|
"""
|
954
775
|
module: puppet-test
|
955
|
-
target: modules/
|
956
|
-
workdir: modules/
|
776
|
+
target: modules/fakenamespace/puppet-test/test
|
777
|
+
workdir: modules/fakenamespace/puppet-test
|
957
778
|
"""
|
779
|
+
And the puppet module "puppet-test" from "fakenamespace" should have no commits made by "Aruba"
|