fastlane 1.4.0 → 1.5.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
  SHA1:
3
- metadata.gz: 76053191670da750db1c89dbeb5f6dc53278aa61
4
- data.tar.gz: 840df7995bd6edb21e0d97b4446b2fa683c87a15
3
+ metadata.gz: 621c5de5ce077702e3f965ace42c44c15d2a307d
4
+ data.tar.gz: 64b84fcd0e219a19fd4f43c2f10c3e4ceea54dba
5
5
  SHA512:
6
- metadata.gz: ce84a181f1e348754dacafdb3d7d0ad54c25f7fa0efc3c5de7042380dbba9dad267ce90a2a048135365333a108fb54754e5ef53e78c67a31f3ebfd626aa9bff8
7
- data.tar.gz: 1be702107bb3a8aaf13155435ec0828a1df31ebf1be0a54ec9eadb2c36384cb4948e0cc56af9fc52a2be873ee491dc00316ed034df653f0a02f79ef7b0360be3
6
+ metadata.gz: 2e8c763630fa12412d7cc1cfb2f1ac3955e5e8525317644ef287ed44541a0e7ea389b6fe500ed6cb9b795b3365475e3599e4ec0b0cb5e6581921b0b74258ba63
7
+ data.tar.gz: c526901b9db016b63b6d8c30f240f8782976b48cdc3258e1dbc03080727499a386d1442b6f9947d0ab20eda8dd43f9315e11f7d5b7103bfae3ef862e11e79fc7
@@ -51,9 +51,9 @@ module Fastlane
51
51
  ]
52
52
  end
53
53
 
54
- def self.author
54
+ def self.authors
55
55
  # So no one will ever forget your contribution to fastlane :) You are awesome btw!
56
- '[Your GitHub/Twitter Name]'
56
+ ["Your GitHub/Twitter Name"]
57
57
  end
58
58
 
59
59
  def self.is_supported?(platform)
@@ -34,7 +34,11 @@ module Fastlane
34
34
  end
35
35
 
36
36
  def self.author
37
- "KrauseFx"
37
+ nil
38
+ end
39
+
40
+ def self.authors
41
+ nil
38
42
  end
39
43
 
40
44
  def self.is_supported?(platform)
