fastlane-plugin-sunny_project 0.1.1 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56d9c8e0a16949f1d8e6714c9c2807ee44ae2aa0e4d902d88442d71c7ceb20b1
4
- data.tar.gz: c4a0c67685bc5e0b3ae016248c6a39cd08aaa1dc08e02264e8ad8d09e47da5db
3
+ metadata.gz: a515090fcca006dc19c431618a5487ee87396f4e663dc3da861100a97e4b6f00
4
+ data.tar.gz: 2c515e01ab4c674fca09dc659c68e43a3cc715b72adee7fb2204f3c8fdadc013
5
5
  SHA512:
6
- metadata.gz: 13960a8c5a9a25f4d9f1257de50486708cbba3b99c83689c8a7e385d37006074a4570b1dfce46edd2d5db102da74923e5872b65142f1ba635f5a225bbe81953d
7
- data.tar.gz: 4bcf9823f900dd8261be0415e892630f07533e5827ea1e95ecfcd17e98adce23b59b425fcaef463d93208ddf51e7ba3c24a62b258e242ecc65438a97dc6019ef
6
+ metadata.gz: 195d698da34785c9587403779566ca69b525e62daad899ac99602751a4254baf1aa7a978dad63e8e771045578d79fb9faa4e8717238b471e1866c6dab0670e7d
7
+ data.tar.gz: 1e7e79897ecd1945b1913eb350f90bbe442f5878e14ca09e300b77a16be752a264dc5bd9f9264e8175cabd682267bbb442fa7108191aa6b944824fe5c398eb54
@@ -1,4 +1,4 @@
1
- require 'fastlane/plugin/sunny_project/version'
1
+ require_relative 'sunny_project/version'
2
2
 
3
3
  module Fastlane
4
4
  module SunnyProject
