pfab 0.58.18 → 0.58.20
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/.tool-versions +1 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -4
- data/README.markdown +1 -1
- data/Rakefile +1 -0
- data/lib/pfab/cli.rb +48 -1
- data/lib/pfab/version.rb +1 -1
- data/pfab.gemspec +15 -28
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72288d15a49c216b0b52ab072c08cc1784266652f0bd7608adccf1ec787334bc
|
4
|
+
data.tar.gz: b5b2a107d57442c7a0caf8863b99d280eef602ea7fd65fee906b165c90f297a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efd5f1346c7df8e3a72849a0a8e519c4188a57a7ad501ec08eb0ad7a3efafb5b41b94dc0f6d3f27c99a2e7383a64cf248973cd214a653094830720af1703fab8
|
7
|
+
data.tar.gz: afda6c49fcb7e190f18b99ab5f050c7b3b1405b39ae1483bc447d547b273186919b6224d558d8bc9cc8c14fa41fa3646cf97bb7f4f59a476efd0d857216de828
|
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby 3.
|
1
|
+
ruby 3.3.9
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -29,8 +29,8 @@ GEM
|
|
29
29
|
builder (3.2.4)
|
30
30
|
byebug (11.1.3)
|
31
31
|
coderay (1.1.3)
|
32
|
-
commander (4.
|
33
|
-
highline (~>
|
32
|
+
commander (4.6.0)
|
33
|
+
highline (~> 2.0.0)
|
34
34
|
concurrent-ruby (1.2.3)
|
35
35
|
descendants_tracker (0.0.4)
|
36
36
|
thread_safe (~> 0.3, >= 0.3.1)
|
@@ -64,7 +64,7 @@ GEM
|
|
64
64
|
hashie (~> 3.5, >= 3.5.2)
|
65
65
|
oauth2 (~> 1.0)
|
66
66
|
hashie (3.6.0)
|
67
|
-
highline (
|
67
|
+
highline (2.0.3)
|
68
68
|
i18n (1.14.5)
|
69
69
|
concurrent-ruby (~> 1.0)
|
70
70
|
json (2.6.3)
|
@@ -121,7 +121,7 @@ PLATFORMS
|
|
121
121
|
DEPENDENCIES
|
122
122
|
activesupport
|
123
123
|
bundler (~> 2.3)
|
124
|
-
commander
|
124
|
+
commander (~> 4.6)
|
125
125
|
juwelier (~> 2.4.9)!
|
126
126
|
pry-byebug
|
127
127
|
rdoc (~> 6.1)
|
data/README.markdown
CHANGED
data/Rakefile
CHANGED
data/lib/pfab/cli.rb
CHANGED
@@ -39,6 +39,14 @@ module Pfab
|
|
39
39
|
global_option("-a", "--application_name APP_NAME", "run without prompting for app") do |app_name|
|
40
40
|
$app_name = app_name
|
41
41
|
end
|
42
|
+
$enable_docker_registry_cache = false
|
43
|
+
$disable_docker_registry_cache = false
|
44
|
+
global_option("--enable-docker-registry-cache", "enable docker registry caching with 'cache' label") do
|
45
|
+
$enable_docker_registry_cache = true
|
46
|
+
end
|
47
|
+
global_option("--disable-docker-registry-cache", "disable docker registry caching (overrides auto-detection)") do
|
48
|
+
$disable_docker_registry_cache = true
|
49
|
+
end
|
42
50
|
|
43
51
|
command :build do |c|
|
44
52
|
c.syntax = "pfab build"
|
@@ -339,7 +347,16 @@ module Pfab
|
|
339
347
|
end
|
340
348
|
end
|
341
349
|
|
342
|
-
|
350
|
+
cache_args = ""
|
351
|
+
if should_use_registry_cache?
|
352
|
+
cache_image_name = "#{container_repository}/#{image_name}:cache"
|
353
|
+
cache_args = "--cache-from type=registry,ref=#{cache_image_name} --cache-to type=registry,ref=#{cache_image_name},mode=max"
|
354
|
+
say "Using Docker registry cache: #{cache_image_name}"
|
355
|
+
elsif !docker_container_driver_available? && !$disable_docker_registry_cache
|
356
|
+
say "Docker registry caching not available - docker-container driver not found. Set up with: docker buildx create --driver docker-container --use"
|
357
|
+
end
|
358
|
+
|
359
|
+
build_cmd = "docker buildx build --tag #{image_name} --platform linux/amd64 #{build_args} #{cache_args} ."
|
343
360
|
puts build_cmd
|
344
361
|
result = system(build_cmd)
|
345
362
|
|
@@ -493,6 +510,36 @@ module Pfab
|
|
493
510
|
name = get_app_name(all: true)
|
494
511
|
(name == "all") ? deployables.keys : [name]
|
495
512
|
end
|
513
|
+
|
514
|
+
def docker_container_driver_available?
|
515
|
+
output = `docker buildx ls 2>/dev/null`
|
516
|
+
output.lines.any? { |line| line.match(/^\S+\s+docker-container/) }
|
517
|
+
end
|
518
|
+
|
519
|
+
def should_use_registry_cache?
|
520
|
+
# Disable flag takes highest precedence
|
521
|
+
return false if $disable_docker_registry_cache
|
522
|
+
|
523
|
+
# Registry cache requires docker-container driver - this is mandatory
|
524
|
+
return false unless docker_container_driver_available?
|
525
|
+
|
526
|
+
# Enable flag takes precedence over auto-detection
|
527
|
+
return true if $enable_docker_registry_cache
|
528
|
+
|
529
|
+
# Auto-detect CI environments where local Docker cache isn't available
|
530
|
+
ci_env_vars = [
|
531
|
+
'CI', # Generic CI indicator
|
532
|
+
'GITHUB_ACTIONS', # GitHub Actions
|
533
|
+
'GITLAB_CI', # GitLab CI
|
534
|
+
'CIRCLECI', # CircleCI
|
535
|
+
'TRAVIS', # Travis CI
|
536
|
+
'JENKINS_URL', # Jenkins
|
537
|
+
'BUILD_ID', # Various CI systems
|
538
|
+
'CONTINUOUS_INTEGRATION' # Generic CI
|
539
|
+
]
|
540
|
+
|
541
|
+
ci_env_vars.any? { |var| ENV[var] }
|
542
|
+
end
|
496
543
|
end
|
497
544
|
|
498
545
|
CommandResult = Struct.new(:stdout, :stderr, :exit_status_code, keyword_init: true) do
|
data/lib/pfab/version.rb
CHANGED
data/pfab.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: pfab 0.58.
|
5
|
+
# stub: pfab 0.58.20 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "pfab".freeze
|
9
|
-
s.version = "0.58.
|
9
|
+
s.version = "0.58.20".freeze
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Jeff Dwyer".freeze]
|
14
|
-
s.date = "2025-08-
|
14
|
+
s.date = "2025-08-19"
|
15
15
|
s.description = "k8s helper".freeze
|
16
16
|
s.email = "jdwyer@prefab.cloud".freeze
|
17
17
|
s.executables = ["pfab".freeze]
|
@@ -47,33 +47,20 @@ Gem::Specification.new do |s|
|
|
47
47
|
]
|
48
48
|
s.homepage = "http://github.com/prefab-cloud/pfab".freeze
|
49
49
|
s.licenses = ["MIT".freeze]
|
50
|
-
s.
|
50
|
+
s.required_ruby_version = Gem::Requirement.new(">= 3.1".freeze)
|
51
|
+
s.rubygems_version = "3.5.22".freeze
|
51
52
|
s.summary = "helper gem".freeze
|
52
53
|
|
53
|
-
|
54
|
-
s.specification_version = 4
|
55
|
-
end
|
54
|
+
s.specification_version = 4
|
56
55
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
|
67
|
-
else
|
68
|
-
s.add_dependency(%q<commander>.freeze, [">= 0"])
|
69
|
-
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
70
|
-
s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
|
71
|
-
s.add_dependency(%q<styled_yaml>.freeze, ["~> 0.0.1"])
|
72
|
-
s.add_dependency(%q<rdoc>.freeze, ["~> 6.1"])
|
73
|
-
s.add_dependency(%q<bundler>.freeze, ["~> 2.3"])
|
74
|
-
s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
|
75
|
-
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
76
|
-
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
|
77
|
-
end
|
56
|
+
s.add_runtime_dependency(%q<commander>.freeze, ["~> 4.6".freeze])
|
57
|
+
s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0".freeze])
|
58
|
+
s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0".freeze])
|
59
|
+
s.add_runtime_dependency(%q<styled_yaml>.freeze, ["~> 0.0.1".freeze])
|
60
|
+
s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.1".freeze])
|
61
|
+
s.add_development_dependency(%q<bundler>.freeze, ["~> 2.3".freeze])
|
62
|
+
s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9".freeze])
|
63
|
+
s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
|
64
|
+
s.add_development_dependency(%q<test-unit>.freeze, [">= 0".freeze])
|
78
65
|
end
|
79
66
|
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pfab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.58.
|
4
|
+
version: 0.58.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Dwyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-08-
|
11
|
+
date: 2025-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '4.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '4.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -181,14 +181,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
181
181
|
requirements:
|
182
182
|
- - ">="
|
183
183
|
- !ruby/object:Gem::Version
|
184
|
-
version: '
|
184
|
+
version: '3.1'
|
185
185
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
186
186
|
requirements:
|
187
187
|
- - ">="
|
188
188
|
- !ruby/object:Gem::Version
|
189
189
|
version: '0'
|
190
190
|
requirements: []
|
191
|
-
rubygems_version: 3.
|
191
|
+
rubygems_version: 3.5.22
|
192
192
|
signing_key:
|
193
193
|
specification_version: 4
|
194
194
|
summary: helper gem
|