@@ -0,0 +1,38 @@
1
+ module Fastlane
2
+ module Actions
3
+ # Adds a hg tag to the current commit
4
+ class HgAddTagAction < Action
5
+ def self.run(options)
6
+ tag = options[:tag]
7
+
8
+ Helper.log.info "Adding mercurial tag '#{tag}' 🎯."
9
+
10
+ command = "hg tag \"#{tag}\""
11
+ return command if Helper.is_test?
12
+
13
+ Actions.sh(command)
14
+ end
15
+
16
+ def self.description
17
+ "This will add a hg tag to the current branch"
18
+ end
19
+
20
+ def self.available_options
21
+ [
22
+ FastlaneCore::ConfigItem.new(key: :tag,
23
+ env_name: "FL_HG_TAG_TAG",
24
+ description: "Tag to create")
25
+ ]
26
+ end
27
+
28
+ def self.author
29
+ # credits to lmirosevic for original git version
30
+ "sjrmanning"
31
+ end
32
+
33
+ def self.is_supported?(platform)
34
+ true
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,137 @@
1
+ module Fastlane
2
+ module Actions
3
+ # Commits version bump.
4
+ class HgCommitVersionBumpAction < Action
5
+ def self.run(params)
6
+ require 'xcodeproj'
7
+ require 'pathname'
8
+ require 'set'
9
+ require 'shellwords'
10
+
11
+ xcodeproj_path = params[:xcodeproj] ? File.expand_path(File.join('.', params[:xcodeproj])) : nil
12
+
13
+ if Helper.is_test?
14
+ xcodeproj_path = "/tmp/Test.xcodeproj"
15
+ end
16
+
17
+ # get the repo root path
18
+ repo_path = Helper.is_test? ? '/tmp/repo' : Actions.sh('hg root').strip
19
+ repo_pathname = Pathname.new(repo_path)
20
+
21
+ if xcodeproj_path
22
+ # ensure that the xcodeproj passed in was OK
23
+ unless Helper.is_test?
24
+ raise "Could not find the specified xcodeproj: #{xcodeproj_path}" unless File.directory?(xcodeproj_path)
25
+ end
26
+ else
27
+ # find an xcodeproj (ignoring the Cocoapods one)
28
+ xcodeproj_paths = Dir[File.expand_path(File.join(repo_path, '**/*.xcodeproj'))].reject { |path| /Pods\/.*.xcodeproj/ =~ path }
29
+
30
+ # no projects found: error
31
+ raise 'Could not find a .xcodeproj in the current repository\'s working directory.'.red if xcodeproj_paths.count == 0
32
+
33
+ # too many projects found: error
34
+ if xcodeproj_paths.count > 1
35
+ relative_projects = xcodeproj_paths.map { |e| Pathname.new(e).relative_path_from(repo_pathname).to_s }.join("\n")
36
+ raise "Found multiple .xcodeproj projects in the current repository's working directory. Please specify your app's main project: \n#{relative_projects}".red
37
+ end
38
+
39
+ # one project found: great
40
+ xcodeproj_path = xcodeproj_paths.first
41
+ end
42
+
43
+ # find the pbxproj path, relative to hg directory
44
+ if Helper.is_test?
45
+ hg_dirty_files = params[:test_dirty_files].split(",")
46
+ expected_changed_files = params[:test_expected_files].split(",")
47
+ else
48
+ pbxproj_pathname = Pathname.new(File.join(xcodeproj_path, 'project.pbxproj'))
49
+ pbxproj_path = pbxproj_pathname.relative_path_from(repo_pathname).to_s
50
+
51
+ # find the info_plist files
52
+ project = Xcodeproj::Project.open(xcodeproj_path)
53
+ info_plist_files = project.objects.select { |object| object.isa == 'XCBuildConfiguration' }.map(&:to_hash).map { |object_hash| object_hash['buildSettings'] }.select { |build_settings| build_settings.key?('INFOPLIST_FILE') }.map { |build_settings| build_settings['INFOPLIST_FILE'] }.uniq.map { |info_plist_path| Pathname.new(File.expand_path(File.join(xcodeproj_path, '..', info_plist_path))).relative_path_from(repo_pathname).to_s }
54
+
55
+ # create our list of files that we expect to have changed, they should all be relative to the project root, which should be equal to the hg workdir root
56
+ expected_changed_files = []
57
+ expected_changed_files << pbxproj_path
58
+ expected_changed_files << info_plist_files
59
+ expected_changed_files.flatten!.uniq!
60
+
61
+ # get the list of files that have actually changed in our hg workdir
62
+ hg_dirty_files = Actions.sh('hg status -n').split("\n")
63
+ end
64
+
65
+ # little user hint
66
+ raise 'No file changes picked up. Make sure you run the `increment_build_number` action first.'.red if hg_dirty_files.empty?
67
+
68
+ # check if the files changed are the ones we expected to change (these should be only the files that have version info in them)
69
+ dirty_set = Set.new(hg_dirty_files.map(&:downcase))
70
+ expected_set = Set.new(expected_changed_files.map(&:downcase))
71
+ changed_files_as_expected = dirty_set.subset? expected_set
72
+ unless changed_files_as_expected
73
+ unless params[:force]
74
+ raise "Found unexpected uncommited changes in the working directory. Expected these files to have changed: \n#{expected_changed_files.join("\n")}.\nBut found these actual changes: \n#{hg_dirty_files.join("\n")}.\nMake sure you have cleaned up the build artifacts and are only left with the changed version files at this stage in your lane, and don't touch the working directory while your lane is running. You can also use the :force option to bypass this check, and always commit a version bump regardless of the state of the working directory.".red
75
+ end
76
+ end
77
+
78
+ # create a commit with a message
79
+ command = "hg commit -m '#{params[:message]}'"
80
+ return command if Helper.is_test?
81
+ begin
82
+ Actions.sh(command)
83
+
84
+ Helper.log.info "Committed \"#{params[:message]}\" 💾.".green
85
+ rescue => ex
86
+ Helper.log.info "Didn't commit any changes. 😐".yellow
87
+ end
88
+ end
89
+
90
+ def self.description
91
+ "This will commit a version bump to the hg repo"
92
+ end
93
+
94
+ def self.available_options
95
+ [
96
+ FastlaneCore::ConfigItem.new(key: :message,
97
+ env_name: "FL_COMMIT_BUMP_MESSAGE",
98
+ description: "The commit message when committing the version bump",
99
+ default_value: "Version Bump"),
100
+ FastlaneCore::ConfigItem.new(key: :xcodeproj,
101
+ env_name: "FL_BUILD_NUMBER_PROJECT",
102
+ description: "The path to your project file (Not the workspace). If you have only one, this is optional",
103
+ optional: true,
104
+ verify_block: Proc.new do |value|
105
+ raise "Please pass the path to the project, not the workspace".red if value.include?"workspace"
106
+ raise "Could not find Xcode project".red unless File.exists?(value)
107
+ end),
108
+ FastlaneCore::ConfigItem.new(key: :force,
109
+ env_name: "FL_FORCE_COMMIT",
110
+ description: "Forces the commit, even if other files than the ones containing the version number have been modified",
111
+ optional: true,
112
+ default_value: false,
113
+ is_string: false),
114
+ FastlaneCore::ConfigItem.new(key: :test_dirty_files,
115
+ env_name: "FL_HG_COMMIT_TEST_DIRTY_FILES",
116
+ description: "A list of dirty files passed in for testing",
117
+ optional: true,
118
+ default_value: "file1, file2"),
119
+ FastlaneCore::ConfigItem.new(key: :test_expected_files,
120
+ env_name: "FL_HG_COMMIT_TEST_EXP_FILES",
121
+ description: "A list of expected changed files passed in for testin",
122
+ optional: true,
123
+ default_value: "file1, file2")
124
+ ]
125
+ end
126
+
127
+ def self.author
128
+ # credits to lmirosevic for original git version
129
+ "sjrmanning"
130
+ end
131
+
132
+ def self.is_supported?(platform)
133
+ true
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,39 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ HG_REPO_WAS_CLEAN_ON_START = :HG_REPO_WAS_CLEAN_ON_START
5
+ end
6
+ # Raises an exception and stop the lane execution if the repo is not in a clean state
7
+ class HgEnsureCleanStatusAction < Action
8
+ def self.run(params)
9
+ repo_clean = `hg status`.empty?
10
+
11
+ if repo_clean
12
+ Helper.log.info 'Mercurial status is clean, all good! 😎'.green
13
+ Actions.lane_context[SharedValues::HG_REPO_WAS_CLEAN_ON_START] = true
14
+ else
15
+ raise 'Mercurial repository is dirty! Please ensure the repo is in a clean state by commiting/stashing/discarding all changes first.'.red
16
+ end
17
+ end
18
+
19
+ def self.description
20
+ "Raises an exception if there are uncommited hg changes"
21
+ end
22
+
23
+ def self.output
24
+ [
25
+ ['HG_REPO_WAS_CLEAN_ON_START', 'Stores the fact that the hg repo was clean at some point']
26
+ ]
27
+ end
28
+
29
+ def self.author
30
+ # credits to lmirosevic for original git version
31
+ "sjrmanning"
32
+ end
33
+
34
+ def self.is_supported?(platform)
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,47 @@
1
+ module Fastlane
2
+ module Actions
3
+ # Pushes commits to the remote hg repo
4
+ class HgPushAction < Action
5
+ def self.run(params)
6
+
7
+ command = ['hg', 'push']
8
+
9
+ command << '--force' if params[:force]
10
+ command << params[:destination] unless params[:destination].empty?
11
+
12
+ return command.join(' ') if Helper.is_test?
13
+
14
+ Actions.sh(command.join(' '))
15
+ Helper.log.info 'Successfully pushed changes to remote 🚀.'.green
16
+ end
17
+
18
+ def self.description
19
+ "This will push changes to the remote hg repository"
20
+ end
21
+
22
+ def self.available_options
23
+ [
24
+ FastlaneCore::ConfigItem.new(key: :force,
25
+ env_name: "FL_HG_PUSH_FORCE",
26
+ description: "Force push to remote. Defaults to false",
27
+ is_string: false,
28
+ default_value: false),
29
+ FastlaneCore::ConfigItem.new(key: :destination,
30
+ env_name: "FL_HG_PUSH_DESTINATION",
31
+ description: "The destination to push to",
32
+ default_value: '',
33
+ optional: true)
34
+ ]
35
+ end
36
+
37
+ def self.author
38
+ # credits to lmirosevic for original git version
39
+ "sjrmanning"
40
+ end
41
+
42
+ def self.is_supported?(platform)
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
@@ -99,7 +99,7 @@ module Fastlane
99
99
  default_value: "1"),