@@ -0,0 +1,44 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/sunny_project_helper'
3
+ require 'semantic'
4
+
5
+ module Fastlane
6
+ module Actions
7
+ class CurrSemverAction < Action
8
+ def self.run(options)
9
+ Sunny.current_semver
10
+ end
11
+
12
+ def self.description
13
+ "Gets the current version from the project's pubspec.yaml file"
14
+ end
15
+
16
+ def self.authors
17
+ ["ericmartineau"]
18
+ end
19
+
20
+ def self.return_value
21
+ # If your method provides a return value, you can describe here what it does
22
+ end
23
+
24
+ def self.details
25
+ # Optional:
26
+ ""
27
+ end
28
+
29
+ def self.available_options
30
+ [
31
+
32
+ ]
33
+ end
34
+
35
+ def self.is_supported?(platform)
36
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
37
+ # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
38
+ #
39
+ # [:ios, :mac, :android].include?(platform)
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,45 @@
1
+ require 'fastlane/action'
2
+ require 'fastlane_core'
3
+ require 'fastlane_core/ui/ui'
4
+
5
+ require_relative '../helper/sunny_project_helper'
6
+ require_relative '../options/plugin_options'
7
+ require 'semantic'
8
+
9
+ module Fastlane
10
+ UI = FastlaneCore::UI unless Fastlane.const_defined?("UI")
11
+ module Actions
12
+ class DartPackagesStatus < Fastlane::Action
13
+ def self.run(options)
14
+ params = FastlaneCore::Configuration.create(SunnyPlugin::Options.available_options, options.__hash__)
15
+ params.load_configuration_file("Sunnyfile")
16
+ "Hello #{params.pretty_print}"
17
+ end
18
+
19
+ def self.description
20
+ "Checks status of plugins modules"
21
+ end
22
+
23
+ def self.authors
24
+ ["ericmartineau"]
25
+ end
26
+
27
+ def self.return_value
28
+ # If your method provides a return value, you can describe here what it does
29
+ end
30
+
31
+ def self.details
32
+ # Optional:
33
+ ""
34
+ end
35
+
36
+ def self.available_options
37
+ SunnyPluginOptions.available_options
38
+ end
39
+
40
+ def self.is_supported?(platform)
41
+ true
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,64 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/sunny_project_helper'
3
+
4
+ module Fastlane
5
+ module Actions
6
+ class FinalizeVersionAction < Action
7
+ def self.run(options)
8
+ version = Sunny.current_semver
9
+ # If we got this far, let's commit the build number and update the git tags. If the rest of the pro
10
+ # process fails, we should revert this because it will mess up our commit logs
11
+ Fastlane::Actions::GitCommitAction.run(path: %w[./pubspec.yaml ./pubspec.lock ./CHANGELOG.md],
12
+ allow_nothing_to_commit: true,
13
+ message: "Version bump to: #{version.major}.#{version.minor}.#{version.patch}#800#{version.build}")
14
+ Fastlane::Actions::AddGitTagAction.run(
15
+ tag: "sunny/builds/v#{version.build}",
16
+ force: true,
17
+ sign: false,
18
+ )
19
+ Fastlane::Actions::PushGitTagsAction.run(log: true)
20
+ if File.exist?(Sunny.release_notes_file)
21
+ File.delete(Sunny.release_notes_file)
22
+ end
23
+ end
24
+
25
+ def self.description
26
+ "Commit version tags"
27
+ end
28
+
29
+ def self.authors
30
+ ["ericmartineau"]
31
+ end
32
+
33
+ def self.return_value
34
+ # If your method provides a return value, you can describe here what it does
35
+ end
36
+
37
+ def self.details
38
+ # Optional:
39
+ ""
40
+ end
41
+
42
+ def self.available_options
43
+ [
44
+ FastlaneCore::ConfigItem.new(key: :tag_group,
45
+ env_name: "SUNNY_PROJECT_TAG_GROUP",
46
+ description: "The name of the tag group",
47
+ optional: false,
48
+ type: String,
49
+ default_value: "sunny/builds"),
50
+
51
+
52
+ ]
53
+ end
54
+
55
+ def self.is_supported?(platform)
56
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
57
+ # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
58
+ #
59
+ # [:ios, :mac, :android].include?(platform)
60
+ true
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,77 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/sunny_project_helper'
3
+ require 'semantic'
4
+
5
+ module Fastlane
6
+ module Actions
7
+ class GenerateIconsAction < Action
8
+ def self.run(options)
9
+ Dir.chdir("..") {
10
+ self.download_icons
11
+ self.build_icon_fonts(options)
12
+ }
13
+ end
14
+
15
+ def self.build_icon_fonts(options)
16
+ snake_name = options[:icon_set_name]
17
+ camel_value = snake_name.split('_').downcase.collect(&:capitalize).join
18
+ helper.exec_cmd("Generate flutter icons", "icon_font_generator",
19
+ "--from=#{options[:icon_source_folder]}", "--class-name=#{camel_value}",
20
+ "--out-font=lib/fonts/#{camel_value}.ttf", "--out-flutter=lib/#{snake_name}_font.dart",
21
+ "--normalize")
22
+
23
+ end
24
+
25
+ def self.download_icons
26
+ Dir.chdir("..") {
27
+ cmd("Download icons", "dart", "tools/iconsource/downloader.dart")
28
+ }
29
+ end
30
+
31
+ def self.description
32
+ "Generates a flutter icon set as a font"
33
+ end
34
+
35
+ def self.authors
36
+ ["ericmartineau"]
37
+ end
38
+
39
+ def self.return_value
40
+ # If your method provides a return value, you can describe here what it does
41
+ end
42
+
43
+ def self.details
44
+ # Optional:
45
+ ""
46
+ end
47
+
48
+ def self.available_options
49
+ [
50
+ FastlaneCore::ConfigItem.new(key: :icon_source_folder,
51
+ env_name: "SUNNY_PROJECT_ICON_SOURCE_FOLDER",
52
+ description: "The folder to look in for svg icons",
53
+ optional: false,
54
+ type: String,
55
+ default_value: "iconsource/svg"),
56
+ FastlaneCore::ConfigItem.new(key: :icon_set_name,
57
+ env_name: "SUNNY_PROJECT_ICON_SET_NAME",
58
+ description: "The snake-case name of the icon set",
59
+ optional: false,
60
+ verify_block: proc do |value|
61
+ UI.error!("This value cannot be blank") unless value
62
+ UI.error!("This value must be snake case") unless Sunny.underscore(value) == value
63
+ end,
64
+ type: String),
65
+ ]
66
+ end
67
+
68
+ def self.is_supported?(platform)
69
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
70
+ # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
71
+ #
72
+ # [:ios, :mac, :android].include?(platform)
73
+ true
74
+ end
75
+ end
76
+ end
77
+ end
@@ -5,56 +5,12 @@ require 'semantic'
5
5
  module Fastlane
