Sha256: 22b3b4813b8a6e4a4ddc9ed1a29b551a83164c47a76b28fc156f7274d32b7d62

Contents?: true

Size: 1.71 KB

Versions: 2

Compression:

Stored size: 1.71 KB

Contents

require 'pdk/cli/release'

module PDK::CLI
  @release_publish_cmd = @release_cmd.define_command do
    name 'publish'
    usage 'publish [options] <tarball>'
    summary '(Experimental) Publishes the module <tarball> to the Forge.'

    flag nil, :force,                'Publish the module automatically, with no prompts.'

    option nil, :'forge-upload-url', 'Set forge upload url path.',
           argument: :required, default: 'https://forgeapi.puppetlabs.com/v3/releases'

    option nil, :'forge-token', 'Set Forge API token (you may also set via environment variable PDK_FORGE_TOKEN)', argument: :required

    run do |opts, _args, cmd|
      # Make sure build is being run in a valid module directory with a metadata.json
      PDK::CLI::Util.ensure_in_module!(
        message:   "`pdk release #{cmd.name}` can only be run from inside a valid module with a metadata.json.",
        log_level: :info,
      )

      opts[:'skip-validation'] = true
      opts[:'skip-changelog'] = true
      opts[:'skip-dependency'] = true
      opts[:'skip-documentation'] = true
      opts[:'skip-build'] = true
      opts[:'skip-versionset'] = true
      opts[:force] = true unless PDK::CLI::Util.interactive?
      opts[:'forge-token'] ||= PDK::Util::Env['PDK_FORGE_TOKEN']

      if opts[:'forge-token'].nil? || opts[:'forge-token'].empty?
        PDK.logger.error 'You must supply a Forge API token either via `--forge-token` option or PDK_FORGE_TOKEN environment variable.'
        exit 1
      end

      Release.prepare_publish_interview(TTY::Prompt.new(help_color: :cyan), opts) unless opts[:force]

      Release.send_analytics("release #{cmd.name}", opts)

      release = PDK::Module::Release.new(nil, opts)

      release.run
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pdk-2.7.1 lib/pdk/cli/release/publish.rb
pdk-2.7.0 lib/pdk/cli/release/publish.rb