100
100
  FastlaneCore::ConfigItem.new(key: :release_type,
101
101
  env_name: "FL_HOCKEY_RELEASE_TYPE",
102
- description: "Release type of the app",
102
+ description: "Release type of the app: 0 = Beta (default), 1 = Store, 2 = Alpha, 3 = Enterprise",
103
103
  default_value: "0"),
104
104
  FastlaneCore::ConfigItem.new(key: :mandatory,
105
105
  env_name: "FL_HOCKEY_MANDATORY",
@@ -109,6 +109,10 @@ module Fastlane
109
109
  env_name: "FL_HOCKEY_TEAMS",
110
110
  description: "Comma separated list of team ID numbers to which this build will be restricted",
111
111
  optional: true),
112
+ FastlaneCore::ConfigItem.new(key: :users,
113
+ env_name: "FL_HOCKEY_USERS",
114
+ description: "Comma separated list of user ID numbers to which this build will be restricted",
115
+ optional: true),
112
116
  FastlaneCore::ConfigItem.new(key: :tags,
113
117
  env_name: "FL_HOCKEY_TAGS",
114
118
  description: "Comma separated list of tags which will receive access to the build",
@@ -51,6 +51,10 @@ module Fastlane
51
51
  def self.is_supported?(platform)
52
52
  [:ios, :mac].include?platform
53
53
  end
54
+
55
+ def self.authors
56
+ ["KrauseFx", "tadpol"]
57
+ end
54
58
  end
55
59
  end
56
60
  end
@@ -31,6 +31,10 @@ module Fastlane
31
31
  "Makes sure a valid push profile is active and creates a new one if needed"
32
32
  end
33
33
 
34
+ def self.author
35
+ "KrauseFx"
36
+ end
37
+
34
38
  def self.details
35
39
  [
36
40
  "Additionally to the available options, you can also specify a block that only gets executed if a new",
@@ -39,6 +39,7 @@ module Fastlane
39
39
  params[:acl] = config[:acl]
40
40
  params[:source] = config[:source]
41
41
  params[:path] = config[:path]
42
+ params[:upload_metadata] = config[:upload_metadata]
42
43
  params[:plist_template_path] = config[:plist_template_path]
43
44
  params[:html_template_path] = config[:html_template_path]
44
45
  params[:html_file_name] = config[:html_file_name]
@@ -79,15 +80,6 @@ module Fastlane
79
80
  Helper.log.debug command
80
81
  Actions.sh command
81
82
 
82
- #####################################
83
- #
84
- # html and plist building
85
- #
86
- #####################################
87
-
88
- # Gets info used for the plist
89
- bundle_id, bundle_version, title, full_version = get_ipa_info( ipa_file )
90
-
91
83
  # Gets URL for IPA file
92
84
  url_part = expand_path_with_substitutions_from_ipa_plist( ipa_file, s3_path )
93
85
  ipa_file_name = File.basename(ipa_file)
@@ -103,6 +95,19 @@ module Fastlane
103
95
  ENV[SharedValues::S3_DSYM_OUTPUT_PATH.to_s] = dsym_url
104
96
  end
105
97
 
98
+ if params[:upload_metadata] == false
99
+ return true
100
+ end
101
+
102
+ #####################################
103
+ #
104
+ # html and plist building
105
+ #
106
+ #####################################
107
+
108
+ # Gets info used for the plist
109
+ bundle_id, bundle_version, title, full_version = get_ipa_info( ipa_file )
110
+
106
111
  # Creating plist and html names
107
112
  plist_file_name = "#{url_part}#{title}.plist"
108
113
  plist_url = "https://#{s3_subdomain}.amazonaws.com/#{s3_bucket}/#{plist_file_name}"
@@ -271,6 +276,11 @@ module Fastlane
271
276
  description: "zipped .dsym package for the build ",
272
277
  optional: true,
273
278
  default_value: Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH]),
