fastlane-plugin-setapp 0.1.2 → 0.2.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
  SHA256:
3
- metadata.gz: fc1024c8f31f8dd627ada9cc4bdd870f5b8ae5525898e72e393a13f6b67323ef
4
- data.tar.gz: 3bc2703302d421779a968d298b218f47aca8f5c913848811a947c4fbb5293f3d
3
+ metadata.gz: 72b75b5b716e6794fa7c41084e4e6007051009f5543e610c8ded30b751064520
4
+ data.tar.gz: 19b140655decdbf092b19195804fb4ec26038c6b99d9df015391373e93e7d837
5
5
  SHA512:
6
- metadata.gz: 6805b3d1c4c709b2fd50896d346bb135ed6a3bc5d24935ceef5e3792fbbdaca4635934087fee6d693e8b76f6ee0d601d79e74ee0e0f7e02a927bf4fe5d9dee1e
7
- data.tar.gz: f16a61cb882858f8337a54ae2a2681a29d773f206b2f4b6cb1766f55bb4d46d9f15581a12611c36ac3db0bdabc52f411520c2327f70dd86fc5c0c9508a23b8d0
6
+ metadata.gz: 48a06c152d5e0b80988112027359e627efda2606aee861cd30f7ddab84c5ef996c726a46689e36ae64054f82b1c41f391cf8e3c93121d9a95d21fffa04ae14d7
7
+ data.tar.gz: 974f5271ad85c5efba2a3c5b56dc3f879842f6cbe472cc870ecd689bda8a216c3b2870dc0ba425330c0e10713ffce3a141815583cf5bcd59b8542c46b5580c6c
data/README.md CHANGED
@@ -46,11 +46,13 @@ Uploads new version to Setapp and save it as a draft or send to a review process
46
46
 
47
47
  ```ruby
48
48
  upload_setapp_build(
49
- api_token: '...', # Your Setapp API token
49
+ automation_token: '...', # Your Setapp Automation token
50
50
  build_path: '...', # The path to archive with a new Setapp build
51
51
  release_notes: '...', # Text or path to a file that contains release notes for a new version
52
52
  version_status: 'review', # Version status. It can be `draft` or `review`
53
- release_on_approval: true # Indicates whether Setapp must publish a new version after review
53
+ release_on_approval: true, # Indicates whether Setapp must publish a new version after review
54
+ is_beta: false, # Is beta or stable build
55
+ allow_overwrite: true # Allow to overwrite existing version
54
56
  )
55
57
  ```
56
58
 
@@ -5,15 +5,27 @@ module Fastlane
5
5
  module Actions
6
6
  class UploadSetappBuildAction < Action
7
7
  def self.run(params)
8
- api_token = params[:api_token]
8
+ automation_token = params[:automation_token]
9
9
  build_path = params[:build_path]
10
10
  release_notes = params[:release_notes]
11
11
  version_status = params[:version_status]
12
- release_on_approval = params[:release_on_approval]
12
+ release_on_approval = params[:release_on_approval] ? "true" : "false"
13
+ is_beta = params[:is_beta] ? "true" : "false"
14
+ allow_overwrite = params[:allow_overwrite] ? "true" : "false"
13
15
  file_dir = File.dirname(__FILE__)
14
16
  UI.user_error!("Available options for version_status: [draft, review].") unless ['draft', 'review'].include?(version_status)
15
17
  UI.message("The build at path #{build_path} will be uploaded to Setapp")
16
- exit_code = system("bash #{file_dir}/../helper/setapp_build_uploader.sh --token #{api_token} --path #{build_path} --notes #{release_notes} --status #{version_status} --release-on-approval #{release_on_approval}")
18
+ script_path = "#{file_dir}/../helper/setapp_build_uploader.sh"
19
+ exit_code = system(
20
+ "bash", script_path,
21
+ "--token", automation_token,
22
+ "--path", build_path,
23
+ "--notes", release_notes,
24
+ "--status", version_status,
25
+ "--release-on-approval", release_on_approval,
26
+ "--beta", is_beta,
27
+ "--allow-overwrite", allow_overwrite
28
+ )
17
29
  UI.user_error!("Uploading error occured. Try again.") if exit_code != true
18
30
  end
19
31
 
@@ -39,9 +51,9 @@ module Fastlane
39
51
  def self.available_options
40
52
  [
41
53
  FastlaneCore::ConfigItem.new(
42
- key: :api_token,
43
- env_name: "SETAPP_API_TOKEN",
44
- description: "Your Setapp API token",
54
+ key: :automation_token,
55
+ env_name: "SETAPP_AUTOMATION_TOKEN",
56
+ description: "Your Setapp Automation token",
45
57
  optional: false,
46
58
  sensitive: true,
47
59
  type: String
@@ -73,6 +85,22 @@ module Fastlane
73
85
  description: "Indicate whether Setapp must release new version automatically after review. Available options: `true`, `false`",
74
86
  optional: false,
75
87
  type: Boolean
88
+ ),
89
+ FastlaneCore::ConfigItem.new(
90
+ key: :is_beta,
91
+ env_name: "SETAPP_BUILD_IS_BETA",
92
+ description: "Is beta or stable build. Available options: `true`, `false`",
93
+ optional: false,
94
+ default_value: false,
95
+ type: Boolean
96
+ ),
97
+ FastlaneCore::ConfigItem.new(
98
+ key: :allow_overwrite,
99
+ env_name: "SETAPP_ALLOW_OVERWRITE",
100
+ description: "Can overwrite existing version or not. Applies to all statuses except `Approved`. Available options: `true`, `false`",
101
+ optional: false,
102
+ default_value: false,
103
+ type: Boolean
76
104
  )
77
105
  ]