6
6
  module Actions
7
7
  class IncreaseVersionAction < Action
8
- ### Reads the latest version from pubspec.yaml
9
- def self.current_semver
10
- Semantic::Version.new current_version
11
- end
12
-
13
- ### Reads the latest version from pubspec.yaml (doesn't have to be in .. to run)
14
- def self.current_semver_path
15
- version = nil
16
- Dir.chdir("..") {
17
- version=current_semver
18
- }
19
- version
20
- end
21
-
22
- def self.build_number
23
- current_semver.build
24
- end
25
-
26
- def self.release_notes_file
27
- ".release-notes"
28
- end
29
-
30
8
  def self.run(options)
31
- UI.message("The increase_version plugin is working!")
32
-
33
- version=nil
34
- Dir.chdir("..") {
35
- if options[:patch]
36
- cmd("bump patch", "pubver bump patch -b")
37
- version=current_semver
38
- end
39
- if options[:build]
40
- cmd("bump build", "pubver bump build")
41
- version=current_semver
42
- end
43
- if version
44
- puts(version)
45
- else
46
- puts("No version changes occurred")
47
- next
48
- end
49
- }
50
-
51
- version
52
-
53
-
9
+ Sunny.do_increase_version options
54
10
  end
55
11
 
56
12
  def self.description
57
- "Sunny release plugin"
13
+ "Increment version number in pubspec.yaml file"
58
14
  end
59
15
 
60
16
  def self.authors
@@ -71,12 +27,17 @@ module Fastlane
71
27
  end
72
28
 
73
29
  def self.available_options
30
+ verify_type = lambda do |value|
31
+ UI.error "Invalid option: #{value} Must be 'build' or 'patch'" unless value == "build" or value == "patch"
32
+ end
74
33
  [
75
- # FastlaneCore::ConfigItem.new(key: :your_option,
76
- # env_name: "SUNNY_PROJECT_YOUR_OPTION",
77
- # description: "A description of your option",
78
- # optional: false,
79
- # type: String)
34
+ FastlaneCore::ConfigItem.new(key: :type,
35
+ env_name: "SUNNY_PROJECT_TYPE",
36
+ description: "Whether to make a patch or build version change",
37
+ optional: true,
38
+ verify_block: verify_type,
39
+ default_value: 'build',
40
+ type: String)
80
41
  ]
81
42
  end
82
43
 
@@ -88,7 +49,5 @@ module Fastlane
88
49
  true
89
50
  end
90
51
  end
91
-
92
-
93
52
  end
94
53
  end
@@ -1,15 +1,16 @@
1
1
  require 'fastlane/action'
2
2
  require_relative '../helper/sunny_project_helper'
3
+ require 'semantic'
3
4
 
4
5
  module Fastlane
5
6
  module Actions
6
- class SunnyProjectAction < Action
7
- def self.run(params)
8
- UI.message("The sunny_project plugin is working!")
7
+ class PubPublishAction < Action
8
+ def self.run(options)
9
+ Sunny.exec_cmd("pub publish", "pub publish -f")
9
10
  end
10
11
 
11
12
  def self.description
12
- "Sunny flutter projects"
13
+ "Executes pub publish command"
13
14
  end
14
15
 
15
16
  def self.authors
@@ -26,12 +27,9 @@ module Fastlane
26
27
  end
27
28
 
28
29
  def self.available_options
30
+
29
31
  [
30
- # FastlaneCore::ConfigItem.new(key: :your_option,
31
- # env_name: "SUNNY_PROJECT_YOUR_OPTION",
32
- # description: "A description of your option",
33
- # optional: false,
34
- # type: String)
32
+
35
33
  ]
36
34
  end
37
35
 
@@ -43,7 +41,5 @@ module Fastlane
43
41
  true
44
42
  end
45
43
  end
46
-
47
-
48
44
  end
49
45
  end