279
+ FastlaneCore::ConfigItem.new(key: :upload_metadata,
280
+ env_name: "",
281
+ description: "Upload relevant metadata for this build",
282
+ optional: true,
283
+ default_value: true),
274
284
  FastlaneCore::ConfigItem.new(key: :plist_template_path,
275
285
  env_name: "",
276
286
  description: "plist template path",
@@ -13,6 +13,10 @@ module Fastlane
13
13
  def self.is_supported?(platform)
14
14
  true
15
15
  end
16
+
17
+ def self.author
18
+ "KrauseFx"
19
+ end
16
20
  end
17
21
  end
18
22
  end
@@ -30,6 +30,10 @@ module Fastlane
30
30
  "Generates a provisioning profile. Stores the profile in the current folder"
31
31
  end
32
32
 
33
+ def self.author
34
+ "KrauseFx"
35
+ end
36
+
33
37
  def self.available_options
34
38
  require 'sigh'
35
39
  require 'sigh/options'
@@ -0,0 +1,47 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ end
5
+
6
+ class TestflightAction < Action
7
+ def self.run(params)
8
+ values = params.values
9
+ values[:beta] = true # always true for beta actions
10
+ real_options = FastlaneCore::Configuration.create(Actions::DeliverAction.available_options, values)
11
+ return real_options if Helper.is_test?
12
+
13
+ Actions::DeliverAction.run(real_options)
14
+ end
15
+
16
+ #####################################################
17
+ # @!group Documentation
18
+ #####################################################
19
+
20
+ def self.description
21
+ "Upload a new build to iTunes Connect. This won't upload app metadata"
22
+ end
23
+
24
+ def self.available_options
25
+ [
26
+ FastlaneCore::ConfigItem.new(key: :skip_deploy,
27
+ env_name: "FL_DELIVER_SKIP_DEPLOY",
28
+ description: "Skip the distribution of the app to all beta testers",
29
+ default_value: false,
30
+ is_string: false)
31
+ ]
32
+ end
33
+
34
+ def self.output
35
+ []
36
+ end
37
+
38
+ def self.author
39
+ 'KrauseFx'
40
+ end
41
+
42
+ def self.is_supported?(platform)
43
+ [:ios, :mac].include?platform
44
+ end
45
+ end
46
+ end
47
+ end
@@ -14,9 +14,14 @@ module Fastlane
14
14
  class TestmunkAction < Action
15
15
  def self.run(config)
16
16
  Helper.log.info 'Testmunk: Uploading the .ipa and starting your tests'.green
17
+
18
+ Helper.log.info 'Zipping features/ to features.zip'.green
19
+ zipped_features_path = File.expand_path('features.zip')
20
+ Actions.sh(%Q[zip -r "features" "features/"])
17
21
 
18
22
  response = system("#{"curl -H 'Accept: application/vnd.testmunk.v1+json'" +
19
23
  " -F 'file=@#{config[:ipa]}' -F 'autoStart=true'" +
24
+ " -F 'testcases=@#{zipped_features_path}'" +
20
25
  " -F 'email=#{config[:email]}'" +
21
26
  " https://#{config[:api]}@api.testmunk.com/apps/#{config[:app]}/testruns"}")
22
27
 
@@ -36,6 +41,7 @@ module Fastlane
36
41
  FastlaneCore::ConfigItem.new(key: :ipa,
37
42
  env_name: "TESTMUNK_IPA",
38
43
  description: "Path to IPA",
44
+ default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH],
39
45
  verify_block: Proc.new do |value|
40
46
  raise "Please pass to existing ipa" unless File.exists?value
41
47
  end),
