build_47 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/build_47 +43 -0
- data/lib/build_47.rb +25 -0
- metadata +65 -0
data/bin/build_47
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
require 'build_47'
|
5
|
+
|
6
|
+
# replace me with https://github.com/visionmedia/commander !
|
7
|
+
options = {}
|
8
|
+
OptionParser.new do |opts|
|
9
|
+
opts.on("-t", "--token TOKEN", "Require processor class name") do |t|
|
10
|
+
options[:token] = t
|
11
|
+
end
|
12
|
+
opts.on("-a", "--app_id id", "App's ID") do |t|
|
13
|
+
options[:app_id] = t
|
14
|
+
end
|
15
|
+
opts.on("-e", "--environment ENVIRONMENT", "Select environment -- Test or Production") do |t|
|
16
|
+
options[:environment] = t
|
17
|
+
end
|
18
|
+
opts.on("-p", "--platform PLATFORM", "Require platform, such as iOS or Android") do |t|
|
19
|
+
options[:platform] = t
|
20
|
+
end
|
21
|
+
opts.on("-f", "--file FULL PATH", "full path to file for uploading") do |t|
|
22
|
+
options[:path] = t
|
23
|
+
end
|
24
|
+
opts.on("-r", "--release_notes RELEASE NOTES", "release notes -- not required") do |t|
|
25
|
+
options[:notes] = t
|
26
|
+
end
|
27
|
+
end.parse!
|
28
|
+
|
29
|
+
options[:environment] ||= 'Production'
|
30
|
+
options[:platform] ||= 'iOS'
|
31
|
+
options[:notes] ||= 'none'
|
32
|
+
|
33
|
+
puts "you must provide a path to a particular build file" if options[:path].nil?
|
34
|
+
puts "you must provide a token (i.e. -t <token>). You can find this for your account in the App47 dashbard)" if options[:token].nil?
|
35
|
+
puts "you must provide an App Id (i.e. -a <app_id>). You can find this for your account in the App47 dashbard)" if options[:app_id].nil?
|
36
|
+
|
37
|
+
if( !options[:path].nil? && !options[:token].nil? && !options[:app_id].nil? )
|
38
|
+
build = Build47.new(options[:token])
|
39
|
+
build.push(options[:app_id], options[:platform], options[:environment], options[:path], options[:notes])
|
40
|
+
else
|
41
|
+
puts "i.e build_47 -t 'some token' -a some app_id -f path_to_file"
|
42
|
+
puts "default arguments are -e Production -p iOS -r notes so if you want to push to Test or declare this as an Android build, use those flags."
|
43
|
+
end
|
data/lib/build_47.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
|
3
|
+
class Build47
|
4
|
+
|
5
|
+
def initialize(account_token)
|
6
|
+
@token = account_token
|
7
|
+
end
|
8
|
+
|
9
|
+
def push(app_id, platform, env, file_path, release_notes)
|
10
|
+
build_doc = {
|
11
|
+
:build => {
|
12
|
+
:platform => platform,
|
13
|
+
:environment => env,
|
14
|
+
:upload => File.new(file_path),
|
15
|
+
:build_file => file_path.split('/')[-1],
|
16
|
+
:release_notes => release_notes
|
17
|
+
}
|
18
|
+
}
|
19
|
+
response = RestClient.post "https://cirrus.app47.com/api/apps/#{app_id}/builds", build_doc, {"X-Token"=> @token, :accept => :json}
|
20
|
+
puts "response code: #{response.code}"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
|
metadata
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: build_47
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.5
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Andrew Glover
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2012-07-11 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rest-client
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.6.0
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
26
|
+
description: A simple Ruby utility for pushing builds to App47
|
27
|
+
email: aglover@app47.com
|
28
|
+
executables:
|
29
|
+
- build_47
|
30
|
+
extensions: []
|
31
|
+
|
32
|
+
extra_rdoc_files: []
|
33
|
+
|
34
|
+
files:
|
35
|
+
- lib/build_47.rb
|
36
|
+
- bin/build_47
|
37
|
+
homepage: https://github.com/App47/build_47
|
38
|
+
licenses: []
|
39
|
+
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
none: false
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: "0"
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: "0"
|
57
|
+
requirements: []
|
58
|
+
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 1.8.15
|
61
|
+
signing_key:
|
62
|
+
specification_version: 3
|
63
|
+
summary: Pushes an iOS or Android build file to App47 for distribution via an App store.
|
64
|
+
test_files: []
|
65
|
+
|