Sha256: bb1e02d4c6fdb547dfa425811ddbe7f11daef156075666d84eb30b4f114e53d5

Contents?: true

Size: 953 Bytes

Versions: 2

Compression:

Stored size: 953 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)["pipeline_output"]["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

2 entries across 2 versions & 1 rubygems

Version Path
cogy-0.6.0 lib/cogy/capistrano/cogy.rake
cogy-0.5.2 lib/cogy/capistrano/cogy.rake