@@ -56,12 +62,12 @@ module Fastlane
56
62
  description: "Testmunk App Name",
57
63
  verify_block: Proc.new do |value|
58
64
  raise "Please pass your Testmunk app name using `ENV['TESTMUNK_APP'] = 'value'`" unless value
59
- end),
65
+ end)
60
66
  ]
61
67
  end
62
68
 
63
69
  def self.author
64
- "mposchen"
70
+ ["mposchen", "johannesberdin"]
65
71
  end
66
72
 
67
73
  def self.is_supported?(platform)
@@ -69,4 +75,4 @@ module Fastlane
69
75
  end
70
76
  end
71
77
  end
72
- end
78
+ end
@@ -48,7 +48,7 @@ module Fastlane
48
48
  update_needed = updater.which_to_update(highest_versions, tools_to_update)
49
49
 
50
50
  if update_needed.count == 0
51
- Helper.log.info "Nothing to update! 😮".yellow
51
+ Helper.log.info "Nothing to update ".yellow
52
52
  return
53
53
  end
54
54
 
@@ -14,7 +14,9 @@ module Fastlane
14
14
 
15
15
  if action < Action
16
16
  current << action.description if action.description
17
- current << action.author.green if action.author
17
+
18
+ authors = Array(action.author || action.authors)
19
+ current << authors.join(', ').green if authors.count > 0
18
20
 