@@ -0,0 +1,96 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/sunny_project_helper'
3
+ require 'semantic'
4
+
5
+
6
+ module Fastlane
7
+ module Actions
8
+
9
+ class ReleaseNotesAction < Action
10
+ def self.run(options)
11
+ changes = Sunny.string(options[:changes])
12
+ if Sunny.blank(changes)
13
+ if File.file?(Sunny.release_notes_file)
14
+ changes = Sunny.string(File.read(Sunny.release_notes_file))
15
+
16
+ UI.message "Found release notes: \n#####################################################\n\n#{changes}\n\n#####################################################\n"
17
+ sleep(5)
18
+ return changes
19
+ end
20
+ unless File.file?(Sunny.release_notes_file)
21
+ changes = Sunny.string(Fastlane::Actions::ChangelogFromGitCommitsAction.run(
22
+ path: "./",
23
+ pretty: "%B",
24
+ ancestry_path: false,
25
+ match_lightweight_tag: true,
26
+ quiet: false,
27
+ merge_commit_filtering: ":exclude_merges"
28
+ ))
29
+
30
+ if Sunny.blank(changes)
31
+ changes = Sunny.string(Fastlane::Actions::PromptAction.run(
32
+ text: "Please Enter a description of what changed.\nWhen you are finished, type END\n Changelog: ",
33
+ multi_line_end_keyword: 'END'))
34
+ end
35
+ end
36
+ unless Sunny.blank(changes)
37
+ File.open(Sunny.release_notes_file, 'w') { |file|
38
+ file.write(changes)
39
+ }
40
+ end
41
+ if File.file?(Sunny.release_notes_file)
42
+ changes = Sunny.string(File.read(Sunny.release_notes_file))
43
+ end
44
+ end
45
+
46
+ if File.file?("CHANGELOG.md")
47
+ f = File.open("CHANGELOG.md", "r+")
48
+ lines = f.readlines
49
+ f.close
50
+ v = Sunny.current_semver
51
+ lines = ["## [#{v}]\n", " * #{changes}\n", "\n"] + lines
52
+
53
+ output = File.new("CHANGELOG.md", "w")
54
+ lines.each { |line| output.write line }
55
+ output.close
56
+ end
57
+ changes
58
+ end
59
+
60
+ def self.description
61
+ "Get or retrieve release notes from git"
62
+ end
63
+
64
+ def self.authors
65
+ ["ericmartineau"]
66
+ end
67
+
68
+ def self.return_value
69
+ # If your method provides a return value, you can describe here what it does
70
+ end
71
+
72
+ def self.details
73
+ # Optional:
74
+ ""
75
+ end
76
+
77
+ def self.available_options
78
+ [
79
+ FastlaneCore::ConfigItem.new(key: :changes,
80
+ env_name: "SUNNY_PROJECT_CHANGES",
81
+ description: "Change log text",
82
+ optional: true,
83
+ type: String)
84
+ ]
85
+ end
86
+
87
+ def self.is_supported?(platform)
88
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
89
+ # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
90
+ #
91
+ # [:ios, :mac, :android].include?(platform)
92
+ true
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,44 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/sunny_project_helper'
3
+ require 'semantic'
4
+
5
+ module Fastlane
6
+ module Actions
7
+ class RenameAssetsAction < Action
8
+ def self.run(options)
9
+ Sunny.exec_cmd("dart asset_renamer.dart", "dart tools/asset_renamer.dart")
10
+ end
11
+
12
+ def self.description
13
+ "Renames assets, generates an assets.dart file to reference them."
14
+ end
15
+
16
+ def self.authors
17
+ ["ericmartineau"]
18
+ end
19
+
20
+ def self.return_value
21
+ # If your method provides a return value, you can describe here what it does
22
+ end
23
+
24
+ def self.details
25
+ # Optional:
26
+ ""
27
+ end
28
+
29
+ def self.available_options
30
+ [
31
+
32
+ ]
33
+ end
34
+
35
+ def self.is_supported?(platform)
36
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
37
+ # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
38
+ #
39
+ # [:ios, :mac, :android].include?(platform)
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
@@ -1,16 +1,117 @@
1
1
  require 'fastlane_core/ui/ui'
2
+ require "fastlane"
2
3
 
3
4
  module Fastlane
4
5
  UI = FastlaneCore::UI unless Fastlane.const_defined?("UI")
5
6
 
