Sha256: c80a7e789701992e5147e643debc3be6b60bc778de71db3f49f2eec82e610c85

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module Dpl
  module Providers
    class Puppetforge < Provider
      register :puppetforge

      status :alpha

      full_name 'Puppet Forge'

      description sq(<<-STR)
        tbd
      STR

      gem 'puppet', '~> 7.25', require: 'puppet/face'
      gem 'puppet-blacksmith', '~> 7', require: 'puppet_blacksmith'

      env :puppetforge

      opt '--username NAME', 'Puppet Forge user name', required: true, alias: :user
      opt '--password PASS', 'Puppet Forge password', required: true, secret: true
      opt '--url URL', 'Puppet Forge URL to deploy to', default: 'https://forgeapi.puppetlabs.com/'

      msgs upload: 'Uploading to Puppet Forge %s/%s'

      def validate
        file.metadata
      end

      def deploy
        build
        info :upload, forge.username, file.name
        forge.push!(file.name)
      end

      def file
        @file ||= Blacksmith::Modulefile.new
      end

      def build
        Puppet::Face['module', :current].build('./')
      end

      def forge
        @forge ||= Blacksmith::Forge.new(username, password, url)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
travis_dpl_test-2.0.3.beta.4.ror.1 lib/dpl/providers/puppetforge.rb
travis_dpl_test-2.0.3.beta.4.ror lib/dpl/providers/puppetforge.rb