awes_cli 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/ather +5 -0
- data/lib/awes_cli.rb +5 -0
- data/lib/build_app_image.rb +72 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 77e5eefdce88cb9bf280df1c12b03072a83c0e435383410e1a41b1074caacc94
|
4
|
+
data.tar.gz: 63a84f12bdf2874d0fa5a9ab5b8a205a3f04208284d9c918ecea658354526732
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 28699c477813def96fef6259122461590ebea3786b9fecfa41561b7cccc8a13263fdb6edb395b8710a79661a71073ccf1484b21414d85da1ffd9fcb34ca731ea
|
7
|
+
data.tar.gz: c1b67ca8631e92766835a395e76c50163b7394115cebaf6e89b8a0b1bf4ad971e64e84861a4ff8cc5e3c7c154c594bd0dd3e22567f9e8bc55df3313d140965a8
|
data/bin/ather
ADDED
data/lib/awes_cli.rb
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
class BuildAppImage
|
5
|
+
def main
|
6
|
+
options = get_options
|
7
|
+
|
8
|
+
gcr_url = "gcr.io/#{options[:project_id]}/#{options[:app_name]}"
|
9
|
+
|
10
|
+
image_url = build_image(gcr_url, options)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
def get_options
|
15
|
+
options = {}
|
16
|
+
|
17
|
+
require_options_keys = [:project_id, :app_name]
|
18
|
+
|
19
|
+
opt_parser = OptionParser.new do |opts|
|
20
|
+
opts.banner = "Usage: ./deploy/build.rb [options]"
|
21
|
+
|
22
|
+
opts.on("--project-id PROJECT_ID", "GCP project id [required or set env var PROJECT_ID]") do |val|
|
23
|
+
options[:project_id] = val
|
24
|
+
end
|
25
|
+
|
26
|
+
opts.on("--app-name APP_NAME", "K8s app name [required or set env var APP_NAME]") do |val|
|
27
|
+
options[:app_name] = val
|
28
|
+
end
|
29
|
+
|
30
|
+
opts.on("-h", "--help", "Prints this help") do
|
31
|
+
puts opts
|
32
|
+
exit
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
opt_parser.parse!
|
37
|
+
|
38
|
+
require_options_keys.each do |key|
|
39
|
+
options[key] ||= ENV[key.to_s.upcase]
|
40
|
+
if options[key].nil?
|
41
|
+
puts "ERROR: Required option --#{key.to_s.gsub('_', '-')} or set env var #{key.to_s.upcase} \n"
|
42
|
+
opt_parser.parse! %w[--help]
|
43
|
+
exit 1
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
options
|
48
|
+
end
|
49
|
+
|
50
|
+
def shell_cmd(cmd)
|
51
|
+
puts "EXECUTING : \e[32m\e[1m#{cmd}\e[22m\e[0m"
|
52
|
+
op = system(cmd)
|
53
|
+
if !op
|
54
|
+
puts "FAILED : \e[31m\e[1m#{cmd}\e[22m\e[0m"
|
55
|
+
exit 1
|
56
|
+
end
|
57
|
+
puts "SUCCESS : \e[32m\e[1m#{cmd}\e[22m\e[0m"
|
58
|
+
end
|
59
|
+
|
60
|
+
def build_image(gcr_url, options)
|
61
|
+
commit_image_tag = ENV['CI_COMMIT_SHORT_SHA'] || `git rev-parse --short HEAD`
|
62
|
+
time_image_tag=`TZ=IST-5:30 date +'%Y.%m.%d.%HH.%MM.%SS'`
|
63
|
+
image_url = "#{gcr_url}:#{commit_image_tag}".strip
|
64
|
+
project_id = options[:project_id]
|
65
|
+
|
66
|
+
shell_cmd("gcloud builds submit --project #{project_id} --timeout=20m --tag #{image_url} || true")
|
67
|
+
|
68
|
+
shell_cmd("gcloud container images add-tag --quiet #{image_url} #{gcr_url}:#{time_image_tag}")
|
69
|
+
|
70
|
+
image_url
|
71
|
+
end
|
72
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: awes_cli
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Umar Siddiqui
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-07-20 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Ather cli tool
|
14
|
+
email: umar.siddiqui@atherenergy.com
|
15
|
+
executables:
|
16
|
+
- ather
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- bin/ather
|
21
|
+
- lib/awes_cli.rb
|
22
|
+
- lib/build_app_image.rb
|
23
|
+
homepage: https://rubygems.org/gems/awes_cli
|
24
|
+
licenses:
|
25
|
+
- MIT
|
26
|
+
metadata: {}
|
27
|
+
post_install_message:
|
28
|
+
rdoc_options: []
|
29
|
+
require_paths:
|
30
|
+
- lib
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
requirements: []
|
42
|
+
rubygems_version: 3.1.4
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: Ather cli tool
|
46
|
+
test_files: []
|