Sha256: eb67aa0f74a8b9dfb6dd1a5bb756473e399c87a7e8f657beccefb4bc63eebeee

Contents?: true

Size: 1.77 KB

Versions: 3

Compression:

Stored size: 1.77 KB

Contents

require 'digest/sha1'
require 'open-uri'

module DPL
  class Provider
    class GAE < Provider
      experimental 'Google App Engine'

      # https://developers.google.com/appengine/downloads
      GAE_VERSION='1.9.13'
      GAE_ZIP_FILE="google_appengine_#{GAE_VERSION}.zip"
      SHA1SUM='05166691108caddc4d4cfdf683cfc4748df197a2'
      BASE_DIR=Dir.pwd
      GAE_DIR=File.join(BASE_DIR, 'google_appengine')
      APPCFG_BIN=File.join(GAE_DIR, 'appcfg.py')

      def self.install_sdk
        requires 'rubyzip', :load => 'zip'
        $stderr.puts "Setting up Google App Engine SDK"

        Dir.chdir(BASE_DIR) do
          unless File.exists? GAE_ZIP_FILE
            $stderr.puts "Downloading Google App Engine SDK"
            File.open(GAE_ZIP_FILE, "wb") do |dest|
              open("https://storage.googleapis.com/appengine-sdks/featured/#{GAE_ZIP_FILE}", "rb") do |src|
                dest.write(src.read)
              end
            end
          end
          sha1sum = Digest::SHA1.hexdigest(File.read(GAE_ZIP_FILE))
          unless sha1sum == SHA1SUM
            raise "Checksum did not match for #{GAE_ZIP_FILE}"
          end

          unless File.directory? 'google_appengine'
            $stderr.puts "Extracting Google App Engine SDK archive"
            Zip::File.open(GAE_ZIP_FILE) do |file|
              file.each do |entry|
                entry.extract entry.name
              end
            end
          end
        end
      end

      install_sdk

      def needs_key?
        false
      end

      def check_auth
      end

      def app_dir
        options[:app_dir] || ENV['TRAVIS_BUILD_DIR'] || Dir.pwd
      end

      def push_app
        context.shell "#{APPCFG_BIN} --oauth2_refresh_token=#{options[:oauth_refresh_token]} update #{app_dir}"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dpl-1.7.1 lib/dpl/provider/gae.rb
dpl-1.7.2.travis.579.1 lib/dpl/provider/gae.rb
dpl-1.7.1.travis.578.1 lib/dpl/provider/gae.rb