class Dpl::Providers::Codedeploy
split this up to CodeDeploy::Github and CodeDeploy::S3 using the revision_type, in order to make opts more strict
Public Instance Methods
Source
# File lib/dpl/providers/codedeploy.rb, line 154 def bucket super || error(:missing_bucket) end
Calls superclass method
Source
# File lib/dpl/providers/codedeploy.rb, line 170 def build_number ENV['TRAVIS_BUILD_NUMBER'] end
Source
# File lib/dpl/providers/codedeploy.rb, line 162 def bundle_type super || key =~ /\.(tar|tgz|zip)$/ && ::Regexp.last_match(1) || error(:unknown_bundle_type) end
Calls superclass method
Source
# File lib/dpl/providers/codedeploy.rb, line 182 def client_options compact(region:, credentials:, endpoint:) end
Source
# File lib/dpl/providers/codedeploy.rb, line 174 def code_deploy @code_deploy ||= Aws::CodeDeploy::Client.new(client_options) end
Source
# File lib/dpl/providers/codedeploy.rb, line 146 def commit_id super || git_sha end
Calls superclass method
Source
# File lib/dpl/providers/codedeploy.rb, line 76 def create_deployment deployment = code_deploy.create_deployment( revision:, application_name: application, deployment_group_name: deployment_group, description:, file_exists_behavior: file_exists_behavior.upcase ) deployment.deployment_id end
Source
# File lib/dpl/providers/codedeploy.rb, line 186 def credentials Aws::Credentials.new(access_key_id, secret_access_key) end
Source
# File lib/dpl/providers/codedeploy.rb, line 58 def deploy register_revision if revision_info[:version] id = create_deployment info :deploy_triggered, id wait_until_deployed(id) if wait_until_deployed? rescue Aws::CodeDeploy::Errors::DeploymentLimitExceededException => e error e.message end
Source
# File lib/dpl/providers/codedeploy.rb, line 166 def description interpolate(super || msg(:description), vars:) end
Calls superclass method
Source
# File lib/dpl/providers/codedeploy.rb, line 136 def github_revision { revision_type: 'GitHub', git_hub_location: { commit_id:, repository: } } end
Source
# File lib/dpl/providers/codedeploy.rb, line 158 def key super || error(:missing_key) end
Calls superclass method
Source
# File lib/dpl/providers/codedeploy.rb, line 98 def poll(id) sleep 5 print '.' code_deploy.get_deployment(deployment_id: id)[:deployment_info][:status] end
Source
# File lib/dpl/providers/codedeploy.rb, line 67 def register_revision info :register_revision, revision_info[:version], revision_info[:e_tag] code_deploy.register_application_revision( revision:, application_name: application, description: ) end
Source
# File lib/dpl/providers/codedeploy.rb, line 150 def repository super || ENV['TRAVIS_REPO_SLUG'] || File.basename(Dir.pwd) end
Calls superclass method
Source
# File lib/dpl/providers/codedeploy.rb, line 108 def revision @revision ||= case revision_type when 's3' then s3_revision when 'github' then github_revision when nil then bucket? ? s3_revision : github_revision else error :unknown_revision_type, revision_type end end
Source
# File lib/dpl/providers/codedeploy.rb, line 104 def revision_info revision[:s3_location] || {} end
Source
# File lib/dpl/providers/codedeploy.rb, line 130 def revision_version_info s3.head_object(bucket:, key:) rescue Aws::Errors::ServiceError => e error e.message end
Source
# File lib/dpl/providers/codedeploy.rb, line 178 def s3 @s3 ||= Aws::S3::Client.new(client_options) end
Source
# File lib/dpl/providers/codedeploy.rb, line 117 def s3_revision { revision_type: 'S3', s3_location: compact( bucket:, bundle_type:, version: revision_version_info[:version_id], e_tag: revision_version_info[:etag], key: ) } end
Source
# File lib/dpl/providers/codedeploy.rb, line 87 def wait_until_deployed(id) print :waiting_for_deploy status = poll(id) until %w[Succeeded Failed Stopped].include?(status) case status when 'Succeeded' info :finished_deploy, status else error :finished_deploy, status end end