19
21
  l = (action.description || '').length
20
22
  else
@@ -30,8 +32,9 @@ module Fastlane
30
32
  rows: rows
31
33
  )
32
34
  puts table
35
+ puts " Total of #{rows.count} actions"
33
36
 
34
- puts "Get more information for one specific action using `fastlane action [name]`"
37
+ puts "\nGet more information for one specific action using `fastlane action [name]`\n".green
35
38
  end
36
39
 
37
40
  def self.show_details(filter)
@@ -49,7 +52,10 @@ module Fastlane
49
52
  rows << [action.details]
50
53
  rows << [' ']
51
54
  end
52
- rows << ["Created by #{action.author.green}"] if action.author
55
+
56
+ authors = Array(action.author || action.authors)
57
+
58
+ rows << ["Created by #{authors.join(', ').green}"] if authors.count > 0
53
59
 
54
60
  puts Terminal::Table.new(
55
61
  title: filter.green,
@@ -99,7 +105,7 @@ module Fastlane
99
105
  # Iterates through all available actions and yields from there
100
106
  def self.all_actions
101
107
  all_actions = Fastlane::Actions.constants.select {|c| Class === Fastlane::Actions.const_get(c)}
102
- all_actions.each do |symbol|
108
+ all_actions.sort.each do |symbol|
103
109
  action = Fastlane::Actions.const_get(symbol)
104
110
  name = symbol.to_s.gsub('Action', '').fastlane_underscore
105
111
  yield action, name
@@ -1,3 +1,3 @@
1
1
  module Fastlane
2
- VERSION = '1.4.0'
2
+ VERSION = '1.5.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-12 00:00:00.000000000 Z
11
+ date: 2015-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - '>='
172
172
  - !ruby/object:Gem::Version
173
- version: 0.11.1
173
+ version: 0.12.1
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - '>='
179
179
  - !ruby/object:Gem::Version
180
- version: 0.11.1
180
+ version: 0.12.1
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: snapshot
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -240,28 +240,28 @@ dependencies:
240
240
  requirements:
241
241
  - - '>='
242
242
  - !ruby/object:Gem::Version
243
- version: 0.6.0
243
+ version: 0.8.0
244
244
  type: :runtime
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - '>='
249
249
  - !ruby/object:Gem::Version
250
- version: 0.6.0
250
+ version: 0.8.0
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: produce
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
255
  - - '>='
256
256
  - !ruby/object:Gem::Version
257
- version: 0.2.1
257
+ version: 0.3.0
258
258
  type: :runtime
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - '>='
263
263
  - !ruby/object:Gem::Version
264
- version: 0.2.1
264
+ version: 0.3.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: bundler
267
267
  requirement: !ruby/object:Gem::Requirement
@@ -412,6 +412,10 @@ files:
412
412
  - lib/fastlane/actions/frameit.rb
413
413
  - lib/fastlane/actions/gcovr.rb
414
414
  - lib/fastlane/actions/hall.rb
415
+ - lib/fastlane/actions/hg_add_tag.rb
416
+ - lib/fastlane/actions/hg_commit_version_bump.rb
417
+ - lib/fastlane/actions/hg_ensure_clean_status.rb
418
+ - lib/fastlane/actions/hg_push.rb
415
419
  - lib/fastlane/actions/hipchat.rb
416
420
  - lib/fastlane/actions/hockey.rb
417
421
  - lib/fastlane/actions/increment_build_number.rb
@@ -437,6 +441,7 @@ files:
437
441
  - lib/fastlane/actions/snapshot.rb
438
442
  - lib/fastlane/actions/team_id.rb
439
443
  - lib/fastlane/actions/team_name.rb
444
+ - lib/fastlane/actions/testflight.rb
440
445
  - lib/fastlane/actions/testmunk.rb
441
446
  - lib/fastlane/actions/typetalk.rb
442
447
  - lib/fastlane/actions/update_fastlane.rb