airship_hoist 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c58223b753eabd70f219c55140d1f4c5d8764a91
4
+ data.tar.gz: 607b2e3398538a20c4b7f44bac8d60b68e0fc3e4
5
+ SHA512:
6
+ metadata.gz: 4b504bff7edf3e09e750602e272721c9884870196df82b8be3b7cc04781cbee3bdb3838f17a516fb0534ca4bb28d04c83d527247e1f62205672a8a95166bb762
7
+ data.tar.gz: e99d0fd8d5a9377a6575a92aef5429521e3771b568ade12391bec167e8f813afe9b2da59e3226d5c2b0fd024eda0d7755f14ce7fcf8023a565f46af70772a46a
@@ -0,0 +1,21 @@
1
+ require 'thor'
2
+
3
+ module Hoist
4
+ class ProjectGenerator < Thor::Group
5
+ include Thor::Actions
6
+
7
+ class_option :test_framework, :default => :test_unit
8
+
9
+ argument :bundle_identifier
10
+ argument :project_name
11
+
12
+ def self.source_root
13
+ File.dirname(__FILE__)
14
+ end
15
+
16
+ def create_fastfile
17
+ template('templates/fastfile.tt', "Fastfile")
18
+ end
19
+ end
20
+ end
21
+
@@ -0,0 +1,178 @@
1
+ # Customise this file, documentation can be found here:
2
+ # https://github.com/fastlane/fastlane/tree/master/fastlane/docs
3
+ # All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
4
+ # can also be listed using the `fastlane actions` command
5
+
6
+ # Change the syntax highlighting to Ruby
7
+ # All lines starting with a # are ignored when running `fastlane`
8
+
9
+ # If you want to automatically update fastlane if a new version is available:
10
+ # update_fastlane
11
+
12
+ # This is the minimum version number required.
13
+ # Update this, if you use features of a newer version
14
+ fastlane_version "1.107.0"
15
+
16
+ default_platform :ios
17
+
18
+ #for random hotel wi-fi behind firewalls.
19
+ ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t DAV"
20
+
21
+ platform :ios do
22
+ before_all do
23
+ # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
24
+ end
25
+
26
+ desc "Runs all the tests"
27
+ lane :test do
28
+ scan
29
+ end
30
+
31
+ desc "Sync certificates to local machine"
32
+ lane :certificates do
33
+ match(app_identifier: "<%= bundle_identifier %>", type: "appstore")
34
+ match(app_identifier: "<%= bundle_identifier %>", type: "development")
35
+ end
36
+
37
+
38
+ lane :set_build_number do
39
+ config = File.read '../package.json'
40
+ config_data = JSON.parse config
41
+ build_num = config_data["build"]
42
+
43
+ increment_build_number(xcodeproj: './ios/<%= project_name %>.xcodeproj', build_number: build_num)
44
+ end
45
+
46
+ lane :set_version_number do
47
+ config = File.read '../package.json'
48
+ config_data = JSON.parse config
49
+ version_num = config_data["version"]
50
+
51
+ increment_version_number(xcodeproj: './ios/<%= project_name %>.xcodeproj', version_number: version_num)
52
+ end
53
+
54
+ desc "Submit a new Beta Build to Apple TestFlight"
55
+ desc "This will also make sure the profile is up to date"
56
+ lane :beta do
57
+ puts ENV["PROVISIONING_PROFILE_SPECIFIER"]
58
+ match(type: "appstore") # more information: https://codesigning.guide
59
+ set_build_number
60
+ set_version_number
61
+ gym(project: './ios/<%= project_name %>.xcodeproj')
62
+ pilot
63
+
64
+ # sh "your_script.sh"
65
+ # You can also use other beta testing services here (run `fastlane actions`)
66
+ end
67
+
68
+ desc "Deploy a new version to the App Store"
69
+ lane :release do
70
+ # snapshot
71
+ match(type: "appstore")
72
+ gym # Build your app - more options available
73
+ deliver(force: true)
74
+ # frameit
75
+ end
76
+
77
+ # You can define as many lanes as you want
78
+
79
+ after_all do |lane|
80
+ # This block is called, only if the executed lane was successful
81
+
82
+ # slack(
83
+ # message: "Successfully deployed new App Update."
84
+ # )
85
+ end
86
+
87
+ error do |lane, exception|
88
+ # slack(
89
+ # message: exception.message,
90
+ # success: false
91
+ # )
92
+ end
93
+ end
94
+
95
+ platform :android do
96
+ lane :set_version_number do
97
+ config = File.read '../package.json'
98
+ config_data = JSON.parse config
99
+
100
+ version = config_data["version"]
101
+
102
+ path = '../android/app/build.gradle'
103
+ re = /versionName\s+"(\d+\.\d+\.\d+)"/
104
+
105
+ s = File.read(path)
106
+ s[re, 1] = version
107
+
108
+ f = File.new(path, 'w')
109
+ f.write(s)
110
+ f.close
111
+ end
112
+
113
+ lane :set_build_number do
114
+ config = File.read '../package.json'
115
+ config_data = JSON.parse config
116
+
117
+ build = config_data["build"]
118
+
119
+ path = '../android/app/build.gradle'
120
+ re = /versionCode\s+(\d+)/
121
+
122
+ s = File.read(path)
123
+ s[re, 1] = build
124
+
125
+ f = File.new(path, 'w')
126
+ f.write(s)
127
+ f.close
128
+ end
129
+
130
+ desc "Deploy a new version to the Google Play Store"
131
+ lane :alpha do
132
+ deploy(track: 'alpha')
133
+ end
134
+
135
+ lane :beta do
136
+ deploy(track: 'beta', env: 'production')
137
+ end
138
+
139
+ lane :release do
140
+ deploy(track: 'production', env: 'production')
141
+ end
142
+
143
+ lane :deploy do |options|
144
+ set_build_number
145
+ set_version_number
146
+
147
+ gradle \
148
+ task: "clean",
149
+ project_dir: "./android"
150
+
151
+ gradle(
152
+ task: "assemble",
153
+ build_type: "Release",
154
+ project_dir: "./android"
155
+ )
156
+
157
+ signed = sign_apk(
158
+ apk_path: "./android/app/build/outputs/apk/app-release-unsigned.apk",
159
+ keystore_path: "./fastlane/<%= project_name %>.jks",
160
+ alias: "<%= project_name %>"
161
+ )
162
+
163
+ zipalign(apk_path: "#{lane_context[SharedValues::SIGNED_APK_PATH]}")
164
+
165
+ supply(
166
+ track: options[:track],
167
+ json_key: "fastlane/key.json",
168
+ package_name: "<%= bundle_identifier %>",
169
+ apk: "#{lane_context[SharedValues::SIGNED_APK_PATH]}"
170
+ )
171
+ end
172
+ end
173
+
174
+ # More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
175
+ # All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
176
+
177
+ # fastlane reports which actions are used
178
+ # No personal data is recorded. Learn more at https://github.com/fastlane/enhancer
data/lib/hoist.rb ADDED
@@ -0,0 +1,11 @@
1
+ require 'thor'
2
+ require 'hoist/project_generator'
3
+
4
+ module Hoist
5
+ class Cli < Thor
6
+ desc "fastfile", "Generates a fastfile"
7
+ register(Hoist::ProjectGenerator, "generate", "generate", "Generates a fastfile, etc...")
8
+ end
9
+ end
10
+
11
+ Hoist::Cli.start( ARGV )
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: airship_hoist
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Airship
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-04-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.14'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry-nav
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Hoist helps you generate and manage your mobile apps, particularly those
84
+ built with React Native.
85
+ email: builders@teamairship.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - lib/hoist.rb
91
+ - lib/hoist/project_generator.rb
92
+ - lib/hoist/templates/fastfile.tt
93
+ homepage: http://rubygems.org/gems/airship_hoist
94
+ licenses:
95
+ - MIT
96
+ metadata: {}
97
+ post_install_message:
98
+ rdoc_options: []
99
+ require_paths:
100
+ - lib
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ requirements: []
112
+ rubyforge_project:
113
+ rubygems_version: 2.6.8
114
+ signing_key:
115
+ specification_version: 4
116
+ summary: Making it easy to generate and deploy your mobile applications.
117
+ test_files: []