fastlane-plugin-bitrise_automation 0.1.0
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 +7 -0
- data/LICENSE +12 -0
- data/README.md +68 -0
- data/lib/fastlane/plugin/bitrise_automation.rb +16 -0
- data/lib/fastlane/plugin/bitrise_automation/actions/bitrise_build_artifacts_action.rb +111 -0
- data/lib/fastlane/plugin/bitrise_automation/actions/bitrise_build_status_action.rb +64 -0
- data/lib/fastlane/plugin/bitrise_automation/actions/trigger_bitrise_workflow_action.rb +121 -0
- data/lib/fastlane/plugin/bitrise_automation/helper/bitrise_automation_helper.rb +35 -0
- data/lib/fastlane/plugin/bitrise_automation/version.rb +5 -0
- metadata +177 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: '0241689ccd66d05a0836120f501ef00feffdfa51348545c49b66b32eaa01dd82'
|
4
|
+
data.tar.gz: 8e60ba4980310e128b1d8f2027ba957a93edef5da559f3a50176d22e40a3256d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6495f2a4420b45222c9c9d0a876fbb22895da86aa10c7d844f2067ebbd67be5f79c4a5001b800345e9955c9f6f6b97c01547c35013927a90c04e4526e08b4b46
|
7
|
+
data.tar.gz: a38360cbfa1de1e1cd476fa4afd768456dd443571f02e00aaa3bf489e45dc2724a431a5991333e9647e71388d4dac02b97cc8ab59d6d842661eecbbb66629dbe
|
data/LICENSE
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
ISC License (ISC)
|
2
|
+
|
3
|
+
Copyright 2019 Natura Cosméticos
|
4
|
+
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted,
|
6
|
+
provided that the above copyright notice and this permission notice appear in all copies.
|
7
|
+
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
9
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
10
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
11
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
12
|
+
THIS SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
# bitrise_automation plugin
|
2
|
+
|
3
|
+
[](https://rubygems.org/gems/fastlane-plugin-bitrise_automation)
|
4
|
+
|
5
|
+
## Getting Started
|
6
|
+
|
7
|
+
This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-bitrise_automation`, add it to your project by running:
|
8
|
+
|
9
|
+
```bash
|
10
|
+
fastlane add_plugin bitrise_automation
|
11
|
+
```
|
12
|
+
|
13
|
+
## About bitrise_automation
|
14
|
+
|
15
|
+
Interact with [Bitrise](https://bitrise.io/) projects from fastlane.
|
16
|
+
|
17
|
+
This is useful if you want to interact with Bitrise from your terminal using Fastlane or if you are encapsulating Bitrise builds from another CI (such as Jenkins).
|
18
|
+
|
19
|
+
This plugin assumes you already have an app configured on Bitrise and uses a Personal Access Token from Bitrise to communicate with the Bitrise API. Check the [official documentation](https://devcenter.bitrise.io/api/authentication/) to learn how to acquire a token.
|
20
|
+
|
21
|
+
### Features
|
22
|
+
|
23
|
+
- Trigger a workflow asynchronously (returning immediately after build has been requested)
|
24
|
+
- Trigger a workflow synchronously (waiting until the build executes and finishes)
|
25
|
+
- Check build success/failure (exiting with success or failure according to the status on Bitrise)
|
26
|
+
- Retrieve the list of artifacts from a build
|
27
|
+
- Download the artifacts produced by a build
|
28
|
+
|
29
|
+
### Known issues
|
30
|
+
|
31
|
+
- For now the only option is to trigger a build via a commit hash. It should be more flexible as Bitrise allows triggering by branch, tag, commit or default strategy.
|
32
|
+
- The author option to trigger the build is not implemented
|
33
|
+
- The environments option to trigger the build is not implemented
|
34
|
+
- Pagination on API responses is not implemented
|
35
|
+
|
36
|
+
|
37
|
+
## Example
|
38
|
+
|
39
|
+
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`.
|
40
|
+
|
41
|
+
## Run tests for this plugin
|
42
|
+
|
43
|
+
To run both the tests, and code style validation, run
|
44
|
+
|
45
|
+
```
|
46
|
+
rake
|
47
|
+
```
|
48
|
+
|
49
|
+
To automatically fix many of the styling issues, use
|
50
|
+
```
|
51
|
+
rubocop -a
|
52
|
+
```
|
53
|
+
|
54
|
+
## Issues and Feedback
|
55
|
+
|
56
|
+
For any other issues and feedback about this plugin, please submit it to this repository.
|
57
|
+
|
58
|
+
## Troubleshooting
|
59
|
+
|
60
|
+
If you have trouble using plugins, check out the [Plugins Troubleshooting](https://docs.fastlane.tools/plugins/plugins-troubleshooting/) guide.
|
61
|
+
|
62
|
+
## Using _fastlane_ Plugins
|
63
|
+
|
64
|
+
For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://docs.fastlane.tools/plugins/create-plugin/).
|
65
|
+
|
66
|
+
## About _fastlane_
|
67
|
+
|
68
|
+
_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).
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'fastlane/plugin/bitrise_automation/version'
|
2
|
+
|
3
|
+
module Fastlane
|
4
|
+
module BitriseAutomation
|
5
|
+
# Return all .rb files inside the "actions" and "helper" directory
|
6
|
+
def self.all_classes
|
7
|
+
Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
# By default we want to import all available actions and helpers
|
13
|
+
# A plugin can contain any number of actions and plugins
|
14
|
+
Fastlane::BitriseAutomation.all_classes.each do |current|
|
15
|
+
require current
|
16
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require 'fastlane/action'
|
2
|
+
require_relative '../helper/bitrise_automation_helper'
|
3
|
+
|
4
|
+
module Fastlane
|
5
|
+
module Actions
|
6
|
+
class BitriseBuildArtifactsAction < Action
|
7
|
+
def self.run(params)
|
8
|
+
response = Helper::BitriseRequestHelper.get(params, "builds/#{params[:build_slug]}/artifacts")
|
9
|
+
|
10
|
+
if response.code == "200"
|
11
|
+
json_response = JSON.parse(response.body)['data']
|
12
|
+
else
|
13
|
+
UI.crash!("Error fetching build artifacts list on Bitrise.io. Status code: #{response.code}. #{response}")
|
14
|
+
end
|
15
|
+
|
16
|
+
UI.message("Found #{json_response.size} artifacts on Bitrise for build #{params[:build_slug]}.")
|
17
|
+
|
18
|
+
artifacts = json_response.map do |artifact|
|
19
|
+
{
|
20
|
+
"title" => artifact["title"],
|
21
|
+
"artifact_type" => artifact["artifact_type"],
|
22
|
+
"slug" => artifact["slug"],
|
23
|
+
"file_size_bytes" => artifact["file_size_bytes"]
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
artifacts.each do |artifact|
|
28
|
+
FastlaneCore::PrintTable.print_values(config: artifact,
|
29
|
+
title: artifact['title'])
|
30
|
+
end
|
31
|
+
|
32
|
+
if params[:download]
|
33
|
+
artifacts_dir = 'artifacts'
|
34
|
+
UI.message("Download option is on. Will start download of #{artifacts.size} artifacts to #{artifacts_dir}.")
|
35
|
+
Dir.mkdir(artifacts_dir) unless Dir.exist?(artifacts_dir)
|
36
|
+
|
37
|
+
artifacts.each do |artifact|
|
38
|
+
UI.message("Fetching artifact '#{artifact['title']}' of type '#{artifact['artifact_type']}' (#{artifact['file_size_bytes']} bytes)...")
|
39
|
+
artifact_details = get_artifact_details(params, artifact['slug'])
|
40
|
+
|
41
|
+
download_artifact(artifact_details, artifacts_dir)
|
42
|
+
UI.message("Finished downloading artifact '#{artifact['title']}'.")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
artifacts
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.get_artifact_details(params, artifact_slug)
|
50
|
+
response = Helper::BitriseRequestHelper.get(params, "builds/#{params[:build_slug]}/artifacts/#{artifact_slug}")
|
51
|
+
|
52
|
+
if response.code == "200"
|
53
|
+
json_response = JSON.parse(response.body)['data']
|
54
|
+
else
|
55
|
+
UI.crash!("Error fetching build artifacts details on Bitrise.io. Status code: #{response.code}. #{response}")
|
56
|
+
end
|
57
|
+
|
58
|
+
json_response
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.download_artifact(artifact, dir)
|
62
|
+
file_name = artifact['title']
|
63
|
+
url = artifact['expiring_download_url']
|
64
|
+
|
65
|
+
sh("curl --fail --silent -o '#{dir}/#{file_name}' '#{url}'")
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.description
|
69
|
+
"Get the list or full contents of the artifacts produced by a build on Bitrise"
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.authors
|
73
|
+
["Mario Cecchi", "Henrique Alves"]
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.return_value
|
77
|
+
"Returns the list of artifacts produced by a build on Bitrise"
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.available_options
|
81
|
+
[
|
82
|
+
FastlaneCore::ConfigItem.new(key: :app_slug,
|
83
|
+
env_name: "BITRISE_APP_SLUG",
|
84
|
+
description: "The app slug of the project on Bitrise",
|
85
|
+
optional: false,
|
86
|
+
type: String),
|
87
|
+
FastlaneCore::ConfigItem.new(key: :access_token,
|
88
|
+
env_name: "BITRISE_ACCESS_TOKEN",
|
89
|
+
description: "The personal access token used to call Bitrise API",
|
90
|
+
optional: false,
|
91
|
+
type: String),
|
92
|
+
FastlaneCore::ConfigItem.new(key: :build_slug,
|
93
|
+
env_name: "BITRISE_BUILD_SLUG",
|
94
|
+
description: "The slug that identifies the build on Bitrise",
|
95
|
+
optional: false,
|
96
|
+
type: String),
|
97
|
+
FastlaneCore::ConfigItem.new(key: :download,
|
98
|
+
env_name: "BITRISE_ARTIFACTS_DOWNLOAD",
|
99
|
+
description: "Whether to download or not the produced artifacts",
|
100
|
+
optional: true,
|
101
|
+
default_value: false,
|
102
|
+
is_string: false)
|
103
|
+
]
|
104
|
+
end
|
105
|
+
|
106
|
+
def self.is_supported?(platform)
|
107
|
+
true
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'fastlane/action'
|
2
|
+
require_relative '../helper/bitrise_automation_helper'
|
3
|
+
|
4
|
+
module Fastlane
|
5
|
+
module Actions
|
6
|
+
class BitriseBuildStatusAction < Action
|
7
|
+
def self.run(params)
|
8
|
+
get_status(params, params[:build_slug])
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.get_status(params, build_slug)
|
12
|
+
response = Helper::BitriseRequestHelper.get(params, "builds/#{build_slug}")
|
13
|
+
|
14
|
+
if response.code == "200"
|
15
|
+
json_response = JSON.parse(response.body)['data']
|
16
|
+
else
|
17
|
+
UI.crash!("Error fetching build status on Bitrise.io. Status code: #{response.code}. #{response}")
|
18
|
+
end
|
19
|
+
|
20
|
+
build_infos = {}
|
21
|
+
build_infos["is_on_hold"] = json_response["is_on_hold"]
|
22
|
+
build_infos["status"] = json_response["status"]
|
23
|
+
build_infos["status_text"] = json_response["status_text"]
|
24
|
+
build_infos
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.description
|
28
|
+
"Get the status of the Bitrise build"
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.authors
|
32
|
+
["Mario Cecchi", "Henrique Alves"]
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.return_value
|
36
|
+
"Returns the information of the Bitrise build"
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.available_options
|
40
|
+
[
|
41
|
+
FastlaneCore::ConfigItem.new(key: :app_slug,
|
42
|
+
env_name: "BITRISE_APP_SLUG",
|
43
|
+
description: "The app slug of the project on Bitrise",
|
44
|
+
optional: false,
|
45
|
+
type: String),
|
46
|
+
FastlaneCore::ConfigItem.new(key: :access_token,
|
47
|
+
env_name: "BITRISE_ACCESS_TOKEN",
|
48
|
+
description: "The personal access token used to call Bitrise API",
|
49
|
+
optional: false,
|
50
|
+
type: String),
|
51
|
+
FastlaneCore::ConfigItem.new(key: :build_slug,
|
52
|
+
env_name: "BITRISE_BUILD_SLUG",
|
53
|
+
description: "The slug that identifies the build on Bitrise",
|
54
|
+
optional: false,
|
55
|
+
type: String)
|
56
|
+
]
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.is_supported?(platform)
|
60
|
+
true
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'fastlane/action'
|
2
|
+
require_relative '../helper/bitrise_automation_helper'
|
3
|
+
|
4
|
+
module Fastlane
|
5
|
+
module Actions
|
6
|
+
class TriggerBitriseWorkflowAction < Action
|
7
|
+
def self.run(params)
|
8
|
+
UI.verbose("Requesting new Bitrise.io build...")
|
9
|
+
|
10
|
+
response = Helper::BitriseRequestHelper.post(params, 'builds', {
|
11
|
+
hook_info: {
|
12
|
+
type: "bitrise"
|
13
|
+
},
|
14
|
+
build_params: {
|
15
|
+
workflow_id: params[:workflow],
|
16
|
+
commit_hash: params[:commit_hash],
|
17
|
+
commit_message: params[:build_message]
|
18
|
+
}
|
19
|
+
}.to_json)
|
20
|
+
|
21
|
+
if response.code == "201"
|
22
|
+
json_response = JSON.parse(response.body)
|
23
|
+
UI.success("Build triggered successfully 🚀 URL: #{json_response['build_url']}")
|
24
|
+
FastlaneCore::PrintTable.print_values(config: json_response,
|
25
|
+
title: "Bitrise API response")
|
26
|
+
else
|
27
|
+
UI.crash!("Error requesting new build on Bitrise.io. Status code: #{response.code}. #{response}")
|
28
|
+
end
|
29
|
+
|
30
|
+
build_infos = {}
|
31
|
+
build_infos["status"] = json_response["status"]
|
32
|
+
build_infos["build_url"] = json_response["build_url"]
|
33
|
+
build_infos["build_number"] = json_response["build_number"]
|
34
|
+
build_infos["build_slug"] = json_response["build_slug"]
|
35
|
+
|
36
|
+
if params[:wait_for_build]
|
37
|
+
build_status = wait_until_build_completion(params, build_infos["build_slug"])
|
38
|
+
|
39
|
+
if build_status["status"] == 1
|
40
|
+
UI.success("Build has finished successfully on Bitrise!")
|
41
|
+
build_infos["status"] = build_status["status_text"]
|
42
|
+
elsif build_status["status"] == 2
|
43
|
+
UI.build_failure!("Build has FAILED. Check Bitrise for details.")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
build_infos
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.wait_until_build_completion(params, build_slug)
|
51
|
+
build_status = {}
|
52
|
+
loop do
|
53
|
+
build_status = BitriseBuildStatusAction.get_status(params, build_slug)
|
54
|
+
|
55
|
+
break if build_status['status'] != 0
|
56
|
+
|
57
|
+
if build_status['is_on_hold']
|
58
|
+
UI.message("Build is still on hold. Sleeping...")
|
59
|
+
else
|
60
|
+
UI.message("Build is running with status '#{build_status['status_text']}'. Sleeping...")
|
61
|
+
end
|
62
|
+
|
63
|
+
sleep(30)
|
64
|
+
end
|
65
|
+
build_status
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.description
|
69
|
+
"Trigger a Bitrise workflow with the specified parameters, synchronously or asynchronously"
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.authors
|
73
|
+
["Mario Cecchi", "Henrique Alves"]
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.return_value
|
77
|
+
"Returns the information of the Bitrise build"
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.available_options
|
81
|
+
[
|
82
|
+
FastlaneCore::ConfigItem.new(key: :app_slug,
|
83
|
+
env_name: "BITRISE_APP_SLUG",
|
84
|
+
description: "The app slug of the project on Bitrise",
|
85
|
+
optional: false,
|
86
|
+
type: String),
|
87
|
+
FastlaneCore::ConfigItem.new(key: :access_token,
|
88
|
+
env_name: "BITRISE_ACCESS_TOKEN",
|
89
|
+
description: "The personal access token used to call Bitrise API",
|
90
|
+
optional: false,
|
91
|
+
type: String),
|
92
|
+
FastlaneCore::ConfigItem.new(key: :workflow,
|
93
|
+
env_name: "BITRISE_WORKFLOW",
|
94
|
+
description: "The name of the workflow on Bitrise",
|
95
|
+
optional: false,
|
96
|
+
type: String),
|
97
|
+
FastlaneCore::ConfigItem.new(key: :commit_hash,
|
98
|
+
env_name: "BITRISE_BUILD_COMMIT_HASH",
|
99
|
+
description: "The commit hash to be used on the build",
|
100
|
+
optional: false,
|
101
|
+
type: String),
|
102
|
+
FastlaneCore::ConfigItem.new(key: :build_message,
|
103
|
+
env_name: "BITRISE_BUILD_MESSAGE",
|
104
|
+
description: "A custom message that will be used to identify the build",
|
105
|
+
optional: false,
|
106
|
+
type: String),
|
107
|
+
FastlaneCore::ConfigItem.new(key: :wait_for_build,
|
108
|
+
env_name: "BITRISE_WAIT_FOR_BUILD",
|
109
|
+
description: "Whether the action should wait until the build finishes or return immediately after requesting the build",
|
110
|
+
optional: true,
|
111
|
+
default_value: false,
|
112
|
+
is_string: false)
|
113
|
+
]
|
114
|
+
end
|
115
|
+
|
116
|
+
def self.is_supported?(platform)
|
117
|
+
true
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'fastlane_core/ui/ui'
|
2
|
+
|
3
|
+
module Fastlane
|
4
|
+
UI = FastlaneCore::UI unless Fastlane.const_defined?("UI")
|
5
|
+
|
6
|
+
module Helper
|
7
|
+
class BitriseRequestHelper
|
8
|
+
class << self
|
9
|
+
def get(params, path)
|
10
|
+
request = Net::HTTP::Get.new("/v0.1/apps/#{params[:app_slug]}/#{path}", bitrise_headers(params[:access_token]))
|
11
|
+
bitrise_client.request(request)
|
12
|
+
end
|
13
|
+
|
14
|
+
def post(params, path, body)
|
15
|
+
request = Net::HTTP::Post.new("/v0.1/apps/#{params[:app_slug]}/#{path}", bitrise_headers(params[:access_token]))
|
16
|
+
request.body = body
|
17
|
+
bitrise_client.request(request)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def bitrise_client
|
23
|
+
uri = URI.parse("https://api.bitrise.io/")
|
24
|
+
https = Net::HTTP.new(uri.host, uri.port)
|
25
|
+
https.use_ssl = true
|
26
|
+
https
|
27
|
+
end
|
28
|
+
|
29
|
+
def bitrise_headers(access_token)
|
30
|
+
{ 'Content-Type' => 'application/json', 'Authorization' => access_token }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,177 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fastlane-plugin-bitrise_automation
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Mario Cecchi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-07-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: pry
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
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: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec_junit_formatter
|
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: rake
|
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
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.49.1
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.49.1
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop-require_tools
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: fastlane
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 2.150.3
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 2.150.3
|
139
|
+
description:
|
140
|
+
email: mcecchi@thoughtworks.com
|
141
|
+
executables: []
|
142
|
+
extensions: []
|
143
|
+
extra_rdoc_files: []
|
144
|
+
files:
|
145
|
+
- LICENSE
|
146
|
+
- README.md
|
147
|
+
- lib/fastlane/plugin/bitrise_automation.rb
|
148
|
+
- lib/fastlane/plugin/bitrise_automation/actions/bitrise_build_artifacts_action.rb
|
149
|
+
- lib/fastlane/plugin/bitrise_automation/actions/bitrise_build_status_action.rb
|
150
|
+
- lib/fastlane/plugin/bitrise_automation/actions/trigger_bitrise_workflow_action.rb
|
151
|
+
- lib/fastlane/plugin/bitrise_automation/helper/bitrise_automation_helper.rb
|
152
|
+
- lib/fastlane/plugin/bitrise_automation/version.rb
|
153
|
+
homepage: https://github.com/natura-cosmeticos/fastlane-plugin-bitrise-automation
|
154
|
+
licenses:
|
155
|
+
- ISC
|
156
|
+
metadata: {}
|
157
|
+
post_install_message:
|
158
|
+
rdoc_options: []
|
159
|
+
require_paths:
|
160
|
+
- lib
|
161
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '0'
|
171
|
+
requirements: []
|
172
|
+
rubygems_version: 3.0.3
|
173
|
+
signing_key:
|
174
|
+
specification_version: 4
|
175
|
+
summary: Trigger builds on Bitrise, check their status and download artifacts using
|
176
|
+
Fastlane
|
177
|
+
test_files: []
|