78
106
  end
@@ -18,12 +18,12 @@ function help() {
18
18
 
19
19
  OPTIONS
20
20
  -t, --token
21
- Your Setapp token for continious integration.
21
+ Your Setapp Automation token for continious integration.
22
22
 
23
23
  -p, --path
24
24
  Path to an archive with a new bundle version.
25
25
 
26
- -n, -notes
26
+ -n, --notes
27
27
  Release notes for a new version. Add them as a plain text or as a path to file with text.
28
28
 
29
29
  -s, --status
@@ -35,6 +35,14 @@ function help() {
35
35
  Indicate whether Setapp must publish a new version automatically after review approval.
36
36
  Available options: (true/false)
37
37
 
38
+ -b | --beta
39
+ Is beta or stable build.
40
+ Available options: (true/false)
41
+
42
+ -a | --allow-overwrite
43
+ Can ovewrite existing version, including release notes and archive.
44
+ Available options: (true/false)
45
+
38
46
  -h, --help
39
47
  Usage help
40
48
  "
@@ -53,7 +61,7 @@ function parse_params() {
53
61
  ;;
54
62
  -t | --token)
55
63
  if test $# -gt 0; then
56
- api_token="${1}"
64
+ automation_token="${1}"
57
65
  fi
58
66
  shift;;
59
67
  -p | --path)
@@ -79,6 +87,16 @@ function parse_params() {
79
87
  release_on_approval="${1}"
80
88
  fi
81
89
  shift;;
90
+ -b | --beta)
91
+ if test $# -gt 0; then
92
+ beta="${1}"
93
+ fi
94
+ shift;;
95
+ -a| --allow-overwrite)
96
+ if test $# -gt 0; then
97
+ allow_overwrite="${1}"
98
+ fi
99
+ shift;;
82
100
  *)
83
101
  die "Invalid parameter was provided: $param" 1
84
102
  ;;
@@ -87,11 +105,13 @@ function parse_params() {
87
105
  }
88
106
 
89
107
  function check_parameters() {
90
- [[ -z "${api_token}" ]] && die "Missing required parameter: api-token"
91
- [[ -z "${archive_path}" ]] && die "Missing required parameter: archive-path"
92
- [[ -z "${release_notes}" ]] && die "Missing required parameter: release-notes"
93
- [[ -z "${version_status}" ]] && die "Missing required parameter: version-status"
108
+ [[ -z "${automation_token}" ]] && die "Missing required parameter: token"
109
+ [[ -z "${archive_path}" ]] && die "Missing required parameter: path"
110
+ [[ -z "${release_notes}" ]] && die "Missing required parameter: notes"
111
+ [[ -z "${version_status}" ]] && die "Missing required parameter: status"
94
112
  [[ -z "${release_on_approval}" ]] && die "Missing required parameter: release-on-approval"
113
+ [[ -z "${beta}" ]] && die "Missing required parameter: beta"
114
+ [[ -z "${allow_overwrite}" ]] && die "Missing required parameter: allow-ovewrite"
95
115
  }
96
116
 
97
117
  function validate_server_response() {
@@ -102,7 +122,7 @@ function validate_server_response() {
102
122
  if [ "$response_code" -ge 200 ] && [ "$response_code" -lt 300 ]; then
103
123
  echo "✅ The app version is uploaded. All checks are passed."
104
124
  elif [ $response_code -eq 401 ]; then
105
- die "⚠️ Something went wrong with your API token.\n${response_body}"
125
+ die "⚠️ Something went wrong with your Setapp Automation token.\n${response_body}"
106
126
  elif [ $response_code -eq 400 ]; then
107
127
  die "🚨 Bundle validation error occured. See details in description below.\n${response_body}"
108
128
  else
@@ -110,16 +130,18 @@ function validate_server_response() {
110
130
  fi
111
131
  }
112
132
 
113
- function upload_binary() {
133
+ function create_or_overwrite_existing_app_version() {
114
134
  response=$(
115
135
  curl -X POST "https://developer-api.setapp.com/v1/ci/version" \
116
136
  --write-out "HTTPSTATUS:%{http_code}" \
117
- -H "Authorization: Bearer ${api_token}" \
137
+ -H "Authorization: Bearer ${automation_token}" \
118
138
  -H "accept: application/json" \
119
139
  -H "Content-Type: multipart/form-data" \
120
140
  -F "release_notes=${release_notes}" \
121
141
  -F "status=${version_status}" \
122
142
  -F "release_on_approval=${release_on_approval}" \
143
+ -F "beta=${beta}" \
144
+ -F "allow_overwrite=${allow_overwrite}" \
123
145
  -F "archive=@${archive_path};type=application/zip"
124
146
  )
125
147
  validate_server_response "${response}"
@@ -128,7 +150,7 @@ function upload_binary() {
128
150
  function main() {
129
151
  parse_params "$@"
130
152
  check_parameters
131
- upload_binary
153
+ create_or_overwrite_existing_app_version
132
154
  }
133
155
 
134
156
  main "$@"
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Setapp
3
- VERSION = "0.1.2"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-setapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Setapp Limited
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-27 00:00:00.000000000 Z
11
+ date: 2023-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler