Sha256: 94b75bd0353a5a8988cf9ce6002ce052bad8329abea50f22aaa28f8e0aacb752

Contents?: true

Size: 944 Bytes

Versions: 5

Compression:

Stored size: 944 Bytes

Contents

namespace :cogy do
  desc "Invoke the Cog Trigger that will install the Cogy-generated bundle"
  task :notify_cog do
    require "net/http"
    require "timeout"
    require "json"

    trigger_url = fetch(:cogy_release_trigger_url)
    cogy_endpoint = fetch(:cogy_endpoint)

    begin
      raise ":cogy_release_trigger_url must be set" if trigger_url.nil?
      raise ":cogy_endpoint must be set" if cogy_endpoint.nil?

      Timeout.timeout(fetch(:cogy_trigger_timeout) || 7) do
        url = URI(trigger_url)
        res = Net::HTTP.post_form(url, url: cogy_endpoint)

        if !res.is_a?(Net::HTTPSuccess)
          error = JSON.parse(res.body)["errors"]["error_message"]
          if error !~ /version has already been taken/
            puts "Error response (#{res.code}) from Cog trigger: #{error}"
          end
        end
      end
    rescue => e
      puts "Error invoking Cog trigger: #{e.class} #{e.message}"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cogy-0.5.1 lib/cogy/capistrano/cogy.rake
cogy-0.4.0 lib/cogy/capistrano/cogy.rake
cogy-0.3.0 lib/cogy/capistrano/cogy.rake
cogy-0.2.1 lib/cogy/capistrano/cogy.rake
cogy-0.2.0 lib/cogy/capistrano/cogy.rake