6
- module Helper
7
- class SunnyProjectHelper
8
- # class methods that you define here become available in your action
9
- # as `Helper::SunnyProjectHelper.your_method`
10
- #
11
- def self.show_message
12
- UI.message("Hello from the sunny_project plugin helper!")
7
+ module Sunny
8
+ def self.string(str)
9
+ if str
10
+ str.strip
11
+ else
12
+ nil
13
13
  end
14
14
  end
15
+
16
+ def self.blank(str)
17
+ if str
18
+ str.strip.empty?
19
+ else
20
+ true
21
+ end
22
+ end
23
+
24
+
25
+ def self.do_increase_version(options)
26
+ command = "pubver bump #{options[:type]} "
27
+ if options[:type] == 'patch'
28
+ command += "-b"
29
+ end
30
+ self.exec_cmd("bump patch", command)
31
+ self.current_semver
32
+ end
33
+
34
+ def self.exec_cmd(name, *command, **args)
35
+ if (command.count > 1)
36
+ command = command.map { |item| Shellwords.escape item }
37
+ end
38
+ joined = command.join(" ")
39
+ if args[:verbose]
40
+ begin
41
+ return sh(command)
42
+ rescue StandardError => e
43
+ UI.user_error! ">> #{name} failed << \n #{e}"
44
+ end
45
+ else
46
+ if args[:cmd_out]
47
+ UI.command_output name
48
+ else
49
+ UI.command name
50
+ end
51
+
52
+ stdout, err, status = Open3.capture3(joined)
53
+ UI.user_error! ">> #{name} failed << \n command: #{joined}\n error: #{err}" unless status == 0
54
+ stdout
55
+ end
56
+ end
57
+
58
+ def self.release_notes_file
59
+ ".release-notes"
60
+ end
61
+
62
+ ### Reads the latest version from pubspec.yaml
63
+ def self.current_semver
64
+ Semantic::Version.new current_version_string
65
+ end
66
+
67
+ ### Reads the latest version from pubspec.yaml
68
+ def self.current_semver_path
69
+ version = nil
70
+ Dir.chdir("..") do
71
+ version = self.current_semver
72
+ end
73
+ version
74
+ end
75
+
76
+ def self.build_number
77
+ self.current_semver.build
78
+ end
79
+
80
+ ## Retrieves the current semver based on git tags
81
+ def self.current_version_string
82
+ self.exec_cmd("get version", "pubver get")
83
+ end
84
+
85
+ # lane :ximg do |options|
86
+ # Dir.chdir("..") {
87
+ # cmd("dart asset_renamer.dart", "dart tools/asset_renamer.dart")
88
+ # }
89
+ # end
90
+ #
91
+ # lane :icons do
92
+ # download_icons
93
+ # build_icon_fonts
94
+ # end
95
+ #
96
+ # lane :build_icon_fonts do
97
+ # Dir.chdir("..") {
98
+ # cmd("Generate flutter icons", "icon_font_generator", "--from=iconsource/svg", "--class-name=AuthIcons",
99
+ # "--out-font=lib/fonts/AuthIcons.ttf", "--out-flutter=lib/auth_icon_font.dart", "--normalize")
100
+ # }
101
+ # end
102
+ #
103
+ # lane :download_icons do
104
+ # Dir.chdir("..") {
105
+ # cmd("Download icons", "dart", "tools/iconsource/downloader.dart")
106
+ # }
107
+ # end
108
+
109
+ def self.underscore(str)
110
+ str.gsub(/::/, '/').
111
+ gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
112
+ gsub(/([a-z\d])([A-Z])/, '\1_\2').
113
+ tr("-", "_").
114
+ downcase
115
+ end
15
116
  end
16
117
  end
@@ -0,0 +1,33 @@
1
+ require 'fastlane_core/configuration/config_item'
2
+ require 'fastlane/helper/lane_helper'
3
+
4
+ module Fastlane
5
+ module SunnyProject
6
+ class SunnyPluginOptions
7
+ # This is match specific, as users can append storage specific options
8
+ def self.append_option(option)
9
+ self.available_options # to ensure we created the initial `@available_options` array
10
+ @available_options << option
11
+ end
12
+
13
+ def self.default_platform
14
+ case Fastlane::Helper::LaneHelper.current_platform.to_s
15
+ when "mac"
16
+ "macos"
17
+ else
18
+ "ios"
19
+ end
20
+ end
21
+
22
+ def self.available_options
23
+ [
24
+ FastlaneCore::ConfigItem.new(key: :sunny_plugins,
25
+ env_name: "SUNNY_PLUGINS",
26
+ description: "The plugins",
27
+ type: Hash,
28
+ optional: false,)
29
+ ]
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module SunnyProject
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-sunny_project
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ericmartineau
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-19 00:00:00.000000000 Z
11
+ date: 2020-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -136,7 +136,7 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: 2.160.0
139
- description:
139
+ description:
140
140
  email: smartytime@gmail.com
