feat: init ios plugin (#2)
This commit is contained in:
parent
d4a16eba70
commit
ee58f96126
43
plugins/fastlane-plugin-ios_cd/.circleci/config.yml
Normal file
43
plugins/fastlane-plugin-ios_cd/.circleci/config.yml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# Ruby CircleCI 2.0 configuration file
|
||||||
|
#
|
||||||
|
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
||||||
|
#
|
||||||
|
version: 2
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
docker:
|
||||||
|
# specify the version you desire here
|
||||||
|
- image: circleci/ruby:2.5
|
||||||
|
|
||||||
|
working_directory: ~/repo
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
|
||||||
|
# Download and cache dependencies
|
||||||
|
- restore_cache:
|
||||||
|
keys:
|
||||||
|
- v1-dependencies-{{ checksum "Gemfile" }}
|
||||||
|
# fallback to using the latest cache if no exact match is found
|
||||||
|
- v1-dependencies-
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: install dependencies
|
||||||
|
command: bundle check || bundle install --jobs=4 --retry=3 --path vendor/bundle
|
||||||
|
|
||||||
|
- save_cache:
|
||||||
|
paths:
|
||||||
|
- ./vendor
|
||||||
|
key: v1-dependencies-{{ checksum "Gemfile" }}
|
||||||
|
|
||||||
|
# run tests!
|
||||||
|
- run:
|
||||||
|
name: run tests
|
||||||
|
command: bundle exec rake
|
||||||
|
|
||||||
|
# collect reports
|
||||||
|
- store_test_results:
|
||||||
|
path: ~/repo/test-results
|
||||||
|
- store_artifacts:
|
||||||
|
path: ~/repo/test-results
|
||||||
|
destination: test-results
|
29
plugins/fastlane-plugin-ios_cd/.github/workflows/test.yml
vendored
Normal file
29
plugins/fastlane-plugin-ios_cd/.github/workflows/test.yml
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
name: Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: vendor/bundle
|
||||||
|
key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gem-
|
||||||
|
- name: Set up Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 2.5
|
||||||
|
- name: Install dependencies
|
||||||
|
run: bundle check || bundle install --jobs=4 --retry=3 --path vendor/bundle
|
||||||
|
- name: Run tests
|
||||||
|
run: bundle exec rake
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: test-results
|
||||||
|
path: test-results
|
12
plugins/fastlane-plugin-ios_cd/.gitignore
vendored
Normal file
12
plugins/fastlane-plugin-ios_cd/.gitignore
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
*.gem
|
||||||
|
Gemfile.lock
|
||||||
|
|
||||||
|
## Documentation cache and generated files:
|
||||||
|
/.yardoc/
|
||||||
|
/_yardoc/
|
||||||
|
/doc/
|
||||||
|
/rdoc/
|
||||||
|
fastlane/README.md
|
||||||
|
fastlane/report.xml
|
||||||
|
coverage
|
||||||
|
test-results
|
5
plugins/fastlane-plugin-ios_cd/.rspec
Normal file
5
plugins/fastlane-plugin-ios_cd/.rspec
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
--require spec_helper
|
||||||
|
--color
|
||||||
|
--format d
|
||||||
|
--format RspecJunitFormatter
|
||||||
|
--out test-results/rspec/rspec.xml
|
188
plugins/fastlane-plugin-ios_cd/.rubocop.yml
Normal file
188
plugins/fastlane-plugin-ios_cd/.rubocop.yml
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
---
|
||||||
|
require:
|
||||||
|
- rubocop/require_tools
|
||||||
|
- rubocop-performance
|
||||||
|
AllCops:
|
||||||
|
TargetRubyVersion: 2.6
|
||||||
|
NewCops: enable
|
||||||
|
Include:
|
||||||
|
- "**/*.rb"
|
||||||
|
- "**/*file"
|
||||||
|
- "**/*.gemspec"
|
||||||
|
- "*/lib/assets/*Template"
|
||||||
|
- "*/lib/assets/*TemplateAndroid"
|
||||||
|
Exclude:
|
||||||
|
- "**/lib/assets/custom_action_template.rb"
|
||||||
|
- "./vendor/**/*"
|
||||||
|
- "**/lib/assets/DefaultFastfileTemplate"
|
||||||
|
- "**/lib/assets/MatchfileTemplate"
|
||||||
|
- "**/spec/fixtures/broken_files/broken_file.rb"
|
||||||
|
- "**/*.provisionprofile"
|
||||||
|
Lint/ErbNewArguments:
|
||||||
|
Enabled: false
|
||||||
|
Style/SlicingWithRange:
|
||||||
|
Enabled: false
|
||||||
|
Style/MultipleComparison:
|
||||||
|
Enabled: false
|
||||||
|
Style/PercentLiteralDelimiters:
|
||||||
|
Enabled: false
|
||||||
|
Style/ClassCheck:
|
||||||
|
EnforcedStyle: kind_of?
|
||||||
|
Style/FrozenStringLiteralComment:
|
||||||
|
Enabled: false
|
||||||
|
Style/SafeNavigation:
|
||||||
|
Enabled: false
|
||||||
|
Performance/RegexpMatch:
|
||||||
|
Enabled: false
|
||||||
|
Performance/StringReplacement:
|
||||||
|
Enabled: false
|
||||||
|
Style/NumericPredicate:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/BlockLength:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/ModuleLength:
|
||||||
|
Enabled: false
|
||||||
|
Naming/VariableNumber:
|
||||||
|
Enabled: false
|
||||||
|
Style/MissingRespondToMissing:
|
||||||
|
Enabled: false
|
||||||
|
Style/MultilineBlockChain:
|
||||||
|
Enabled: false
|
||||||
|
Style/NumericLiteralPrefix:
|
||||||
|
Enabled: false
|
||||||
|
Style/TernaryParentheses:
|
||||||
|
Enabled: false
|
||||||
|
Style/EmptyMethod:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UselessAssignment:
|
||||||
|
Exclude:
|
||||||
|
- "**/spec/**/*"
|
||||||
|
Require/MissingRequireStatement:
|
||||||
|
Exclude:
|
||||||
|
- "**/spec/**/*.rb"
|
||||||
|
- "**/spec_helper.rb"
|
||||||
|
- spaceship/lib/spaceship/babosa_fix.rb
|
||||||
|
- fastlane_core/lib/fastlane_core/ui/disable_colors.rb
|
||||||
|
- "**/Fastfile"
|
||||||
|
- "**/*.gemspec"
|
||||||
|
- rakelib/**/*
|
||||||
|
- "**/*.rake"
|
||||||
|
- "**/Rakefile"
|
||||||
|
- fastlane/**/*
|
||||||
|
- supply/**/*
|
||||||
|
Layout/FirstHashElementIndentation:
|
||||||
|
Enabled: false
|
||||||
|
Layout/HashAlignment:
|
||||||
|
Enabled: false
|
||||||
|
Layout/DotPosition:
|
||||||
|
Enabled: false
|
||||||
|
Style/DoubleNegation:
|
||||||
|
Enabled: false
|
||||||
|
Style/SymbolArray:
|
||||||
|
Enabled: false
|
||||||
|
Layout/HeredocIndentation:
|
||||||
|
Enabled: false
|
||||||
|
Style/MixinGrouping:
|
||||||
|
Exclude:
|
||||||
|
- "**/spec/**/*"
|
||||||
|
Lint/SuppressedException:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UnusedBlockArgument:
|
||||||
|
Enabled: false
|
||||||
|
Lint/AmbiguousBlockAssociation:
|
||||||
|
Enabled: false
|
||||||
|
Style/GlobalVars:
|
||||||
|
Enabled: false
|
||||||
|
Style/ClassAndModuleChildren:
|
||||||
|
Enabled: false
|
||||||
|
Style/SpecialGlobalVars:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/AbcSize:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/MethodLength:
|
||||||
|
Enabled: false
|
||||||
|
Metrics/CyclomaticComplexity:
|
||||||
|
Enabled: false
|
||||||
|
Style/WordArray:
|
||||||
|
MinSize: 19
|
||||||
|
Style/SignalException:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantReturn:
|
||||||
|
Enabled: false
|
||||||
|
Style/IfUnlessModifier:
|
||||||
|
Enabled: false
|
||||||
|
Style/AndOr:
|
||||||
|
Enabled: true
|
||||||
|
EnforcedStyle: conditionals
|
||||||
|
Metrics/ClassLength:
|
||||||
|
Max: 320
|
||||||
|
Layout/LineLength:
|
||||||
|
Max: 370
|
||||||
|
Metrics/ParameterLists:
|
||||||
|
Max: 17
|
||||||
|
Style/GuardClause:
|
||||||
|
Enabled: false
|
||||||
|
Style/StringLiterals:
|
||||||
|
Enabled: false
|
||||||
|
Style/ConditionalAssignment:
|
||||||
|
Enabled: false
|
||||||
|
Style/RedundantSelf:
|
||||||
|
Enabled: false
|
||||||
|
Lint/UnusedMethodArgument:
|
||||||
|
Enabled: false
|
||||||
|
Lint/ParenthesesAsGroupedExpression:
|
||||||
|
Exclude:
|
||||||
|
- "**/spec/**/*"
|
||||||
|
Naming/PredicateName:
|
||||||
|
Enabled: false
|
||||||
|
Style/PerlBackrefs:
|
||||||
|
Enabled: false
|
||||||
|
Layout/SpaceAroundOperators:
|
||||||
|
Exclude:
|
||||||
|
- "**/spec/actions_specs/xcodebuild_spec.rb"
|
||||||
|
Naming/FileName:
|
||||||
|
Exclude:
|
||||||
|
- "**/Dangerfile"
|
||||||
|
- "**/Brewfile"
|
||||||
|
- "**/Gemfile"
|
||||||
|
- "**/Podfile"
|
||||||
|
- "**/Rakefile"
|
||||||
|
- "**/Fastfile"
|
||||||
|
- "**/Deliverfile"
|
||||||
|
- "**/Snapfile"
|
||||||
|
- "**/Pluginfile"
|
||||||
|
- "**/*.gemspec"
|
||||||
|
Style/Documentation:
|
||||||
|
Enabled: false
|
||||||
|
Style/MutableConstant:
|
||||||
|
Enabled: false
|
||||||
|
Style/ZeroLengthPredicate:
|
||||||
|
Enabled: false
|
||||||
|
Style/IfInsideElse:
|
||||||
|
Enabled: false
|
||||||
|
Style/CollectionMethods:
|
||||||
|
Enabled: false
|
||||||
|
Style/MethodCallWithArgsParentheses:
|
||||||
|
Enabled: true
|
||||||
|
IgnoredMethods:
|
||||||
|
- require
|
||||||
|
- require_relative
|
||||||
|
- fastlane_require
|
||||||
|
- gem
|
||||||
|
- program
|
||||||
|
- command
|
||||||
|
- raise
|
||||||
|
- attr_accessor
|
||||||
|
- attr_reader
|
||||||
|
- desc
|
||||||
|
- lane
|
||||||
|
- private_lane
|
||||||
|
- platform
|
||||||
|
- to
|
||||||
|
- not_to
|
||||||
|
- describe
|
||||||
|
- it
|
||||||
|
- be
|
||||||
|
- context
|
||||||
|
- before
|
||||||
|
- after
|
4
plugins/fastlane-plugin-ios_cd/.travis.yml
Normal file
4
plugins/fastlane-plugin-ios_cd/.travis.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# os: osx # enable this if you need macOS support
|
||||||
|
language: ruby
|
||||||
|
rvm:
|
||||||
|
- 2.2.4
|
6
plugins/fastlane-plugin-ios_cd/Gemfile
Normal file
6
plugins/fastlane-plugin-ios_cd/Gemfile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
source('https://rubygems.org')
|
||||||
|
|
||||||
|
gemspec
|
||||||
|
|
||||||
|
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||||
|
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
21
plugins/fastlane-plugin-ios_cd/LICENSE
Normal file
21
plugins/fastlane-plugin-ios_cd/LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2023 Malo Léon <malo.leon@wyatt-studio.fr>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
52
plugins/fastlane-plugin-ios_cd/README.md
Normal file
52
plugins/fastlane-plugin-ios_cd/README.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# ios_cd plugin
|
||||||
|
|
||||||
|
[](https://rubygems.org/gems/fastlane-plugin-ios_cd)
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-ios_cd`, add it to your project by running:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
fastlane add_plugin ios_cd
|
||||||
|
```
|
||||||
|
|
||||||
|
## About ios_cd
|
||||||
|
|
||||||
|
Testflight and AppStore deployment plugin for Fastlane, simplifying the build and deployment porcess to internal, external, and production channels, and promoting builds for testing.
|
||||||
|
|
||||||
|
**Note to author:** Add a more detailed description about this plugin here. If your plugin contains multiple actions, make sure to mention them here.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
Check out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.
|
||||||
|
|
||||||
|
**Note to author:** Please set up a sample project to make it easy for users to explore what your plugin does. Provide everything that is necessary to try out the plugin in this project (including a sample Xcode/Android project if necessary)
|
||||||
|
|
||||||
|
## Run tests for this plugin
|
||||||
|
|
||||||
|
To run both the tests, and code style validation, run
|
||||||
|
|
||||||
|
```
|
||||||
|
rake
|
||||||
|
```
|
||||||
|
|
||||||
|
To automatically fix many of the styling issues, use
|
||||||
|
```
|
||||||
|
rubocop -a
|
||||||
|
```
|
||||||
|
|
||||||
|
## Issues and Feedback
|
||||||
|
|
||||||
|
For any other issues and feedback about this plugin, please submit it to this repository.
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
If you have trouble using plugins, check out the [Plugins Troubleshooting](https://docs.fastlane.tools/plugins/plugins-troubleshooting/) guide.
|
||||||
|
|
||||||
|
## Using _fastlane_ Plugins
|
||||||
|
|
||||||
|
For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://docs.fastlane.tools/plugins/create-plugin/).
|
||||||
|
|
||||||
|
## About _fastlane_
|
||||||
|
|
||||||
|
_fastlane_ is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).
|
9
plugins/fastlane-plugin-ios_cd/Rakefile
Normal file
9
plugins/fastlane-plugin-ios_cd/Rakefile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
require 'bundler/gem_tasks'
|
||||||
|
|
||||||
|
require 'rspec/core/rake_task'
|
||||||
|
RSpec::Core::RakeTask.new
|
||||||
|
|
||||||
|
require 'rubocop/rake_task'
|
||||||
|
RuboCop::RakeTask.new(:rubocop)
|
||||||
|
|
||||||
|
task(default: [:spec, :rubocop])
|
@ -0,0 +1,36 @@
|
|||||||
|
lib = File.expand_path("lib", __dir__)
|
||||||
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
||||||
|
require 'fastlane/plugin/ios_cd/version'
|
||||||
|
|
||||||
|
Gem::Specification.new do |spec|
|
||||||
|
spec.name = 'fastlane-plugin-ios_cd'
|
||||||
|
spec.version = Fastlane::IosCd::VERSION
|
||||||
|
spec.author = 'Malo Léon'
|
||||||
|
spec.email = 'malo.leon@wyatt-studio.fr'
|
||||||
|
|
||||||
|
spec.summary = 'Testflight and AppStore deployment plugin for Fastlane, simplifying the build and deployment porcess to internal, external, and production channels, and promoting builds for testing.'
|
||||||
|
# spec.homepage = "https://github.com/<GITHUB_USERNAME>/fastlane-plugin-ios_cd"
|
||||||
|
spec.license = "MIT"
|
||||||
|
|
||||||
|
spec.files = Dir["lib/**/*"] + %w(README.md LICENSE)
|
||||||
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
||||||
|
spec.require_paths = ['lib']
|
||||||
|
|
||||||
|
spec.required_ruby_version = '>= 2.6'
|
||||||
|
|
||||||
|
# Don't add a dependency to fastlane or fastlane_re
|
||||||
|
# since this would cause a circular dependency
|
||||||
|
|
||||||
|
# spec.add_dependency 'your-dependency', '~> 1.0.0'
|
||||||
|
|
||||||
|
spec.add_development_dependency('bundler')
|
||||||
|
spec.add_development_dependency('fastlane', '>= 2.212.2')
|
||||||
|
spec.add_development_dependency('pry')
|
||||||
|
spec.add_development_dependency('rake')
|
||||||
|
spec.add_development_dependency('rspec')
|
||||||
|
spec.add_development_dependency('rspec_junit_formatter')
|
||||||
|
spec.add_development_dependency('rubocop', '1.12.1')
|
||||||
|
spec.add_development_dependency('rubocop-performance')
|
||||||
|
spec.add_development_dependency('rubocop-require_tools')
|
||||||
|
spec.add_development_dependency('simplecov')
|
||||||
|
end
|
3
plugins/fastlane-plugin-ios_cd/fastlane/Fastfile
Normal file
3
plugins/fastlane-plugin-ios_cd/fastlane/Fastfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
lane :test do
|
||||||
|
ios_cd
|
||||||
|
end
|
1
plugins/fastlane-plugin-ios_cd/fastlane/Pluginfile
Normal file
1
plugins/fastlane-plugin-ios_cd/fastlane/Pluginfile
Normal file
@ -0,0 +1 @@
|
|||||||
|
# Autogenerated by fastlane
|
16
plugins/fastlane-plugin-ios_cd/lib/fastlane/plugin/ios_cd.rb
Normal file
16
plugins/fastlane-plugin-ios_cd/lib/fastlane/plugin/ios_cd.rb
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
require 'fastlane/plugin/ios_cd/version'
|
||||||
|
|
||||||
|
module Fastlane
|
||||||
|
module IosCd
|
||||||
|
# Return all .rb files inside the "actions" and "helper" directory
|
||||||
|
def self.all_classes
|
||||||
|
Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# By default we want to import all available actions and helpers
|
||||||
|
# A plugin can contain any number of actions and plugins
|
||||||
|
Fastlane::IosCd.all_classes.each do |current|
|
||||||
|
require current
|
||||||
|
end
|
@ -0,0 +1,47 @@
|
|||||||
|
require 'fastlane/action'
|
||||||
|
require_relative '../helper/ios_cd_helper'
|
||||||
|
|
||||||
|
module Fastlane
|
||||||
|
module Actions
|
||||||
|
class IosCdAction < Action
|
||||||
|
def self.run(params)
|
||||||
|
UI.message("The ios_cd plugin is working!")
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.description
|
||||||
|
"Testflight and AppStore deployment plugin for Fastlane, simplifying the build and deployment porcess to internal, external, and production channels, and promoting builds for testing."
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.authors
|
||||||
|
["Malo Léon"]
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.return_value
|
||||||
|
# If your method provides a return value, you can describe here what it does
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.details
|
||||||
|
# Optional:
|
||||||
|
"The Fastlane Testflight / Appstore deloyment action streamlines the build and deployment to internal, external and production channels. Allow you to promote builds on testflight beta tests."
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.available_options
|
||||||
|
[
|
||||||
|
# FastlaneCore::ConfigItem.new(key: :your_option,
|
||||||
|
# env_name: "IOS_CD_YOUR_OPTION",
|
||||||
|
# description: "A description of your option",
|
||||||
|
# optional: false,
|
||||||
|
# type: String)
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.is_supported?(platform)
|
||||||
|
# Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
|
||||||
|
# See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
|
||||||
|
#
|
||||||
|
# [:ios, :mac, :android].include?(platform)
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,16 @@
|
|||||||
|
require 'fastlane_core/ui/ui'
|
||||||
|
|
||||||
|
module Fastlane
|
||||||
|
UI = FastlaneCore::UI unless Fastlane.const_defined?("UI")
|
||||||
|
|
||||||
|
module Helper
|
||||||
|
class IosCdHelper
|
||||||
|
# class methods that you define here become available in your action
|
||||||
|
# as `Helper::IosCdHelper.your_method`
|
||||||
|
#
|
||||||
|
def self.show_message
|
||||||
|
UI.message("Hello from the ios_cd plugin helper!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,5 @@
|
|||||||
|
module Fastlane
|
||||||
|
module IosCd
|
||||||
|
VERSION = "0.1.0"
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,9 @@
|
|||||||
|
describe Fastlane::Actions::IosCdAction do
|
||||||
|
describe '#run' do
|
||||||
|
it 'prints a message' do
|
||||||
|
expect(Fastlane::UI).to receive(:message).with("The ios_cd plugin is working!")
|
||||||
|
|
||||||
|
Fastlane::Actions::IosCdAction.run(nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
15
plugins/fastlane-plugin-ios_cd/spec/spec_helper.rb
Normal file
15
plugins/fastlane-plugin-ios_cd/spec/spec_helper.rb
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
$LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
|
||||||
|
|
||||||
|
require 'simplecov'
|
||||||
|
|
||||||
|
# SimpleCov.minimum_coverage 95
|
||||||
|
SimpleCov.start
|
||||||
|
|
||||||
|
# This module is only used to check the environment is currently a testing env
|
||||||
|
module SpecHelper
|
||||||
|
end
|
||||||
|
|
||||||
|
require 'fastlane' # to import the Action super class
|
||||||
|
require 'fastlane/plugin/ios_cd' # import the actual plugin
|
||||||
|
|
||||||
|
Fastlane.load_actions # load other actions (in case your plugin calls other actions or shared values)
|
Loading…
x
Reference in New Issue
Block a user