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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49ab8d90eaed3d15f16ca811102a36d316bbd3b7bbcebf0dccc6d664cb1bbc85
4
- data.tar.gz: 27706a86056773d0624ce4d5bc2490e1c1b790ee9a0104eec59b560799d7adc1
3
+ metadata.gz: 72288d15a49c216b0b52ab072c08cc1784266652f0bd7608adccf1ec787334bc
4
+ data.tar.gz: b5b2a107d57442c7a0caf8863b99d280eef602ea7fd65fee906b165c90f297a1
5
5
  SHA512:
6
- metadata.gz: c2f67d0e51a3d34d7aa16c1b952da6875a1e5c2db30c2f0a17e18d2ea95f690780fe79f13308e69fca6f3b104887239baefac289d7ec6c88b176a262b2087e26
7
- data.tar.gz: 571e3e47519eb6756153281cad1521065cf1da6e1e63b0d3d7e47c8047b8c00b725f6ef64b471558f76f81c501eed37b758f9c7017b44d80a84cce0dfd6ed56b
6
+ metadata.gz: efd5f1346c7df8e3a72849a0a8e519c4188a57a7ad501ec08eb0ad7a3efafb5b41b94dc0f6d3f27c99a2e7383a64cf248973cd214a653094830720af1703fab8
7
+ data.tar.gz: afda6c49fcb7e190f18b99ab5f050c7b3b1405b39ae1483bc447d547b273186919b6224d558d8bc9cc8c14fa41fa3646cf97bb7f4f59a476efd0d857216de828
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.1.2
1
+ ruby 3.3.9
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source "https://rubygems.org"
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
- gem "commander"
6
+ gem "commander", "~> 4.6"
7
7
 
8
8
  gem "activesupport"
9
9
  gem "pry-byebug"
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.4.6)
33
- highline (~> 1.7.2)
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 (1.7.10)
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
@@ -229,7 +229,7 @@ Contributing to pfab
229
229
  Local Testing
230
230
  -----------------------------------------
231
231
  ```bash
232
- bundle exec rake build
232
+ bundle exec rake clean build
233
233
  gem install --local pkg/pfab-0.57.1.gem
234
234
  ```
235
235
  ```ruby
data/Rakefile CHANGED
@@ -23,6 +23,7 @@ Juwelier::Tasks.new do |gem|
23
23
  gem.email = "jdwyer@prefab.cloud"
24
24
  gem.authors = ["Jeff Dwyer"]
25
25
  gem.version = Pfab::Version::STRING
26
+ gem.required_ruby_version = ">= 3.1"
26
27
  # dependencies defined in Gemfile
27
28
  end
28
29
  Juwelier::RubygemsDotOrgTasks.new
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
- build_cmd = "docker buildx build --tag #{image_name} --platform linux/amd64 #{build_args} ."
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
@@ -2,7 +2,7 @@ module Pfab
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 58
5
- PATCH = 18
5
+ PATCH = 20
6
6
  BUILD = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
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.18 ruby lib
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.18"
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"
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.rubygems_version = "3.3.7".freeze
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
- if s.respond_to? :specification_version then
54
- s.specification_version = 4
55
- end
54
+ s.specification_version = 4
56
55
 
57
- if s.respond_to? :add_runtime_dependency then
58
- s.add_runtime_dependency(%q<commander>.freeze, [">= 0"])
59
- s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
60
- s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0"])
61
- s.add_runtime_dependency(%q<styled_yaml>.freeze, ["~> 0.0.1"])
62
- s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.1"])
63
- s.add_development_dependency(%q<bundler>.freeze, ["~> 2.3"])
64
- s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
65
- s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
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.18
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-15 00:00:00.000000000 Z
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: '0'
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: '0'
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: '0'
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.3.7
191
+ rubygems_version: 3.5.22
192
192
  signing_key:
193
193
  specification_version: 4
194
194
  summary: helper gem