fastlane-plugin-bitrise_automation 0.3.0 → 0.3.1

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: 9d3274b3ed05105c2dfe8956fea4c8d55fae8d1aed5ec7f9bae15ed076cf88a3
4
- data.tar.gz: 4dc775d7576c6fecdaa85baee71c505238f7cdb5f2740b44670f9a3e8fe21d65
3
+ metadata.gz: 995f0a752fe79b180ba1fbd4d9f74b8dba9b61946dfc4ae8f0234d5eb9dd1e87
4
+ data.tar.gz: 7637f6ad20acb0880c3f0c9e3455c86fa058a24788266b56a3c8b7c5b6cac9bc
5
5
  SHA512:
6
- metadata.gz: 7d356dbe591e4a55d144e105c5d52a982f32dd93fa7cb05f703d5bdcac9b58d20b3dbc5f791301c6bf066bd040834cb159b18ecd5a746461c0a11b24d22774f5
7
- data.tar.gz: 4748f02214eac06df6a3630c42196d15205d980733d65743ba36dbe1cb39aac7790795634eec7544687b4bee2c9fc83ad93537508046dcd1dc1aa52a707aef5e
6
+ metadata.gz: 06054d6a913718bc2ae33e4705d3238b573fc7a1f6fb0da068c8a41f653d7a53d07ecb4133f67bb20c3c06c4b0abfa2d22aa27a8f67b3617c30c811efdf55505
7
+ data.tar.gz: 6b68a62d4ed134d5619bdc9021c9cf516aac6d4b3079f9b767a36e3896a2e8e29273b0cec9872b7f4b4b601b897dc2ad3e15bb640e215cca703bd3757a222628
data/README.md CHANGED
@@ -25,6 +25,7 @@ This plugin assumes you already have an app configured on Bitrise and uses a Per
25
25
  - Check build success/failure (exiting with success or failure according to the status on Bitrise)
26
26
  - Retrieve the list of artifacts from a build
27
27
  - Download the artifacts produced by a build
28
+ - Automatic retry of requests when the connection to the Bitrise API fails or returns a 5xx error
28
29
 
29
30
  ### Known issues
30
31
 
@@ -0,0 +1,38 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/bitrise_automation_helper'
3
+
4
+ module Fastlane
5
+ module Actions
6
+ class InterruptAction < Action
7
+ def self.run(params)
8
+ begin
9
+ UI.message("Test interrupt - sleeping")
10
+ sleep(60)
11
+ rescue Interrupt => e
12
+ UI.message("interrupted")
13
+ end
14
+ end
15
+
16
+ def self.description
17
+ "Trigger a Bitrise workflow with the specified parameters, synchronously or asynchronously"
18
+ end
19
+
20
+ def self.authors
21
+ ["Mario Cecchi", "Henrique Alves"]
22
+ end
23
+
24
+ def self.return_value
25
+ "Returns the information of the Bitrise build"
26
+ end
27
+
28
+ def self.available_options
29
+ [
30
+ ]
31
+ end
32
+
33
+ def self.is_supported?(platform)
34
+ true
35
+ end
36
+ end
37
+ end
38
+ end
@@ -5,6 +5,7 @@ module Fastlane
5
5
 
6
6
  module Helper
7
7
  class BitriseRequestHelper
8
+ MAX_RETRY_ATTEMPTS = 2
8
9
  class << self
9
10
  def get(params, path)
10
11
  request = Net::HTTP::Get.new("/v0.1/apps/#{params[:app_slug]}/#{path}", bitrise_headers(params[:access_token]))
@@ -14,7 +15,7 @@ module Fastlane
14
15
  def post(params, path, body)
15
16
  request = Net::HTTP::Post.new("/v0.1/apps/#{params[:app_slug]}/#{path}", bitrise_headers(params[:access_token]))
16
17
  request.body = body
17
- bitrise_client.request(request)
18
+ request_with_retries(request)
18
19
  end
19
20
 
20
21
  private
@@ -29,6 +30,29 @@ module Fastlane
29
30
  def bitrise_headers(access_token)
30
31
  { 'Content-Type' => 'application/json', 'Authorization' => access_token }
31
32
  end
33
+
34
+ def request_with_retries(request)
35
+ retries = 0
36
+ begin
37
+ response = bitrise_client.request(request)
38
+ if response.code.start_with?("5")
39
+ UI.error("Bitrise returned a server-side error. Status code: #{response.code}. #{response}")
40
+ raise "Bitrise API error: #{response.code}"
41
+ end
42
+ rescue StandardError => e
43
+ UI.error("There was an error making the request to Bitrise (retries: #{retries}). #{e}")
44
+ if retries < MAX_RETRY_ATTEMPTS
45
+ retries += 1
46
+ sleep(15)
47
+ UI.error("Retrying request (attempt #{retries})")
48
+ retry
49
+ else
50
+ UI.error("All retry attempts failed.")
51
+ raise e
52
+ end
53
+ end
54
+ response
55
+ end
32
56
  end
33
57
  end
34
58
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module BitriseAutomation
3
- VERSION = "0.3.0"
3
+ VERSION = "0.3.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-bitrise_automation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Cecchi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-28 00:00:00.000000000 Z
11
+ date: 2020-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -147,6 +147,7 @@ files:
147
147
  - lib/fastlane/plugin/bitrise_automation.rb
148
148
  - lib/fastlane/plugin/bitrise_automation/actions/bitrise_build_artifacts_action.rb
149
149
  - lib/fastlane/plugin/bitrise_automation/actions/bitrise_build_status_action.rb
150
+ - lib/fastlane/plugin/bitrise_automation/actions/interrupt_action.rb
150
151
  - lib/fastlane/plugin/bitrise_automation/actions/trigger_bitrise_workflow_action.rb
151
152
  - lib/fastlane/plugin/bitrise_automation/helper/bitrise_automation_helper.rb
152
153
  - lib/fastlane/plugin/bitrise_automation/version.rb