Sha256: 2193a84e53a5adc4b26752a15b7ee466f365ececc8a943b0c89384f0f5af11ea

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

require 'yaml'
require 'json'
require 'fileutils'
require 'zip'

module Shipwright
  module ElasticBeanstalk

    EB_CONFIG     = ".elasticbeanstalk/config.yml"
    EB_EXTENSIONS = '.ebextensions'
    DOCKERRUN     = 'Dockerrun.aws.json'

    extend self

    def update_dockerrun
      dockerrun = Dockerrun.new(DOCKERRUN, version)
      dockerrun.update!
    end

    def generate_artifact
      FileUtils.mkdir_p File.dirname(artifact_path)
      FileUtils.rm artifact_path, force: true
      Zip::File.open(artifact_path, Zip::File::CREATE) do |zip|
        zip.add DOCKERRUN, DOCKERRUN
        ebexts = Dir.glob(File.join EB_EXTENSIONS, '*')
        if ebexts.any?
          zip.mkdir EB_EXTENSIONS
          ebexts.each { |ext| zip.add ext, ext }
        end
      end
    end

    def update_ebconfig
      config = YAML.load_file EB_CONFIG
      config['deploy'] ||= {}
      config['deploy']['artifact'] = artifact_path
      File.open(EB_CONFIG, 'wb') { |f| f.write config.to_yaml[4..-1] } # skip ---\n
    rescue Errno::ENOENT
    end

    def artifact_path
      File.join Dir.pwd, 'builds', "#{application}-#{version}.zip"
    end

    def version
      Builder.version
    end

    def application
      Builder.application
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shipwright-1.3.1 lib/shipwright/elastic_beanstalk.rb
shipwright-1.3.0 lib/shipwright/elastic_beanstalk.rb