r10k 3.14.2 → 3.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/docker.yml +5 -0
- data/.github/workflows/rspec_tests.yml +1 -0
- data/CHANGELOG.mkd +9 -0
- data/README.mkd +2 -2
- data/doc/dynamic-environments/configuration.mkd +13 -10
- data/doc/dynamic-environments/workflow-guide.mkd +3 -3
- data/doc/faq.mkd +1 -1
- data/docker/Makefile +17 -10
- data/integration/tests/git_source/HTTP_proxy_and_git_source.rb +1 -1
- data/integration/tests/git_source/git_source_repeated_remote.rb +2 -2
- data/integration/tests/purging/content_not_purged_at_root.rb +2 -2
- data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb +1 -1
- data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb +1 -1
- data/integration/tests/user_scenario/basic_workflow/multi_source_custom_forge_git_module.rb +1 -1
- data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module.rb +1 -1
- data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module_ref.rb +1 -1
- data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_git_module.rb +1 -1
- data/integration/tests/user_scenario/basic_workflow/single_env_switch_forge_git_module.rb +1 -1
- data/lib/r10k/environment/with_modules.rb +24 -1
- data/lib/r10k/git/rugged/thin_repository.rb +7 -0
- data/lib/r10k/git/rugged/working_repository.rb +7 -3
- data/lib/r10k/git/shellgit/thin_repository.rb +4 -0
- data/lib/r10k/git/shellgit/working_repository.rb +3 -2
- data/lib/r10k/git/stateful_repository.rb +4 -4
- data/lib/r10k/module/git.rb +1 -1
- data/lib/r10k/settings/container.rb +1 -0
- data/lib/r10k/version.rb +1 -1
- data/r10k.gemspec +4 -6
- data/spec/integration/git/stateful_repository_spec.rb +16 -0
- data/spec/unit/action/deploy/module_spec.rb +7 -7
- data/spec/unit/environment/git_spec.rb +2 -2
- data/spec/unit/environment/with_modules_spec.rb +47 -0
- data/spec/unit/git/alternates_spec.rb +28 -28
- data/spec/unit/git/cache_spec.rb +1 -1
- data/spec/unit/git/rugged/cache_spec.rb +2 -2
- data/spec/unit/git/shellgit/cache_spec.rb +1 -1
- data/spec/unit/git/stateful_repository_spec.rb +1 -1
- data/spec/unit/module/git_spec.rb +5 -5
- data/spec/unit/module_loader/puppetfile_spec.rb +1 -1
- data/spec/unit/util/cacheable_spec.rb +2 -2
- metadata +16 -11
- data/.travis.yml +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2085c3475000f081d4ff3ff19fd5f009080c9238c5e532449a24f306b2aa107
|
4
|
+
data.tar.gz: fb38a94d17d20cdd75aba6c5817cad33c77ed408307f32aa54bc4f65dabba022
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6de1e925f24ec5edf168c5a4d177030be2d351493ab65274998bbd02b67fa84910d3a28d800bdd03d255e4fb0cceeac1b8d09a615cb181986ee22bd4e155e0fb
|
7
|
+
data.tar.gz: f4294cd171f9665c70d9573ad082003e5cd272aa42b2f949c41bc6874399c92010e1065140544770807444e8cf60b52d0733add89cfbd0b4839381c918932004
|
@@ -27,6 +27,11 @@ jobs:
|
|
27
27
|
with:
|
28
28
|
ruby-version: 2.6.x
|
29
29
|
- run: gem install bundler
|
30
|
+
- uses: actions/checkout@v2
|
31
|
+
- name: Set up QEMU
|
32
|
+
uses: docker/setup-qemu-action@v1
|
33
|
+
- name: Set up Docker Buildx
|
34
|
+
uses: docker/setup-buildx-action@v1
|
30
35
|
- name: Build container
|
31
36
|
working-directory: docker
|
32
37
|
run: |
|
data/CHANGELOG.mkd
CHANGED
@@ -4,6 +4,15 @@ CHANGELOG
|
|
4
4
|
Unreleased
|
5
5
|
----------
|
6
6
|
|
7
|
+
3.15.0
|
8
|
+
------
|
9
|
+
|
10
|
+
- Support and test Ruby 3
|
11
|
+
- Allow puppet_forge 3.x & newer versions of fast_gettext/gettext [#1302](https://github.com/puppetlabs/r10k/pull/1302)
|
12
|
+
- Allow newer cri versions [#1302](https://github.com/puppetlabs/r10k/pull/1302)
|
13
|
+
- Fix error when using install_path from environment module [#1288](https://github.com/puppetlabs/r10k/issues/1288)
|
14
|
+
- (RK-399) Do not warn about local modifications in the spec directory when `exclude_spec` is set [#1291](https://github.com/puppetlabs/r10k/pull/1291)
|
15
|
+
|
7
16
|
3.14.2
|
8
17
|
------
|
9
18
|
|
data/README.mkd
CHANGED
@@ -18,7 +18,7 @@ Requirements
|
|
18
18
|
------------
|
19
19
|
|
20
20
|
R10k supports the Ruby versions `>= 2.4.0`. It's tested on Ruby 2.4.0 up to
|
21
|
-
Ruby
|
21
|
+
Ruby 3.1.0 + Jruby.
|
22
22
|
|
23
23
|
R10k requires additional components, depending on how you plan on managing
|
24
24
|
environments and modules.
|
@@ -61,7 +61,7 @@ for installation.
|
|
61
61
|
If you have more specific needs or plan on modifying r10k you can run it out of
|
62
62
|
a git repository using Bundler for dependencies:
|
63
63
|
|
64
|
-
git clone
|
64
|
+
git clone https://github.com/puppetlabs/r10k
|
65
65
|
cd r10k
|
66
66
|
bundle install
|
67
67
|
bundle exec r10k help
|
@@ -398,13 +398,16 @@ specific documentation for more information.
|
|
398
398
|
The 'remote' setting specifies where the source repository should be fetched
|
399
399
|
from. It may be any valid URL that the source may check out or clone. The remote
|
400
400
|
must be able to be fetched without any interactive input, eg usernames or
|
401
|
-
passwords cannot be prompted for in order to fetch the remote.
|
401
|
+
passwords cannot be prompted for in order to fetch the remote. We support the
|
402
|
+
`git`, `ssh`, and `https` transport protocols. An SSH private key or access
|
403
|
+
token must be provided for authentication. Only `https` may be used without
|
404
|
+
authentication. See [GitHub's blog on protocol security](https://github.blog/2021-09-01-improving-git-protocol-security-github/) for more info.
|
402
405
|
|
403
406
|
```yaml
|
404
407
|
---
|
405
408
|
sources:
|
406
409
|
mysource:
|
407
|
-
remote: '
|
410
|
+
remote: 'https://git-server.site/my-org/main-modules'
|
408
411
|
```
|
409
412
|
|
410
413
|
### basedir
|
@@ -522,7 +525,7 @@ hiera data files are kept. In this case you will specify a single source:
|
|
522
525
|
---
|
523
526
|
sources:
|
524
527
|
operations:
|
525
|
-
remote: '
|
528
|
+
remote: 'https://git-server.site/my-org/org-modules'
|
526
529
|
basedir: '/etc/puppet/environments'
|
527
530
|
```
|
528
531
|
|
@@ -535,10 +538,10 @@ repository and your modules in another repository, you can specify two sources:
|
|
535
538
|
---
|
536
539
|
sources:
|
537
540
|
operations:
|
538
|
-
remote: '
|
541
|
+
remote: 'https://git-server.site/my-org/org-modules'
|
539
542
|
basedir: '/etc/puppet/environments'
|
540
543
|
hiera:
|
541
|
-
remote: '
|
544
|
+
remote: 'https://git-server.site/my-org/org-hiera-data'
|
542
545
|
basedir: '/etc/puppet/hiera-data'
|
543
546
|
```
|
544
547
|
|
@@ -553,15 +556,15 @@ not the modules of other groups.
|
|
553
556
|
---
|
554
557
|
sources:
|
555
558
|
main:
|
556
|
-
remote: '
|
559
|
+
remote: 'https://git-server.site/my-org/main-modules'
|
557
560
|
basedir: '/etc/puppet/environments'
|
558
561
|
prefix: false # Prefix defaults to false so this is only here for clarity
|
559
562
|
qa:
|
560
|
-
remote: '
|
563
|
+
remote: 'https://git-server.site/my-org/qa-puppet-modules'
|
561
564
|
basedir: '/etc/puppet/environments'
|
562
565
|
prefix: true
|
563
566
|
dev:
|
564
|
-
remote: '
|
567
|
+
remote: 'https://git-server.site/my-org/dev-puppet-modules'
|
565
568
|
basedir: '/etc/puppet/environments'
|
566
569
|
prefix: true
|
567
570
|
```
|
@@ -587,11 +590,11 @@ must override the `prefix` so environment folders line up in both directories:
|
|
587
590
|
---
|
588
591
|
sources:
|
589
592
|
app1_data:
|
590
|
-
remote: '
|
593
|
+
remote: 'https://git-server.site/my-org/app1-hieradata'
|
591
594
|
basedir: '/etc/puppet/hieradata'
|
592
595
|
prefix: "app1"
|
593
596
|
app1_modules:
|
594
|
-
remote: '
|
597
|
+
remote: 'https://git-server.site/my-org/app1-puppet-modules'
|
595
598
|
basedir: '/etc/puppet/environments'
|
596
599
|
prefix: "app1"
|
597
600
|
```
|
@@ -38,7 +38,7 @@ mod "puppetlabs/ntp"
|
|
38
38
|
|
39
39
|
# Your modules:
|
40
40
|
mod "custom_facts",
|
41
|
-
:git => "
|
41
|
+
:git => "https://github.com/user/custom_facts"
|
42
42
|
```
|
43
43
|
|
44
44
|
For any existing modules that you branched, add a reference to the new branch
|
@@ -46,7 +46,7 @@ name. Don't forget the comma at the end of the *:git* value.
|
|
46
46
|
|
47
47
|
```
|
48
48
|
mod "other_module",
|
49
|
-
:git => "
|
49
|
+
:git => "https://github.com/user/other_module",
|
50
50
|
:ref => "feature"
|
51
51
|
```
|
52
52
|
|
@@ -159,7 +159,7 @@ the *:git* value.
|
|
159
159
|
|
160
160
|
```
|
161
161
|
mod "other_module",
|
162
|
-
:git => "
|
162
|
+
:git => "https://github.com/user/other_module",
|
163
163
|
:ref => "feature"
|
164
164
|
```
|
165
165
|
|
data/doc/faq.mkd
CHANGED
data/docker/Makefile
CHANGED
@@ -7,6 +7,10 @@ hadolint_available := $(shell hadolint --help > /dev/null 2>&1; echo $$?)
|
|
7
7
|
hadolint_command := hadolint
|
8
8
|
hadolint_container := ghcr.io/hadolint/hadolint:latest
|
9
9
|
alpine_version := 3.14
|
10
|
+
# --load (--output=type=docker) can only be used with a single arch / platform
|
11
|
+
# https://github.com/docker/buildx/issues/59
|
12
|
+
output_type := docker
|
13
|
+
platform := linux/amd64
|
10
14
|
export BUNDLE_PATH = $(PWD)/.bundle/gems
|
11
15
|
export BUNDLE_BIN = $(PWD)/.bundle/bin
|
12
16
|
export GEMFILE = $(PWD)/Gemfile
|
@@ -32,6 +36,10 @@ else
|
|
32
36
|
dockerfile_context := $(PWD)/..
|
33
37
|
endif
|
34
38
|
|
39
|
+
ifeq ($(IS_LATEST),true)
|
40
|
+
latest_tag := --tag $(NAMESPACE)/r10k:$(LATEST_VERSION)
|
41
|
+
endif
|
42
|
+
|
35
43
|
prep:
|
36
44
|
@git fetch --unshallow 2> /dev/null ||:
|
37
45
|
@git fetch origin 'refs/tags/*:refs/tags/*'
|
@@ -52,17 +60,15 @@ build: prep
|
|
52
60
|
docker pull alpine:$(alpine_version)
|
53
61
|
docker buildx build \
|
54
62
|
${DOCKER_BUILD_FLAGS} \
|
55
|
-
--
|
63
|
+
--output=type=$(output_type) \
|
64
|
+
--platform $(platform) \
|
56
65
|
--build-arg alpine_version=$(alpine_version) \
|
57
66
|
--build-arg vcs_ref=$(vcs_ref) \
|
58
67
|
--build-arg build_date=$(build_date) \
|
59
68
|
--build-arg version=$(VERSION) \
|
60
69
|
--build-arg pupperware_analytics_stream=$(PUPPERWARE_ANALYTICS_STREAM) \
|
61
70
|
--file r10k/$(dockerfile) \
|
62
|
-
--tag $(NAMESPACE)/r10k:$(VERSION) $(dockerfile_context)
|
63
|
-
ifeq ($(IS_LATEST),true)
|
64
|
-
@docker tag $(NAMESPACE)/r10k:$(VERSION) puppet/r10k:$(LATEST_VERSION)
|
65
|
-
endif
|
71
|
+
--tag $(NAMESPACE)/r10k:$(VERSION) $(latest_tag) $(dockerfile_context)
|
66
72
|
|
67
73
|
test: prep
|
68
74
|
@bundle install --path $$BUNDLE_PATH --gemfile $$GEMFILE --with test
|
@@ -71,11 +77,12 @@ test: prep
|
|
71
77
|
bundle exec --gemfile $$GEMFILE \
|
72
78
|
rspec spec
|
73
79
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
80
|
+
# call build to produce multiple architectures
|
81
|
+
# uses cached output from amd64 build target if it exists
|
82
|
+
# registry output is equivalent to --push
|
83
|
+
push-image: platform=linux/amd64,linux/arm64
|
84
|
+
push-image: output_type=registry
|
85
|
+
push-image: prep build
|
79
86
|
|
80
87
|
push-readme:
|
81
88
|
@docker pull sheogorath/readme-to-dockerhub
|
@@ -16,7 +16,7 @@ r10k_config_bak_path = "#{r10k_config_path}.bak"
|
|
16
16
|
|
17
17
|
puppetfile =<<-EOS
|
18
18
|
mod 'motd',
|
19
|
-
:git => '
|
19
|
+
:git => 'https://github.com/puppetlabs/puppetlabs-motd'
|
20
20
|
EOS
|
21
21
|
|
22
22
|
proxy_env_value = 'http://cattastic.net:3219'
|
@@ -29,11 +29,11 @@ CONF
|
|
29
29
|
# Install the same module in two different places
|
30
30
|
puppetfile = <<-EOS
|
31
31
|
mod 'prod_apache',
|
32
|
-
:git => '
|
32
|
+
:git => 'https://github.com/puppetlabs/puppetlabs-apache.git',
|
33
33
|
:tag => 'v6.0.0'
|
34
34
|
|
35
35
|
mod 'test_apache',
|
36
|
-
:git => '
|
36
|
+
:git => 'https://github.com/puppetlabs/puppetlabs-apache.git',
|
37
37
|
:tag => 'v6.0.0'
|
38
38
|
EOS
|
39
39
|
|
@@ -30,12 +30,12 @@ CONF
|
|
30
30
|
puppetfile = <<-EOS
|
31
31
|
mod 'non_module_object_1',
|
32
32
|
:install_path => './',
|
33
|
-
:git => '
|
33
|
+
:git => 'https://github.com/puppetlabs/control-repo.git',
|
34
34
|
:branch => 'production'
|
35
35
|
|
36
36
|
mod 'non_module_object_2',
|
37
37
|
:install_path => '',
|
38
|
-
:git => '
|
38
|
+
:git => 'https://github.com/puppetlabs/control-repo.git',
|
39
39
|
:branch => 'production'
|
40
40
|
EOS
|
41
41
|
|
@@ -27,7 +27,7 @@ stdlib_notify_message_regex = /The test message is:.*one.*=>.*1.*two.*=>.*bats.*
|
|
27
27
|
puppet_file = <<-PUPPETFILE
|
28
28
|
mod "puppetlabs/motd"
|
29
29
|
mod 'puppetlabs/stdlib',
|
30
|
-
:git => '
|
30
|
+
:git => 'https://github.com/puppetlabs/puppetlabs-stdlib.git',
|
31
31
|
:tag => 'v7.0.1'
|
32
32
|
PUPPETFILE
|
33
33
|
|
data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb
CHANGED
@@ -31,7 +31,7 @@ puppet_file = <<-PUPPETFILE
|
|
31
31
|
moduledir '#{@module_path}'
|
32
32
|
mod "puppetlabs/motd"
|
33
33
|
mod 'puppetlabs/stdlib',
|
34
|
-
:git => '
|
34
|
+
:git => 'https://github.com/puppetlabs/puppetlabs-stdlib.git',
|
35
35
|
:tag => 'v7.0.1'
|
36
36
|
PUPPETFILE
|
37
37
|
|
@@ -65,7 +65,7 @@ env_structs = {:production => GitEnv.new('/git_repos',
|
|
65
65
|
'/git_repos_alt/environments_alt.git',
|
66
66
|
'/root/environments_alt',
|
67
67
|
'/root/environments_alt/Puppetfile',
|
68
|
-
'mod "puppetlabs/stdlib", :git => "
|
68
|
+
'mod "puppetlabs/stdlib", :git => "https://github.com/puppetlabs/puppetlabs-stdlib.git", :tag => "v7.0.1"',
|
69
69
|
'/root/environments_alt/manifests/site.pp',
|
70
70
|
create_site_pp(master_certname, stage_env_manifest)
|
71
71
|
),
|
@@ -15,7 +15,7 @@ r10k_fqp = get_r10k_fqp(master)
|
|
15
15
|
|
16
16
|
#File
|
17
17
|
puppet_file = <<-PUPPETFILE
|
18
|
-
mod 'broken', :git => '
|
18
|
+
mod 'broken', :git => 'https://github.com/puppetlabs/puppetlabs-broken'
|
19
19
|
PUPPETFILE
|
20
20
|
|
21
21
|
puppet_file_path = File.join(git_environments_path, 'Puppetfile')
|
@@ -28,7 +28,7 @@ notify_message_regex = /I am in the production environment/
|
|
28
28
|
puppet_file = <<-PUPPETFILE
|
29
29
|
mod "puppetlabs/motd"
|
30
30
|
mod 'puppetlabs/inifile',
|
31
|
-
:git => '
|
31
|
+
:git => 'https://github.com/puppetlabs/puppetlabs-inifile',
|
32
32
|
:tag => 'v5.0.1'
|
33
33
|
PUPPETFILE
|
34
34
|
|
@@ -103,6 +103,29 @@ class R10K::Environment::WithModules < R10K::Environment::Base
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
|
+
def resolve_path(base, dirname, path)
|
107
|
+
if Pathname.new(path).absolute?
|
108
|
+
cleanpath(path)
|
109
|
+
else
|
110
|
+
cleanpath(File.join(base, dirname, path))
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# .cleanpath is as good as we can do without touching the filesystem.
|
115
|
+
# The .realpath methods will choke if some of the intermediate paths
|
116
|
+
# are missing, even though in some cases we will create them later as
|
117
|
+
# needed.
|
118
|
+
def cleanpath(path)
|
119
|
+
Pathname.new(path).cleanpath.to_s
|
120
|
+
end
|
121
|
+
|
122
|
+
def validate_install_path(path, modname)
|
123
|
+
unless /^#{Regexp.escape(@basedir)}.*/ =~ path
|
124
|
+
raise R10K::Error.new("Environment cannot manage content '#{modname}' outside of containing environment: #{path} is not within #{@basedir}")
|
125
|
+
end
|
126
|
+
true
|
127
|
+
end
|
128
|
+
|
106
129
|
# @param [String] name
|
107
130
|
# @param [Hash] args
|
108
131
|
def add_module(name, args)
|
@@ -111,7 +134,7 @@ class R10K::Environment::WithModules < R10K::Environment::Base
|
|
111
134
|
args[:overrides] = @overrides
|
112
135
|
|
113
136
|
if install_path = args.delete(:install_path)
|
114
|
-
install_path =
|
137
|
+
install_path = resolve_path(@basedir, @dirname, install_path)
|
115
138
|
validate_install_path(install_path, name)
|
116
139
|
else
|
117
140
|
install_path = @moduledir
|
@@ -75,6 +75,13 @@ class R10K::Git::Rugged::ThinRepository < R10K::Git::Rugged::WorkingRepository
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
+
def stage_files(files=['.'])
|
79
|
+
with_repo do |repo|
|
80
|
+
index = repo.index
|
81
|
+
files.each { |p| index.add( :path => p ) }
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
78
85
|
private
|
79
86
|
|
80
87
|
# Override the parent class repo setup so that we can make sure the alternates file is up to date
|
@@ -117,11 +117,15 @@ class R10K::Git::Rugged::WorkingRepository < R10K::Git::Rugged::BaseRepository
|
|
117
117
|
with_repo { |repo| repo.config['remote.origin.url'] }
|
118
118
|
end
|
119
119
|
|
120
|
-
def dirty?
|
120
|
+
def dirty?(exclude_spec=false)
|
121
121
|
with_repo do |repo|
|
122
|
-
|
122
|
+
if exclude_spec
|
123
|
+
diff = repo.diff_workdir('HEAD').select { |d| ! d.delta.old_file[:path].start_with?('spec/') }
|
124
|
+
else
|
125
|
+
diff = repo.diff_workdir('HEAD').to_a
|
126
|
+
end
|
123
127
|
|
124
|
-
diff.
|
128
|
+
diff.each do |p|
|
125
129
|
logger.debug(_("Found local modifications in %{file_path}" % {file_path: File.join(@path, p.delta.old_file[:path])}))
|
126
130
|
logger.debug1(p.to_s)
|
127
131
|
end
|
@@ -43,6 +43,10 @@ class R10K::Git::ShellGit::ThinRepository < R10K::Git::ShellGit::WorkingReposito
|
|
43
43
|
git(['ls-tree', '-t', '-r', '--name-only', ref], :path => @path.to_s).stdout.split("\n")
|
44
44
|
end
|
45
45
|
|
46
|
+
def stage_files(files=['.'])
|
47
|
+
git(['add', files].flatten, :path => @path.to_s)
|
48
|
+
end
|
49
|
+
|
46
50
|
private
|
47
51
|
|
48
52
|
def setup_cache_remote
|
@@ -90,11 +90,12 @@ class R10K::Git::ShellGit::WorkingRepository < R10K::Git::ShellGit::BaseReposito
|
|
90
90
|
end
|
91
91
|
|
92
92
|
# does the working tree have local modifications to tracked files?
|
93
|
-
def dirty?
|
93
|
+
def dirty?(exclude_spec=false)
|
94
94
|
result = git(['diff-index', '--exit-code', '--name-only', 'HEAD'], :path => @path.to_s, :raise_on_fail => false)
|
95
95
|
|
96
96
|
if result.exit_code != 0
|
97
97
|
dirty_files = result.stdout.split('\n')
|
98
|
+
dirty_files.delete_if { |f| f.start_with?('spec/') } if exclude_spec
|
98
99
|
|
99
100
|
dirty_files.each do |file|
|
100
101
|
logger.debug(_("Found local modifications in %{file_path}" % {file_path: File.join(@path, file)}))
|
@@ -103,7 +104,7 @@ class R10K::Git::ShellGit::WorkingRepository < R10K::Git::ShellGit::BaseReposito
|
|
103
104
|
logger.debug1 { git(['diff-index', '-p', 'HEAD', file], :path => @path.to_s, :raise_on_fail => false).stdout }
|
104
105
|
end
|
105
106
|
|
106
|
-
return
|
107
|
+
return dirty_files.size > 0
|
107
108
|
else
|
108
109
|
return false
|
109
110
|
end
|
@@ -36,7 +36,7 @@ class R10K::Git::StatefulRepository
|
|
36
36
|
end
|
37
37
|
|
38
38
|
# Returns true if the sync actually updated the repo, false otherwise
|
39
|
-
def sync(ref, force=true)
|
39
|
+
def sync(ref, force=true, exclude_spec=false)
|
40
40
|
@cache.sync if sync_cache?(ref)
|
41
41
|
|
42
42
|
sha = @cache.resolve(ref)
|
@@ -45,7 +45,7 @@ class R10K::Git::StatefulRepository
|
|
45
45
|
raise R10K::Git::UnresolvableRefError.new(_("Unable to sync repo to unresolvable ref '%{ref}'") % {ref: ref}, :git_dir => @repo.git_dir)
|
46
46
|
end
|
47
47
|
|
48
|
-
workdir_status = status(ref)
|
48
|
+
workdir_status = status(ref, exclude_spec)
|
49
49
|
|
50
50
|
updated = true
|
51
51
|
case workdir_status
|
@@ -75,7 +75,7 @@ class R10K::Git::StatefulRepository
|
|
75
75
|
updated
|
76
76
|
end
|
77
77
|
|
78
|
-
def status(ref)
|
78
|
+
def status(ref, exclude_spec=false)
|
79
79
|
if !@repo.exist?
|
80
80
|
:absent
|
81
81
|
elsif !@cache.exist?
|
@@ -88,7 +88,7 @@ class R10K::Git::StatefulRepository
|
|
88
88
|
:mismatched
|
89
89
|
elsif @repo.head.nil?
|
90
90
|
:mismatched
|
91
|
-
elsif @repo.dirty?
|
91
|
+
elsif @repo.dirty?(exclude_spec)
|
92
92
|
:dirty
|
93
93
|
elsif !(@repo.head == @cache.resolve(ref))
|
94
94
|
:outdated
|
data/lib/r10k/module/git.rb
CHANGED
@@ -100,7 +100,7 @@ class R10K::Module::Git < R10K::Module::Base
|
|
100
100
|
def sync(opts={})
|
101
101
|
force = opts[:force] || @force
|
102
102
|
if should_sync?
|
103
|
-
updated = @repo.sync(version, force)
|
103
|
+
updated = @repo.sync(version, force, @exclude_spec)
|
104
104
|
else
|
105
105
|
updated = false
|
106
106
|
end
|
data/lib/r10k/version.rb
CHANGED
@@ -2,5 +2,5 @@ module R10K
|
|
2
2
|
# When updating to a new major (X) or minor (Y) version, include `#major` or
|
3
3
|
# `#minor` (respectively) in your commit message to trigger the appropriate
|
4
4
|
# release. Otherwise, a new patch (Z) version will be released.
|
5
|
-
VERSION = '3.
|
5
|
+
VERSION = '3.15.0'
|
6
6
|
end
|
data/r10k.gemspec
CHANGED
@@ -23,18 +23,16 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.license = 'Apache-2.0'
|
24
24
|
|
25
25
|
s.add_dependency 'colored2', '3.1.2'
|
26
|
-
s.add_dependency 'cri', '2.15.10'
|
26
|
+
s.add_dependency 'cri', '>= 2.15.10'
|
27
27
|
|
28
28
|
s.add_dependency 'log4r', '1.1.10'
|
29
29
|
s.add_dependency 'multi_json', '~> 1.10'
|
30
30
|
|
31
|
-
s.add_dependency 'puppet_forge', '
|
31
|
+
s.add_dependency 'puppet_forge', '>= 2.3.0'
|
32
32
|
|
33
33
|
s.add_dependency 'gettext-setup', '~>0.24'
|
34
|
-
|
35
|
-
|
36
|
-
s.add_dependency 'fast_gettext', '~> 1.1.0'
|
37
|
-
s.add_dependency 'gettext', ['>= 3.0.2', '< 3.3.0']
|
34
|
+
s.add_dependency 'fast_gettext', ['>= 1.1.0', '< 3.0.0']
|
35
|
+
s.add_dependency 'gettext', ['>= 3.0.2', '< 4.0.0']
|
38
36
|
|
39
37
|
s.add_dependency 'jwt', '~> 2.2.3'
|
40
38
|
s.add_dependency 'minitar', '~> 0.9'
|
@@ -83,6 +83,22 @@ describe R10K::Git::StatefulRepository do
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
+
describe "when the workdir has spec dir modifications" do
|
87
|
+
before(:each) do
|
88
|
+
thinrepo.clone(remote, {:ref => ref})
|
89
|
+
FileUtils.mkdir_p(File.join(thinrepo.path, 'spec'))
|
90
|
+
File.open(File.join(thinrepo.path, 'spec', 'file_spec.rb'), 'a') { |f| f.write('local modifications!') }
|
91
|
+
thinrepo.stage_files(['spec/file_spec.rb'])
|
92
|
+
end
|
93
|
+
it "is dirty with exclude_spec false" do
|
94
|
+
expect(subject.status(ref, false)).to eq :dirty
|
95
|
+
end
|
96
|
+
|
97
|
+
it "is insync with exclude_spec true" do
|
98
|
+
expect(subject.status(ref, true)).to eq :insync
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
86
102
|
describe "if the right ref is checked out" do
|
87
103
|
it "is insync" do
|
88
104
|
thinrepo.clone(remote, {:ref => ref})
|
@@ -231,7 +231,7 @@ describe R10K::Action::Deploy::Module do
|
|
231
231
|
original.call(settings.merge({
|
232
232
|
sources: {
|
233
233
|
main: {
|
234
|
-
remote: '
|
234
|
+
remote: 'https://not/a/remote',
|
235
235
|
basedir: '/not/a/basedir',
|
236
236
|
type: 'git'
|
237
237
|
}
|
@@ -253,9 +253,9 @@ describe R10K::Action::Deploy::Module do
|
|
253
253
|
loader = environment.loader
|
254
254
|
allow(loader).to receive(:puppetfile_content).and_return('')
|
255
255
|
expect(loader).to receive(:load) do
|
256
|
-
loader.add_module('mod1', { git: '
|
257
|
-
loader.add_module('mod2', { git: '
|
258
|
-
loader.add_module('mod3', { git: '
|
256
|
+
loader.add_module('mod1', { git: 'https://remote' })
|
257
|
+
loader.add_module('mod2', { git: 'https://remote' })
|
258
|
+
loader.add_module('mod3', { git: 'https://remote' })
|
259
259
|
|
260
260
|
loaded_content = loader.load!
|
261
261
|
loaded_content[:modules].each do |mod|
|
@@ -290,7 +290,7 @@ describe R10K::Action::Deploy::Module do
|
|
290
290
|
original.call(settings.merge({
|
291
291
|
sources: {
|
292
292
|
main: {
|
293
|
-
remote: '
|
293
|
+
remote: 'https://not/a/remote',
|
294
294
|
basedir: '/not/a/basedir',
|
295
295
|
type: 'git'
|
296
296
|
}
|
@@ -315,8 +315,8 @@ describe R10K::Action::Deploy::Module do
|
|
315
315
|
# it so it will create the correct loaded_content.
|
316
316
|
allow(loader).to receive(:puppetfile_content).and_return('')
|
317
317
|
expect(loader).to receive(:load) do
|
318
|
-
loader.add_module('mod1', { git: '
|
319
|
-
loader.add_module('mod2', { git: '
|
318
|
+
loader.add_module('mod1', { git: 'https://remote' })
|
319
|
+
loader.add_module('mod2', { git: 'https://remote' })
|
320
320
|
|
321
321
|
loaded_content = loader.load!
|
322
322
|
loaded_content[:modules].each do |mod|
|
@@ -9,7 +9,7 @@ describe R10K::Environment::Git do
|
|
9
9
|
'/some/nonexistent/environmentdir',
|
10
10
|
'gitref',
|
11
11
|
{
|
12
|
-
:remote => '
|
12
|
+
:remote => 'https://git-server.site/my-repo.git',
|
13
13
|
:ref => 'd026ea677116424d2968edb9cee8cbc24d09322b',
|
14
14
|
}
|
15
15
|
)
|
@@ -45,7 +45,7 @@ describe R10K::Environment::Git do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
it "can return the environment remote" do
|
48
|
-
expect(subject.remote).to eq '
|
48
|
+
expect(subject.remote).to eq 'https://git-server.site/my-repo.git'
|
49
49
|
end
|
50
50
|
|
51
51
|
it "can return the environment ref" do
|
@@ -72,4 +72,51 @@ describe R10K::Environment::WithModules do
|
|
72
72
|
expect(returned_modules.map(&:name).sort).to eq(%w[concat exec stdlib zebra])
|
73
73
|
end
|
74
74
|
end
|
75
|
+
|
76
|
+
describe "module options" do
|
77
|
+
let(:subject_params) {{
|
78
|
+
:modules => {
|
79
|
+
'hieradata' => {
|
80
|
+
:type => 'git',
|
81
|
+
:source => 'git@git.example.com:site_data.git',
|
82
|
+
:install_path => ''
|
83
|
+
},
|
84
|
+
'site_data_2' => {
|
85
|
+
:type => 'git',
|
86
|
+
:source => 'git@git.example.com:site_data.git',
|
87
|
+
:install_path => 'subdir'
|
88
|
+
},
|
89
|
+
|
90
|
+
}
|
91
|
+
}}
|
92
|
+
|
93
|
+
it "should support empty install_path" do
|
94
|
+
modules = subject.modules
|
95
|
+
expect(modules[0].title).to eq 'hieradata'
|
96
|
+
expect(modules[0].path).to eq Pathname.new('/some/nonexistent/environmentdir/prefix_release42/hieradata')
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should support install_path" do
|
101
|
+
modules = subject.modules
|
102
|
+
expect(modules[1].title).to eq 'site_data_2'
|
103
|
+
expect(modules[1].path).to eq Pathname.new('/some/nonexistent/environmentdir/prefix_release42/subdir/site_data_2')
|
104
|
+
end
|
105
|
+
|
106
|
+
context "with invalid configuration" do
|
107
|
+
let(:subject_params) {{
|
108
|
+
:modules => {
|
109
|
+
'site_data_2' => {
|
110
|
+
:type => 'git',
|
111
|
+
:source => 'git@git.example.com:site_data.git',
|
112
|
+
:install_path => '/absolute_path_outside_of_containing_environment'
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}}
|
116
|
+
|
117
|
+
it "raises an error" do
|
118
|
+
expect{ subject.modules }.to raise_error(R10K::Error, /Environment cannot.*outside of containing environment.*/i)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
75
122
|
end
|
@@ -13,13 +13,13 @@ describe R10K::Git::Alternates do
|
|
13
13
|
it "reads the alternates file and splits on lines" do
|
14
14
|
expect(subject.file).to receive(:file?).and_return true
|
15
15
|
expect(subject.file).to receive(:readlines).and_return([
|
16
|
-
"/var/cache/r10k/git/
|
17
|
-
"/vagrant/.r10k/git/
|
16
|
+
"/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git\n",
|
17
|
+
"/vagrant/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git\n",
|
18
18
|
])
|
19
19
|
|
20
20
|
expect(subject.read).to eq([
|
21
|
-
"/var/cache/r10k/git/
|
22
|
-
"/vagrant/.r10k/git/
|
21
|
+
"/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
22
|
+
"/vagrant/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
23
23
|
])
|
24
24
|
end
|
25
25
|
|
@@ -33,17 +33,17 @@ describe R10K::Git::Alternates do
|
|
33
33
|
describe "determining if an entry is already present" do
|
34
34
|
before do
|
35
35
|
allow(subject).to receive(:to_a).and_return([
|
36
|
-
"/var/cache/r10k/git/
|
37
|
-
"/vagrant/.r10k/git/
|
36
|
+
"/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
37
|
+
"/vagrant/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
38
38
|
])
|
39
39
|
end
|
40
40
|
|
41
41
|
it "is true if the element is in the array of read entries" do
|
42
|
-
expect(subject).to include("/vagrant/.r10k/git/
|
42
|
+
expect(subject).to include("/vagrant/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git")
|
43
43
|
end
|
44
44
|
|
45
45
|
it "is false if the element is not in the array of read entries" do
|
46
|
-
expect(subject).to_not include("/tmp/.r10k/git/
|
46
|
+
expect(subject).to_not include("/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git")
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -52,7 +52,7 @@ describe R10K::Git::Alternates do
|
|
52
52
|
describe "and the git objects/info directory does not exist" do
|
53
53
|
it "raises an error when the parent directory does not exist" do
|
54
54
|
expect {
|
55
|
-
subject.write(["/tmp/.r10k/git/
|
55
|
+
subject.write(["/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git"])
|
56
56
|
}.to raise_error(R10K::Git::GitError,"Cannot write /some/nonexistent/path/.git/objects/info/alternates; parent directory does not exist")
|
57
57
|
end
|
58
58
|
end
|
@@ -66,51 +66,51 @@ describe R10K::Git::Alternates do
|
|
66
66
|
end
|
67
67
|
|
68
68
|
it "creates the alternates file with the new entry when not present" do
|
69
|
-
subject.write(["/tmp/.r10k/git/
|
70
|
-
expect(io.string).to eq("/tmp/.r10k/git/
|
69
|
+
subject.write(["/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git"])
|
70
|
+
expect(io.string).to eq("/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git\n")
|
71
71
|
end
|
72
72
|
|
73
73
|
it "rewrites the file with all alternate entries" do
|
74
|
-
subject.write(["/var/cache/r10k/git/
|
75
|
-
"/vagrant/.r10k/git/
|
76
|
-
"/tmp/.r10k/git/
|
74
|
+
subject.write(["/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
75
|
+
"/vagrant/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
76
|
+
"/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git"])
|
77
77
|
|
78
78
|
expect(io.string).to eq(<<-EOD)
|
79
|
-
/var/cache/r10k/git/
|
80
|
-
/vagrant/.r10k/git/
|
81
|
-
/tmp/.r10k/git/
|
79
|
+
/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git
|
80
|
+
/vagrant/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git
|
81
|
+
/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git
|
82
82
|
EOD
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
86
|
describe "appending a new alternate object entry" do
|
87
87
|
it "re-writes the file with the new entry concatenated to the file" do
|
88
|
-
expect(subject).to receive(:to_a).and_return(["/var/cache/r10k/git/
|
89
|
-
"/vagrant/.r10k/git/
|
88
|
+
expect(subject).to receive(:to_a).and_return(["/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
89
|
+
"/vagrant/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git"])
|
90
90
|
|
91
|
-
expect(subject).to receive(:write).with(["/var/cache/r10k/git/
|
92
|
-
"/vagrant/.r10k/git/
|
93
|
-
"/tmp/.r10k/git/
|
91
|
+
expect(subject).to receive(:write).with(["/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
92
|
+
"/vagrant/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
93
|
+
"/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git"])
|
94
94
|
|
95
|
-
subject.add("/tmp/.r10k/git/
|
95
|
+
subject.add("/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git")
|
96
96
|
end
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
100
100
|
describe "conditionally appending a new alternate object entry" do
|
101
101
|
before do
|
102
|
-
expect(subject).to receive(:read).and_return(%w[/var/cache/r10k/git/
|
102
|
+
expect(subject).to receive(:read).and_return(%w[/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git])
|
103
103
|
end
|
104
104
|
|
105
105
|
it "adds the entry and returns true when the entry doesn't exist" do
|
106
|
-
expect(subject).to receive(:write).with(["/var/cache/r10k/git/
|
107
|
-
"/tmp/.r10k/git/
|
108
|
-
expect(subject.add?("/tmp/.r10k/git/
|
106
|
+
expect(subject).to receive(:write).with(["/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git",
|
107
|
+
"/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git"])
|
108
|
+
expect(subject.add?("/tmp/.r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git")).to eq true
|
109
109
|
end
|
110
110
|
|
111
111
|
it "doesn't modify the file and returns false when the entry exists" do
|
112
112
|
expect(subject).to_not receive(:write)
|
113
|
-
expect(subject.add?("/var/cache/r10k/git/
|
113
|
+
expect(subject.add?("/var/cache/r10k/git/https---github.com-puppetlabs-puppetlabs-apache.git")).to eq false
|
114
114
|
end
|
115
115
|
end
|
116
116
|
end
|
data/spec/unit/git/cache_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe R10K::Git::Rugged::Cache, :unless => R10K::Util::Platform.jruby? do
|
|
5
5
|
require 'r10k/git/rugged/cache'
|
6
6
|
end
|
7
7
|
|
8
|
-
subject(:cache) { described_class.new('
|
8
|
+
subject(:cache) { described_class.new('https://some/git/remote') }
|
9
9
|
|
10
10
|
it "wraps a Rugged::BareRepository instance" do
|
11
11
|
expect(cache.repo).to be_a_kind_of R10K::Git::Rugged::BareRepository
|
@@ -31,7 +31,7 @@ describe R10K::Git::Rugged::Cache, :unless => R10K::Util::Platform.jruby? do
|
|
31
31
|
before do
|
32
32
|
allow(subject.repo).to receive(:exist?).and_return true
|
33
33
|
allow(subject.repo).to receive(:fetch)
|
34
|
-
allow(subject.repo).to receive(:remotes).and_return({ 'origin' => '
|
34
|
+
allow(subject.repo).to receive(:remotes).and_return({ 'origin' => 'https://some/git/remote' })
|
35
35
|
end
|
36
36
|
|
37
37
|
it "does not update the URLs if they match" do
|
@@ -3,7 +3,7 @@ require 'r10k/git/shellgit/cache'
|
|
3
3
|
|
4
4
|
describe R10K::Git::ShellGit::Cache do
|
5
5
|
|
6
|
-
subject { described_class.new('
|
6
|
+
subject { described_class.new('https://some/git/remote') }
|
7
7
|
|
8
8
|
it "wraps a ShellGit::BareRepository instance" do
|
9
9
|
expect(subject.repo).to be_a_kind_of R10K::Git::ShellGit::BareRepository
|
@@ -4,7 +4,7 @@ require 'r10k/git/stateful_repository'
|
|
4
4
|
|
5
5
|
describe R10K::Git::StatefulRepository do
|
6
6
|
|
7
|
-
let(:remote) { '
|
7
|
+
let(:remote) { 'https://some.site/some-repo.git' }
|
8
8
|
let(:ref) { '0.9.x' }
|
9
9
|
|
10
10
|
subject { described_class.new(remote, '/some/nonexistent/basedir', 'some-dirname') }
|
@@ -44,7 +44,7 @@ describe R10K::Module::Git do
|
|
44
44
|
described_class.new(
|
45
45
|
'branan/eight_hundred',
|
46
46
|
'/moduledir',
|
47
|
-
{ :git => '
|
47
|
+
{ :git => 'https://git-server.site/branan/puppet-eight_hundred' }
|
48
48
|
)
|
49
49
|
end
|
50
50
|
|
@@ -66,7 +66,7 @@ describe R10K::Module::Git do
|
|
66
66
|
described_class.new(
|
67
67
|
'eight_hundred',
|
68
68
|
'/moduledir',
|
69
|
-
{ :git => '
|
69
|
+
{ :git => 'https://git-server.site/branan/puppet-eight_hundred' }
|
70
70
|
)
|
71
71
|
end
|
72
72
|
|
@@ -86,7 +86,7 @@ describe R10K::Module::Git do
|
|
86
86
|
|
87
87
|
describe "properties" do
|
88
88
|
subject do
|
89
|
-
described_class.new('boolean', '/moduledir', {:git => '
|
89
|
+
described_class.new('boolean', '/moduledir', {:git => 'https://git.example.com/adrienthebo/puppet-boolean'})
|
90
90
|
end
|
91
91
|
|
92
92
|
before(:each) do
|
@@ -154,7 +154,7 @@ describe R10K::Module::Git do
|
|
154
154
|
described_class.new(
|
155
155
|
'boolean',
|
156
156
|
'/moduledir',
|
157
|
-
{ :git => '
|
157
|
+
{ :git => 'https://git.example.com/adrienthebo/puppet-boolean' }
|
158
158
|
)
|
159
159
|
end
|
160
160
|
|
@@ -171,7 +171,7 @@ describe R10K::Module::Git do
|
|
171
171
|
described_class.new('boolean', '/moduledir', base_opts.merge(extra_opts), env)
|
172
172
|
end
|
173
173
|
|
174
|
-
let(:base_opts) { { git: '
|
174
|
+
let(:base_opts) { { git: 'https://git.example.com/adrienthebo/puppet-boolean' } }
|
175
175
|
|
176
176
|
before(:each) do
|
177
177
|
allow(mock_repo).to receive(:head).and_return('abc123')
|
@@ -6,10 +6,10 @@ RSpec.describe R10K::Util::Cacheable do
|
|
6
6
|
subject { Object.new.extend(R10K::Util::Cacheable) }
|
7
7
|
|
8
8
|
describe "dirname sanitization" do
|
9
|
-
let(:input) { '
|
9
|
+
let(:input) { 'https://some/git/remote' }
|
10
10
|
|
11
11
|
it 'sanitizes URL to directory name' do
|
12
|
-
expect(subject.sanitized_dirname(input)).to eq('
|
12
|
+
expect(subject.sanitized_dirname(input)).to eq('https---some-git-remote')
|
13
13
|
end
|
14
14
|
|
15
15
|
context 'with username and password' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r10k
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrien Thebo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colored2
|
@@ -28,14 +28,14 @@ dependencies:
|
|
28
28
|
name: cri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.15.10
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.15.10
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -70,14 +70,14 @@ dependencies:
|
|
70
70
|
name: puppet_forge
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 2.3.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 2.3.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
@@ -98,16 +98,22 @@ dependencies:
|
|
98
98
|
name: fast_gettext
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 1.1.0
|
104
|
+
- - "<"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: 3.0.0
|
104
107
|
type: :runtime
|
105
108
|
prerelease: false
|
106
109
|
version_requirements: !ruby/object:Gem::Requirement
|
107
110
|
requirements:
|
108
|
-
- - "
|
111
|
+
- - ">="
|
109
112
|
- !ruby/object:Gem::Version
|
110
113
|
version: 1.1.0
|
114
|
+
- - "<"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 3.0.0
|
111
117
|
- !ruby/object:Gem::Dependency
|
112
118
|
name: gettext
|
113
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,7 +123,7 @@ dependencies:
|
|
117
123
|
version: 3.0.2
|
118
124
|
- - "<"
|
119
125
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
126
|
+
version: 4.0.0
|
121
127
|
type: :runtime
|
122
128
|
prerelease: false
|
123
129
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -127,7 +133,7 @@ dependencies:
|
|
127
133
|
version: 3.0.2
|
128
134
|
- - "<"
|
129
135
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
136
|
+
version: 4.0.0
|
131
137
|
- !ruby/object:Gem::Dependency
|
132
138
|
name: jwt
|
133
139
|
requirement: !ruby/object:Gem::Requirement
|
@@ -215,7 +221,6 @@ files:
|
|
215
221
|
- ".github/workflows/rspec_tests.yml"
|
216
222
|
- ".github/workflows/stale.yml"
|
217
223
|
- ".gitignore"
|
218
|
-
- ".travis.yml"
|
219
224
|
- CHANGELOG.mkd
|
220
225
|
- CODEOWNERS
|
221
226
|
- CONTRIBUTING.mkd
|
data/.travis.yml
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
---
|
2
|
-
language: ruby
|
3
|
-
bundler_args: "--without system"
|
4
|
-
script: "bundle exec rspec --color --format documentation spec"
|
5
|
-
notifications:
|
6
|
-
email: false
|
7
|
-
sudo: false
|
8
|
-
jdk:
|
9
|
-
- openjdk11
|
10
|
-
before_install: gem install bundler -v '< 2' --no-document
|
11
|
-
matrix:
|
12
|
-
include:
|
13
|
-
- stage: r10k tests
|
14
|
-
rvm: 2.3.0
|
15
|
-
- stage: r10k container tests
|
16
|
-
dist: focal
|
17
|
-
language: ruby
|
18
|
-
services:
|
19
|
-
- docker
|
20
|
-
rvm: 2.6.6
|
21
|
-
env:
|
22
|
-
- DOCKER_COMPOSE_VERSION=1.28.6
|
23
|
-
- DOCKER_BUILDX_VERSION=0.5.1
|
24
|
-
# necessary to prevent overwhelming TravisCI build output limits
|
25
|
-
- DOCKER_BUILD_FLAGS="--progress plain"
|
26
|
-
before_install:
|
27
|
-
- sudo rm /usr/local/bin/docker-compose
|
28
|
-
- curl --location https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname --kernel-name`-`uname --machine` > docker-compose
|
29
|
-
- chmod +x docker-compose
|
30
|
-
- sudo mv docker-compose /usr/local/bin
|
31
|
-
- mkdir -vp ~/.docker/cli-plugins
|
32
|
-
- curl --location https://github.com/docker/buildx/releases/download/v${DOCKER_BUILDX_VERSION}/buildx-v${DOCKER_BUILDX_VERSION}.linux-amd64 > ~/.docker/cli-plugins/docker-buildx
|
33
|
-
- chmod +x ~/.docker/cli-plugins/docker-buildx
|
34
|
-
- docker buildx create --name travis_builder --use
|
35
|
-
script:
|
36
|
-
- set -e
|
37
|
-
- cd docker
|
38
|
-
- make lint
|
39
|
-
- make build
|
40
|
-
- make test
|
41
|
-
after_script:
|
42
|
-
- docker buildx rm travis_builder
|