fastlane-craft 1.2.20 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d0d618deaa5a2cff0c480fabe7d4eb532d71169ab7aa652ddb58b2163f5607b
|
4
|
+
data.tar.gz: ee70728a5f9842eb4bd5afcf11da80affc887ed4be11e36cf39203ef51f720a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51b34e57ec9f993e6ea5da4c385742ea2b59be4afcce69b500d930bd0a348d98962304950665d87081af43c36498dc730a35074a5254fb342fded32e5ac94565
|
7
|
+
data.tar.gz: bb572c901ee9dec55f96fb69eb6e09a5d4b8568a2017a5bf242b9ab478af22f04c758486803ea6b32bef602e0f581a6f542dd2a996be050d0bbae285bc9cc864
|
data/lib/fastlane-craft.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'app_release_manager'
|
2
2
|
|
3
3
|
module Fastlane
|
4
4
|
module Actions
|
5
|
-
class
|
5
|
+
class AppReleaseAction < Action
|
6
6
|
def self.run(params)
|
7
|
-
FastlaneCraft::
|
7
|
+
FastlaneCraft::AppReleaseManager.new(
|
8
8
|
params[:scheme],
|
9
9
|
params[:info_plist],
|
10
10
|
params[:extra_info_plists],
|
11
11
|
params[:branch],
|
12
|
-
params[:
|
12
|
+
params[:version],
|
13
13
|
params[:target_suffix]
|
14
14
|
).release
|
15
15
|
end
|
@@ -19,11 +19,11 @@ module Fastlane
|
|
19
19
|
#####################################################
|
20
20
|
|
21
21
|
def self.description
|
22
|
-
'Release app according to the
|
22
|
+
'Release app according to the version'
|
23
23
|
end
|
24
24
|
|
25
25
|
def self.details
|
26
|
-
'Release app according to the
|
26
|
+
'Release app according to the version'
|
27
27
|
end
|
28
28
|
|
29
29
|
def self.available_options
|
@@ -62,8 +62,8 @@ module Fastlane
|
|
62
62
|
end
|
63
63
|
),
|
64
64
|
FastlaneCore::ConfigItem.new(
|
65
|
-
key: :
|
66
|
-
description: '
|
65
|
+
key: :version,
|
66
|
+
description: 'app version (like 1.1.0)',
|
67
67
|
optional: true
|
68
68
|
),
|
69
69
|
FastlaneCore::ConfigItem.new(
|
@@ -76,16 +76,16 @@ module Fastlane
|
|
76
76
|
|
77
77
|
def self.example_code
|
78
78
|
[
|
79
|
-
'
|
79
|
+
'app_release(
|
80
80
|
scheme: "AppScheme",
|
81
81
|
info_plist: "/path/to/info/plist"
|
82
82
|
)',
|
83
|
-
'
|
83
|
+
'app_release(
|
84
84
|
scheme: "Application",
|
85
85
|
info_plist: "/path/to/info/plist",
|
86
86
|
extra_info_plists: ["plist1", "plist2"],
|
87
87
|
branch: "master",
|
88
|
-
|
88
|
+
version: "2.3.0",
|
89
89
|
target_suffix: "_sfx"
|
90
90
|
)'
|
91
91
|
]
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require_relative 'info_plist_controller'
|
2
|
+
require 'fastlane_core/ui/ui'
|
3
|
+
|
4
|
+
module FastlaneCraft
|
5
|
+
module SharedValues
|
6
|
+
APP_RELEASE_VERSION = 'APP_RELEASE_VERSION'.freeze
|
7
|
+
APP_RELEASE_BUILD_NUMBER = 'APP_RELEASE_BUILD_NUMBER'.freeze
|
8
|
+
APP_RELEASE_VERSION_TAG = 'APP_RELEASE_VERSION_TAG'.freeze
|
9
|
+
end
|
10
|
+
|
11
|
+
class AppReleaseManager
|
12
|
+
include FastlaneCore
|
13
|
+
include Gem
|
14
|
+
|
15
|
+
def initialize(scheme, info_plist, extra_info_plists, branch, version = nil, target_suffix = nil)
|
16
|
+
raise 'Invalid Branch' if branch.empty?
|
17
|
+
raise 'Invalid Scheme' if scheme.empty?
|
18
|
+
raise 'Invalid Version' if version && !version_valid?(version)
|
19
|
+
|
20
|
+
@scheme = scheme
|
21
|
+
@branch = branch
|
22
|
+
@target_suffix = target_suffix
|
23
|
+
@plist_controller = InfoPlistController.new(info_plist, extra_info_plists)
|
24
|
+
@version = Version.new(version) || @plist_controller.version
|
25
|
+
end
|
26
|
+
|
27
|
+
def release
|
28
|
+
bump_version
|
29
|
+
archive
|
30
|
+
upload_to_tf
|
31
|
+
update_env
|
32
|
+
@plist_controller.bump_build_version_patch
|
33
|
+
push_version_bump
|
34
|
+
|
35
|
+
remove_last_git_tag_if_needed
|
36
|
+
push_git_tag
|
37
|
+
end
|
38
|
+
|
39
|
+
def bump_version
|
40
|
+
msg = 'Given version is less than the actual app version'
|
41
|
+
UI.user_error! msg if @version < @plist_controller.version
|
42
|
+
return unless @version > @plist_controller.version
|
43
|
+
|
44
|
+
@plist_controller.set_version(@version)
|
45
|
+
@plist_controller.set_build_version(Version.new(@version.to_s + '.0'))
|
46
|
+
UI.success "Version was successfully bumped to #{version_dump}"
|
47
|
+
end
|
48
|
+
|
49
|
+
def upload_to_tf
|
50
|
+
cmd = 'fastlane pilot upload --skip_submission --skip_waiting_for_build_processing'
|
51
|
+
raise "TF uploading Failed! Command execution error: '#{cmd}'" unless system(cmd)
|
52
|
+
end
|
53
|
+
|
54
|
+
def update_env
|
55
|
+
ENV[SharedValues::APP_RELEASE_VERSION] = @plist_controller.version.to_s
|
56
|
+
ENV[SharedValues::APP_RELEASE_BUILD_NUMBER] = @plist_controller.build_version.to_s
|
57
|
+
ENV[SharedValues::APP_RELEASE_VERSION_TAG] = version_dump
|
58
|
+
end
|
59
|
+
|
60
|
+
def push_version_bump
|
61
|
+
cmd = "git add . && git commit -m 'Bump version to #{version_dump}'"
|
62
|
+
raise "Git Commit Failed! Command execution error: '#{cmd}'" unless system(cmd)
|
63
|
+
|
64
|
+
cmd = "git push origin HEAD:#{@branch}"
|
65
|
+
raise "Git Push Failed! Command execution error: '#{cmd}'" unless system(cmd)
|
66
|
+
end
|
67
|
+
|
68
|
+
def archive
|
69
|
+
cmd = "fastlane gym --configuration Release --scheme #{@scheme} --export_method app-store"
|
70
|
+
raise "Archiving failed! Command execution error: '#{cmd}'" unless system(cmd)
|
71
|
+
end
|
72
|
+
|
73
|
+
def push_git_tag
|
74
|
+
cmd = "git tag #{git_tag} && git push --tags"
|
75
|
+
raise "Tag push failed! Command execution error: '#{cmd}'" unless system(cmd)
|
76
|
+
end
|
77
|
+
|
78
|
+
def remove_last_git_tag
|
79
|
+
tag = last_git_tag
|
80
|
+
cmd = "git tag -d #{tag} && git push origin :refs/tags/#{tag}"
|
81
|
+
raise "Git tag deletion failed! Command execution error: '#{cmd}'" unless system(cmd)
|
82
|
+
end
|
83
|
+
|
84
|
+
def remove_last_git_tag_if_needed
|
85
|
+
remove_last_git_tag if last_git_tag_version == @version
|
86
|
+
end
|
87
|
+
|
88
|
+
def git_tag
|
89
|
+
return @version.to_s unless @target_suffix
|
90
|
+
"#{@version}_#{@target_suffix}"
|
91
|
+
end
|
92
|
+
|
93
|
+
def last_git_tag_version
|
94
|
+
tag = last_git_tag.match(/[0-9.]+/)[0]
|
95
|
+
version_valid?(tag) ? Version.new(tag) : nil
|
96
|
+
end
|
97
|
+
|
98
|
+
def last_git_tag
|
99
|
+
Actions.last_git_tag_name
|
100
|
+
end
|
101
|
+
|
102
|
+
def version_valid?(v)
|
103
|
+
v.to_s.match?(/^\d\.\d\.\d{1,3}$/)
|
104
|
+
end
|
105
|
+
|
106
|
+
def version_dump
|
107
|
+
"#{@plist_controller.version}/#{@plist_controller.build_version}"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-craft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sroik
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-03-
|
12
|
+
date: 2018-03-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fastlane
|
@@ -116,9 +116,9 @@ extensions: []
|
|
116
116
|
extra_rdoc_files: []
|
117
117
|
files:
|
118
118
|
- lib/fastlane-craft.rb
|
119
|
+
- lib/fastlane-craft/app_release.rb
|
120
|
+
- lib/fastlane-craft/app_release_manager.rb
|
119
121
|
- lib/fastlane-craft/info_plist_controller.rb
|
120
|
-
- lib/fastlane-craft/tag_release.rb
|
121
|
-
- lib/fastlane-craft/tag_release_manager.rb
|
122
122
|
- lib/fastlane-craft/telegram.rb
|
123
123
|
- lib/fastlane-craft/telegram_notifier.rb
|
124
124
|
- lib/fastlane-craft/version.rb
|
@@ -1,86 +0,0 @@
|
|
1
|
-
require_relative 'info_plist_controller'
|
2
|
-
require 'fastlane_core/ui/ui'
|
3
|
-
|
4
|
-
module FastlaneCraft
|
5
|
-
module SharedValues
|
6
|
-
TG_RELEASE_VERSION = 'TG_RELEASE_VERSION'.freeze
|
7
|
-
TG_RELEASE_BUILD_NUMBER = 'TG_RELEASE_BUILD_NUMBER'.freeze
|
8
|
-
TG_RELEASE_VERSION_TAG = 'TG_RELEASE_VERSION_TAG'.freeze
|
9
|
-
end
|
10
|
-
|
11
|
-
class TagReleaseManager
|
12
|
-
include FastlaneCore
|
13
|
-
include Gem
|
14
|
-
|
15
|
-
def initialize(scheme, info_plist, extra_info_plists, branch, tag, target_suffix = nil)
|
16
|
-
raise 'Invalid Branch' if branch.empty?
|
17
|
-
raise 'Invalid Scheme' if scheme.empty?
|
18
|
-
raise 'Invalid Tag' if tag.nil? || tag.empty?
|
19
|
-
|
20
|
-
@scheme = scheme
|
21
|
-
@branch = branch
|
22
|
-
@tag = tag
|
23
|
-
@target_suffix = target_suffix
|
24
|
-
@plist_controller = InfoPlistController.new(info_plist, extra_info_plists)
|
25
|
-
end
|
26
|
-
|
27
|
-
def release
|
28
|
-
bump_version
|
29
|
-
archive
|
30
|
-
upload_to_tf
|
31
|
-
update_env
|
32
|
-
@plist_controller.bump_build_version_patch
|
33
|
-
push_version_bump
|
34
|
-
end
|
35
|
-
|
36
|
-
def bump_version
|
37
|
-
msg = 'The version of the tag is less than the actual app version'
|
38
|
-
UI.user_error! msg if tag_version < @plist_controller.version
|
39
|
-
UI.user_error! "Tag '#{@tag}' has no suffix: '#{@target_suffix}'" unless tag_valid?
|
40
|
-
return unless tag_version > @plist_controller.version
|
41
|
-
|
42
|
-
@plist_controller.set_version(tag_version)
|
43
|
-
@plist_controller.set_build_version(Version.new(tag_version.to_s + '.0'))
|
44
|
-
UI.success "Version was successfully bumped to #{version_dump}"
|
45
|
-
end
|
46
|
-
|
47
|
-
def upload_to_tf
|
48
|
-
cmd = 'fastlane pilot upload --skip_submission --skip_waiting_for_build_processing'
|
49
|
-
raise "TF uploading Failed! Command execution error: '#{cmd}'" unless system(cmd)
|
50
|
-
end
|
51
|
-
|
52
|
-
def update_env
|
53
|
-
ENV[SharedValues::TG_RELEASE_VERSION] = @plist_controller.version.to_s
|
54
|
-
ENV[SharedValues::TG_RELEASE_BUILD_NUMBER] = @plist_controller.build_version.to_s
|
55
|
-
ENV[SharedValues::TG_RELEASE_VERSION_TAG] = version_dump
|
56
|
-
end
|
57
|
-
|
58
|
-
def push_version_bump
|
59
|
-
cmd = "git add . && git commit -m 'Bump version to #{version_dump}'"
|
60
|
-
raise "Git Commit Failed! Command execution error: '#{cmd}'" unless system(cmd)
|
61
|
-
|
62
|
-
cmd = "git push origin HEAD:#{@branch}"
|
63
|
-
raise "Git Push Failed! Command execution error: '#{cmd}'" unless system(cmd)
|
64
|
-
end
|
65
|
-
|
66
|
-
def tag_version
|
67
|
-
version_format = /[0-9.]+/
|
68
|
-
tag = @tag.match(version_format)[0]
|
69
|
-
Version.new(tag)
|
70
|
-
end
|
71
|
-
|
72
|
-
def tag_valid?
|
73
|
-
return true if @target_suffix.nil? || @target_suffix.empty?
|
74
|
-
@tag.end_with? @target_suffix
|
75
|
-
end
|
76
|
-
|
77
|
-
def archive
|
78
|
-
cmd = "fastlane gym --configuration Release --scheme #{@scheme} --export_method app-store"
|
79
|
-
raise "Archiving failed! Command execution error: '#{cmd}'" unless system(cmd)
|
80
|
-
end
|
81
|
-
|
82
|
-
def version_dump
|
83
|
-
"#{@plist_controller.version}/#{@plist_controller.build_version}"
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|