class HelmWrapper::Tasks::Push

Public Class Methods

new(binary:, chart:) { |self| ... } click to toggle source
# File lib/helm-wrapper/tasks/push.rb, line 24
def initialize(binary:, chart:)
  @binary = binary
  @chart  = chart

  yield self if block_given?

  push_task
end

Public Instance Methods

push_task() click to toggle source
# File lib/helm-wrapper/tasks/push.rb, line 35
def push_task
  desc "Pushes a Helm chart to an OCI Helm repository."
  task :push, [:tag, :clean] => :binary do |t, args|
    tag = (args[:tag].kind_of?(String) and (not args[:tag].strip.empty?)) ? args[:tag].strip : "latest"
    clean = args[:clean].kind_of?(String) ? args[:clean].downcase == "true" : true

    runner = HelmWrapper::Shared::Runner.new(binary: @binary, chart: @chart)

    logger.info("Running Helm push for path: #{@chart.path}...")

    begin
      runner.init_repos
      runner.save(tag: tag)
      runner.push(tag: tag)
    ensure
      runner.clean(repos: clean)
    end
  end
end