cody 0.8.6 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +1 -1
- data/lib/cody/base.rb +7 -0
- data/lib/cody/cli.rb +14 -0
- data/lib/cody/command.rb +7 -0
- data/lib/cody/list.rb +32 -0
- data/lib/cody/logs.rb +0 -7
- data/lib/cody/role.rb +1 -5
- data/lib/cody/start.rb +1 -0
- data/lib/cody/status.rb +26 -0
- data/lib/cody/stop.rb +0 -7
- data/lib/cody/tailer.rb +1 -1
- data/lib/cody/version.rb +1 -1
- metadata +5 -4
- data/.ruby-version +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9a5cb295e57e6087f876ac035db13c45135a56f169aa672f019721a0c26414e
|
4
|
+
data.tar.gz: 1abe3d62dd99f1d98f01cbaf5762f2e4271035011fa13098bacf961e48e2c747
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4eb291322cee25dcbdd4d5b939d4432e00b1c4cb5b820aca4f4a2c682b443a04f12ced61b969dea2582d278ae946585bf73232301c9a4ff69afee47ea23d7b50
|
7
|
+
data.tar.gz: 1cf485143b33635c22c2655687fc3ebeb6a507cb84074d15c24a893cedafb3e9a7174de11902ce22058aa0710e428211e1d0279ed8007c1feb42e1df97605629
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [0.9.0]
|
7
|
+
- #13,#14 setting a default region in the event that the AWS region is not set.
|
8
|
+
- #17 allow empty IAM Managed Policies
|
9
|
+
- #18 add status and list commands
|
10
|
+
- fix display failed phases
|
11
|
+
|
6
12
|
## [0.8.6]
|
7
13
|
- only print Failed Phases when there are failed phases
|
8
14
|
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ Cody is an AWS CodeBuild Management Tool. Cody lets you create AWS CodeBuild pro
|
|
20
20
|
|
21
21
|
## Private Repo
|
22
22
|
|
23
|
-
IMPORTANT: Before deploying, if you are using a private repo, use [aws codebuild import-source-credentials](https://docs.aws.amazon.com/cli/latest/reference/codebuild/import-source-credentials.html) to add credentials so that codebuild can clone down the repo. Refer to the [CodeBuilld Github Oauth
|
23
|
+
IMPORTANT: Before deploying, if you are using a private repo, use [aws codebuild import-source-credentials](https://docs.aws.amazon.com/cli/latest/reference/codebuild/import-source-credentials.html) to add credentials so that codebuild can clone down the repo. Refer to the [CodeBuilld Github Oauth](https://cody.run/docs/github_oauth/) for more info.
|
24
24
|
|
25
25
|
## Usage
|
26
26
|
|
data/lib/cody/base.rb
CHANGED
@@ -17,5 +17,12 @@ module Cody
|
|
17
17
|
rescue Aws::CodeBuild::Errors::InvalidInputException => e
|
18
18
|
puts "ERROR: #{e.class}: #{e.message}".color(:red)
|
19
19
|
end
|
20
|
+
|
21
|
+
def build_id
|
22
|
+
return @options[:build_id] if @options[:build_id]
|
23
|
+
|
24
|
+
resp = codebuild.list_builds_for_project(project_name: @full_project_name)
|
25
|
+
resp.ids.first # most recent build_id
|
26
|
+
end
|
20
27
|
end
|
21
28
|
end
|
data/lib/cody/cli.rb
CHANGED
@@ -41,6 +41,14 @@ module Cody
|
|
41
41
|
Start.new(options.merge(project_name: project_name)).run
|
42
42
|
end
|
43
43
|
|
44
|
+
desc "status", "status of codebuild project."
|
45
|
+
long_desc Help.text(:status)
|
46
|
+
option :build_id, desc: "Project build id. Defaults to most recent."
|
47
|
+
common_options.call
|
48
|
+
def status(project_name=nil)
|
49
|
+
Status.new(options.merge(project_name: project_name)).run
|
50
|
+
end
|
51
|
+
|
44
52
|
desc "stop", "stop codebuild project."
|
45
53
|
long_desc Help.text(:stop)
|
46
54
|
option :build_id, desc: "Project build id. Defaults to most recent."
|
@@ -49,6 +57,12 @@ module Cody
|
|
49
57
|
Stop.new(options.merge(project_name: project_name)).run
|
50
58
|
end
|
51
59
|
|
60
|
+
desc "list", "list codebuild project."
|
61
|
+
long_desc Help.text(:list)
|
62
|
+
def list
|
63
|
+
List.new(options).run
|
64
|
+
end
|
65
|
+
|
52
66
|
desc "logs", "Prints out logs for codebuild project."
|
53
67
|
long_desc Help.text(:logs)
|
54
68
|
option :build_id, desc: "Project build id. Defaults to most recent."
|
data/lib/cody/command.rb
CHANGED
@@ -77,6 +77,13 @@ module Cody
|
|
77
77
|
def website
|
78
78
|
""
|
79
79
|
end
|
80
|
+
|
81
|
+
# https://github.com/erikhuda/thor/issues/244
|
82
|
+
# Deprecation warning: Thor exit with status 0 on errors. To keep this behavior, you must define `exit_on_failure?` in `Lono::CLI`
|
83
|
+
# You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION.
|
84
|
+
def exit_on_failure?
|
85
|
+
true
|
86
|
+
end
|
80
87
|
end
|
81
88
|
end
|
82
89
|
end
|
data/lib/cody/list.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
module Cody
|
2
|
+
class List
|
3
|
+
include AwsServices
|
4
|
+
extend Memoist
|
5
|
+
|
6
|
+
def initialize(options)
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def run
|
11
|
+
projects.each do |project|
|
12
|
+
puts project
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def projects
|
17
|
+
projects = []
|
18
|
+
next_token = :start
|
19
|
+
while next_token
|
20
|
+
options = {sort_by: "NAME"}
|
21
|
+
if next_token && next_token != :start
|
22
|
+
options[:next_token] = next_token
|
23
|
+
end
|
24
|
+
resp = codebuild.list_projects(options)
|
25
|
+
next_token = resp.next_token
|
26
|
+
projects += resp.projects
|
27
|
+
end
|
28
|
+
projects
|
29
|
+
end
|
30
|
+
memoize :projects
|
31
|
+
end
|
32
|
+
end
|
data/lib/cody/logs.rb
CHANGED
@@ -5,12 +5,5 @@ module Cody
|
|
5
5
|
Tailer.new(@options, build_id).run
|
6
6
|
end
|
7
7
|
end
|
8
|
-
|
9
|
-
def build_id
|
10
|
-
return @options[:build_id] if @options[:build_id]
|
11
|
-
|
12
|
-
resp = codebuild.list_builds_for_project(project_name: @full_project_name)
|
13
|
-
resp.ids.first # most recent build_id
|
14
|
-
end
|
15
8
|
end
|
16
9
|
end
|
data/lib/cody/role.rb
CHANGED
@@ -24,11 +24,7 @@ module Cody
|
|
24
24
|
}
|
25
25
|
}]
|
26
26
|
|
27
|
-
|
28
|
-
@properties[:managed_policy_arns] = @managed_policy_arns
|
29
|
-
else
|
30
|
-
@properties[:managed_policy_arns] = default_managed_policy_arns
|
31
|
-
end
|
27
|
+
@properties[:managed_policy_arns] ||= @managed_policy_arns || default_managed_policy_arns
|
32
28
|
|
33
29
|
resource = {
|
34
30
|
IamRole: {
|
data/lib/cody/start.rb
CHANGED
@@ -63,6 +63,7 @@ module Cody
|
|
63
63
|
def codebuild_log_url(build_id)
|
64
64
|
build_id = build_id.split(':').last
|
65
65
|
region = `aws configure get region`.strip rescue "us-east-1"
|
66
|
+
region ||= "us-east-1"
|
66
67
|
"https://#{region}.console.aws.amazon.com/codesuite/codebuild/projects/#{project_name}/build/#{project_name}%3A#{build_id}/log"
|
67
68
|
end
|
68
69
|
|
data/lib/cody/status.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Cody
|
2
|
+
class Status < Base
|
3
|
+
def run
|
4
|
+
run_with_exception_handling do
|
5
|
+
puts "Build id: #{build_id}"
|
6
|
+
resp = codebuild.batch_get_builds(ids: [build_id])
|
7
|
+
build = resp.builds.first
|
8
|
+
puts "Build status: #{colored(build.build_status)}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def colored(status)
|
13
|
+
# one of SUCCEEDED FAILED FAULT TIMED_OUT IN_PROGRESS STOPPED
|
14
|
+
case status
|
15
|
+
when "SUCCEEDED"
|
16
|
+
status.color(:green)
|
17
|
+
when "FAILED", "FAULT", "TIMED_OUT"
|
18
|
+
status.color(:red)
|
19
|
+
when "IN_PROGRESS"
|
20
|
+
status.color(:yellow)
|
21
|
+
else
|
22
|
+
status
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/cody/stop.rb
CHANGED
@@ -6,12 +6,5 @@ module Cody
|
|
6
6
|
puts "Build has been stopped: #{build_id}"
|
7
7
|
end
|
8
8
|
end
|
9
|
-
|
10
|
-
def build_id
|
11
|
-
return @options[:build_id] if @options[:build_id]
|
12
|
-
|
13
|
-
resp = codebuild.list_builds_for_project(project_name: @full_project_name)
|
14
|
-
resp.ids.first # most recent build_id
|
15
|
-
end
|
16
9
|
end
|
17
10
|
end
|
data/lib/cody/tailer.rb
CHANGED
@@ -47,7 +47,7 @@ module Cody
|
|
47
47
|
|
48
48
|
def display_failed_phases(build)
|
49
49
|
failed_phases = build.phases.select do |phase|
|
50
|
-
phase.phase_status != "SUCCEEDED" &&
|
50
|
+
phase.phase_status != "SUCCEEDED" && phase.phase_status.to_s != ""
|
51
51
|
end
|
52
52
|
return if failed_phases.empty?
|
53
53
|
|
data/lib/cody/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cody
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -249,7 +249,6 @@ files:
|
|
249
249
|
- ".gitignore"
|
250
250
|
- ".gitmodules"
|
251
251
|
- ".rspec"
|
252
|
-
- ".ruby-version"
|
253
252
|
- CHANGELOG.md
|
254
253
|
- Gemfile
|
255
254
|
- Guardfile
|
@@ -289,6 +288,7 @@ files:
|
|
289
288
|
- lib/cody/help/start.md
|
290
289
|
- lib/cody/help/stop.md
|
291
290
|
- lib/cody/init.rb
|
291
|
+
- lib/cody/list.rb
|
292
292
|
- lib/cody/logs.rb
|
293
293
|
- lib/cody/project.rb
|
294
294
|
- lib/cody/role.rb
|
@@ -297,6 +297,7 @@ files:
|
|
297
297
|
- lib/cody/setting.rb
|
298
298
|
- lib/cody/stack.rb
|
299
299
|
- lib/cody/start.rb
|
300
|
+
- lib/cody/status.rb
|
300
301
|
- lib/cody/stop.rb
|
301
302
|
- lib/cody/tailer.rb
|
302
303
|
- lib/cody/update.rb
|
@@ -374,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
374
375
|
- !ruby/object:Gem::Version
|
375
376
|
version: '0'
|
376
377
|
requirements: []
|
377
|
-
rubygems_version: 3.
|
378
|
+
rubygems_version: 3.1.2
|
378
379
|
signing_key:
|
379
380
|
specification_version: 4
|
380
381
|
summary: Cody provides a beautiful DSL to create and manage AWS CodeBuild projects
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.5.6
|