141
141
  executables: []
142
142
  extensions: []
@@ -145,16 +145,22 @@ files:
145
145
  - LICENSE
146
146
  - README.md
147
147
  - lib/fastlane/plugin/sunny_project.rb
148
+ - lib/fastlane/plugin/sunny_project/actions/curr_semver_action.rb
149
+ - lib/fastlane/plugin/sunny_project/actions/dart_packages_status_action.rb
150
+ - lib/fastlane/plugin/sunny_project/actions/finalize_version_action.rb
151
+ - lib/fastlane/plugin/sunny_project/actions/generate_icons_action.rb
148
152
  - lib/fastlane/plugin/sunny_project/actions/increase_version_action.rb
149
- - lib/fastlane/plugin/sunny_project/actions/sunny_project_action.rb
150
- - lib/fastlane/plugin/sunny_project/actions/sunny_release_action.rb
153
+ - lib/fastlane/plugin/sunny_project/actions/pub_publish_action.rb
154
+ - lib/fastlane/plugin/sunny_project/actions/release_notes_action.rb
155
+ - lib/fastlane/plugin/sunny_project/actions/rename_assets_action.rb
151
156
  - lib/fastlane/plugin/sunny_project/helper/sunny_project_helper.rb
157
+ - lib/fastlane/plugin/sunny_project/options/plugin_options.rb
152
158
  - lib/fastlane/plugin/sunny_project/version.rb
153
159
  homepage: https://github.com/SunnyApp/fastlane-plugin-sunny_project
154
160
  licenses:
155
161
  - MIT
156
162
  metadata: {}
157
- post_install_message:
163
+ post_install_message:
158
164
  rdoc_options: []
159
165
  require_paths:
160
166
  - lib
@@ -170,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
176
  version: '0'
171
177
  requirements: []
172
178
  rubygems_version: 3.0.3
173
- signing_key:
179
+ signing_key:
174
180
  specification_version: 4
175
181
  summary: Sunny flutter projects
176
182
  test_files: []
@@ -1,72 +0,0 @@
1
- require 'fastlane/action'
2
- require_relative '../helper/sunny_project_helper'
3
-
4
- module Fastlane
5
- module Actions
6
- class SunnyReleaseAction < Action
7
- def self.run(params)
8
- UI.message("The sunny_release plugin is working!")
9
- lane :increase_version do |options|
10
- version=nil
11
-
12
- Dir.chdir("..") {
13
- if options[:patch]
14
- cmd("bump patch", "pubver bump patch -b")
15
- version=current_semver
16
- end
17
- if options[:build]
18
- cmd("bump build", "pubver bump build")
19
- version=current_semver
20
- end
21
- if version
22
- puts(version)
23
- else
24
- puts("No version changes occurred")
25
- next
26
- end
27
- }
28
-
29
- version
30
- end
31
-
32
- end
33
-
34
- def self.description
35
- "Sunny release plugin"
36
- end
37
-
38
- def self.authors
39
- ["ericmartineau"]
40
- end
41
-
42
- def self.return_value
43
- # If your method provides a return value, you can describe here what it does
44
- end
45
-
46
- def self.details
47
- # Optional:
48
- ""
49
- end
50
-
51
- def self.available_options
52
- [
53
- # FastlaneCore::ConfigItem.new(key: :your_option,
54
- # env_name: "SUNNY_PROJECT_YOUR_OPTION",
55
- # description: "A description of your option",
56
- # optional: false,
57
- # type: String)
58
- ]
59
- end
60
-
61
- def self.is_supported?(platform)
62
- # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
63
- # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
64
- #
65
- # [:ios, :mac, :android].include?(platform)
66
- true
67
- end
68
- end
69
-
70
-
71
- end
72
- end