highway 1.0.3 → 1.0.6
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 +4 -4
- data/lib/highway/steps/library/appcenter.rb +24 -16
- data/lib/highway/steps/library/code_sign.rb +128 -0
- data/lib/highway/steps/library/xcode_test.rb +2 -0
- data/lib/highway/version.rb +1 -1
- metadata +49 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 470af68392dfcbc58452bc54eb5bea71bfe008b83b03de55b0f902113694298a
|
4
|
+
data.tar.gz: d86fc2e7fcd80362a98a688d6500972af20c5528cfa2b487f9deba97b007e997
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bead069ffbdf46d9221aa99b2feb1407dd50fb724fa1c5e30ce6cca9ae5e4e7cb3a3c9285a22a49efd43fe5db28bd26ea4428fb90566d22fa7e30dd570af857
|
7
|
+
data.tar.gz: 5a464d1abb3fde76a40acd5ddfe280ad8110ec1138340f71e59a2744821e30a856d0b9037efa54819360348a78ebca7da7e20e4a3ff5934c5c672dfc43153760
|
@@ -10,9 +10,9 @@ require "highway/steps/infrastructure"
|
|
10
10
|
module Highway
|
11
11
|
module Steps
|
12
12
|
module Library
|
13
|
-
|
13
|
+
|
14
14
|
class AppCenterStep < Step
|
15
|
-
|
15
|
+
|
16
16
|
def self.name
|
17
17
|
"appcenter"
|
18
18
|
end
|
@@ -20,7 +20,7 @@ module Highway
|
|
20
20
|
def self.plugin_name
|
21
21
|
"fastlane-plugin-appcenter"
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def self.parameters
|
25
25
|
[
|
26
26
|
Parameters::Single.new(
|
@@ -60,12 +60,18 @@ module Highway
|
|
60
60
|
required: false,
|
61
61
|
type: Types::Bool.new(),
|
62
62
|
default: false
|
63
|
+
),
|
64
|
+
Parameters::Single.new(
|
65
|
+
name: "release_notes",
|
66
|
+
required: false,
|
67
|
+
type: Types::String.new(),
|
68
|
+
default: ""
|
63
69
|
)
|
64
70
|
]
|
65
71
|
end
|
66
|
-
|
72
|
+
|
67
73
|
def self.run(parameters:, context:, report:)
|
68
|
-
|
74
|
+
|
69
75
|
app_name = parameters["app_name"]
|
70
76
|
api_token = parameters["api_token"]
|
71
77
|
destinations = parameters["distribution_group"]
|
@@ -73,9 +79,10 @@ module Highway
|
|
73
79
|
notify = parameters["notify"]
|
74
80
|
owner_name = parameters["owner_name"]
|
75
81
|
upload_dsym_only = parameters["upload_dsym_only"]
|
82
|
+
release_notes = parameters["release_notes"]
|
76
83
|
|
77
84
|
context.assert_gem_available!(plugin_name)
|
78
|
-
|
85
|
+
|
79
86
|
context.run_action("appcenter_upload", options: {
|
80
87
|
api_token: api_token,
|
81
88
|
owner_name: owner_name,
|
@@ -83,34 +90,35 @@ module Highway
|
|
83
90
|
destinations: destinations,
|
84
91
|
notify_testers: notify,
|
85
92
|
dsym: dsym,
|
86
|
-
upload_dsym_only: upload_dsym_only
|
93
|
+
upload_dsym_only: upload_dsym_only,
|
94
|
+
release_notes: release_notes
|
87
95
|
})
|
88
|
-
|
96
|
+
|
89
97
|
response = context.fastlane_lane_context[:APPCENTER_BUILD_INFORMATION]
|
90
98
|
|
91
99
|
unless response.nil?
|
92
100
|
report[:deployment] = {
|
93
|
-
|
101
|
+
|
94
102
|
service: "AppCenter",
|
95
|
-
|
103
|
+
|
96
104
|
package: {
|
97
105
|
name: response["app_display_name"],
|
98
106
|
version: response["short_version"],
|
99
107
|
build: response["version"],
|
100
108
|
},
|
101
|
-
|
109
|
+
|
102
110
|
urls: {
|
103
111
|
install: response["install_url"],
|
104
112
|
view: response["download_url"],
|
105
113
|
},
|
106
|
-
|
114
|
+
|
107
115
|
}
|
108
116
|
end
|
109
|
-
|
117
|
+
|
110
118
|
end
|
111
|
-
|
119
|
+
|
112
120
|
end
|
113
|
-
|
121
|
+
|
114
122
|
end
|
115
123
|
end
|
116
|
-
end
|
124
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
#
|
2
|
+
# code_sign.rb
|
3
|
+
# Copyright © 2020 Netguru S.A. All rights reserved.
|
4
|
+
#/
|
5
|
+
|
6
|
+
require "highway/steps/infrastructure"
|
7
|
+
require "gpgme"
|
8
|
+
|
9
|
+
module Highway
|
10
|
+
module Steps
|
11
|
+
module Library
|
12
|
+
|
13
|
+
class CodeSignStep < Step
|
14
|
+
|
15
|
+
def self.name
|
16
|
+
"code_sign"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.parameters
|
20
|
+
[
|
21
|
+
Parameters::Single.new(
|
22
|
+
name: "path",
|
23
|
+
required: true,
|
24
|
+
type: Types::String.new()
|
25
|
+
),
|
26
|
+
Parameters::Single.new(
|
27
|
+
name: "passphrase",
|
28
|
+
required: true,
|
29
|
+
type: Types::String.new()
|
30
|
+
),
|
31
|
+
Parameters::Single.new(
|
32
|
+
name: "keychain_name",
|
33
|
+
required: false,
|
34
|
+
type: Types::String.new()
|
35
|
+
),
|
36
|
+
Parameters::Single.new(
|
37
|
+
name: "keychain_password",
|
38
|
+
required: false,
|
39
|
+
type: Types::String.new()
|
40
|
+
)
|
41
|
+
]
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.run(parameters:, context:, report:)
|
45
|
+
path = parameters["path"]
|
46
|
+
passphrase = parameters["passphrase"]
|
47
|
+
keychain_name = parameters["keychain_name"]
|
48
|
+
keychain_password = parameters["keychain_password"]
|
49
|
+
|
50
|
+
# First of all, check if file exist.
|
51
|
+
|
52
|
+
unless File.exist?(path)
|
53
|
+
context.interface.fatal!("File '#{path}' does not exist.")
|
54
|
+
end
|
55
|
+
|
56
|
+
# Now prepare output directory and file.
|
57
|
+
|
58
|
+
output_temp_dir = Dir.mktmpdir()
|
59
|
+
output_archive_name = "decrypted.zip"
|
60
|
+
output_file_path = File.join(output_temp_dir, output_archive_name)
|
61
|
+
output_file = File.open(output_file_path, "w+")
|
62
|
+
|
63
|
+
# Decrypt given archive.
|
64
|
+
|
65
|
+
crypto = GPGME::Crypto.new
|
66
|
+
begin
|
67
|
+
crypto.decrypt(File.open(path), { :password => passphrase, :output => output_file, :pinentry_mode => GPGME::PINENTRY_MODE_LOOPBACK })
|
68
|
+
rescue
|
69
|
+
context.interface.fatal!("Cannot decrypt with given passphrase.")
|
70
|
+
end
|
71
|
+
|
72
|
+
# Unzip decrypted archive.
|
73
|
+
|
74
|
+
zipped_files = Array[]
|
75
|
+
Zip::File.open(output_file_path) do |zip_file|
|
76
|
+
zip_file.each do |file|
|
77
|
+
file_path = File.join(output_temp_dir, file.name)
|
78
|
+
unless file_path.match?(/\.DS_Store|__MACOSX|(^|\/)\._/)
|
79
|
+
zip_file.extract(file, file_path) unless File.exist?(file_path)
|
80
|
+
zipped_files.push(file_path) unless File.directory?(file_path)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# Filter paths to certificates and profiles.
|
86
|
+
|
87
|
+
provisioning_profile_paths = zipped_files.grep(/.*\.mobileprovision/)
|
88
|
+
certificates_paths = zipped_files.grep(/.*\.p12/)
|
89
|
+
|
90
|
+
# Prepare new keychain.
|
91
|
+
|
92
|
+
keychain_name = "highway.keychain-db" if keychain_name.nil?
|
93
|
+
keychain_password = passphrase if keychain_password.nil?
|
94
|
+
context.run_action("create_keychain", options: {
|
95
|
+
name: keychain_name,
|
96
|
+
password: keychain_password,
|
97
|
+
default_keychain: true,
|
98
|
+
unlock: true,
|
99
|
+
timeout: 72000,
|
100
|
+
lock_when_sleeps: true,
|
101
|
+
lock_after_timeout: true,
|
102
|
+
add_to_search_list: true
|
103
|
+
})
|
104
|
+
|
105
|
+
# Install provisioning profiles.
|
106
|
+
|
107
|
+
provisioning_profile_paths.each do |path|
|
108
|
+
context.run_action("install_provisioning_profile", options: {
|
109
|
+
path: path
|
110
|
+
})
|
111
|
+
end
|
112
|
+
|
113
|
+
# Install certificates.
|
114
|
+
|
115
|
+
certificates_paths.each do |path|
|
116
|
+
context.run_action("import_certificate", options: {
|
117
|
+
certificate_path: path,
|
118
|
+
certificate_password: passphrase,
|
119
|
+
keychain_name: keychain_name,
|
120
|
+
keychain_password: keychain_password
|
121
|
+
})
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
@@ -111,6 +111,7 @@ module Highway
|
|
111
111
|
output_dir = context.artifacts_dir
|
112
112
|
output_types = ["html", "junit"].join(",")
|
113
113
|
output_files = [output_html_file, output_junit_file].join(",")
|
114
|
+
xcodebuild_formatter = "xcpretty"
|
114
115
|
|
115
116
|
# Prepare temporary variables.
|
116
117
|
|
@@ -139,6 +140,7 @@ module Highway
|
|
139
140
|
output_directory: output_dir,
|
140
141
|
output_types: output_types,
|
141
142
|
output_files: output_files,
|
143
|
+
xcodebuild_formatter: xcodebuild_formatter,
|
142
144
|
|
143
145
|
})
|
144
146
|
|
data/lib/highway/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: highway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Netguru
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fastlane
|
@@ -90,6 +90,46 @@ dependencies:
|
|
90
90
|
- - "<="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: 1.0.0
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: gpgme
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 2.0.0
|
100
|
+
- - "<="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 3.0.0
|
103
|
+
type: :runtime
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 2.0.0
|
110
|
+
- - "<="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 3.0.0
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rubyzip
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 2.0.0
|
120
|
+
- - "<="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 3.0.0
|
123
|
+
type: :runtime
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: 2.0.0
|
130
|
+
- - "<="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 3.0.0
|
93
133
|
- !ruby/object:Gem::Dependency
|
94
134
|
name: rake
|
95
135
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,8 +172,8 @@ dependencies:
|
|
132
172
|
- - "~>"
|
133
173
|
- !ruby/object:Gem::Version
|
134
174
|
version: 0.17.0
|
135
|
-
description:
|
136
|
-
email:
|
175
|
+
description:
|
176
|
+
email:
|
137
177
|
executables: []
|
138
178
|
extensions: []
|
139
179
|
extra_rdoc_files: []
|
@@ -172,6 +212,7 @@ files:
|
|
172
212
|
- lib/highway/steps/library/appstore.rb
|
173
213
|
- lib/highway/steps/library/carthage.rb
|
174
214
|
- lib/highway/steps/library/cocoapods.rb
|
215
|
+
- lib/highway/steps/library/code_sign.rb
|
175
216
|
- lib/highway/steps/library/copy_artifacts.rb
|
176
217
|
- lib/highway/steps/library/lane.rb
|
177
218
|
- lib/highway/steps/library/sh.rb
|
@@ -201,7 +242,7 @@ licenses:
|
|
201
242
|
- MIT
|
202
243
|
metadata:
|
203
244
|
source_code_uri: https://github.com/netguru/highway
|
204
|
-
post_install_message:
|
245
|
+
post_install_message:
|
205
246
|
rdoc_options: []
|
206
247
|
require_paths:
|
207
248
|
- lib
|
@@ -216,8 +257,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
257
|
- !ruby/object:Gem::Version
|
217
258
|
version: '0'
|
218
259
|
requirements: []
|
219
|
-
rubygems_version: 3.1.
|
220
|
-
signing_key:
|
260
|
+
rubygems_version: 3.1.6
|
261
|
+
signing_key:
|
221
262
|
specification_version: 4
|
222
263
|
summary: Build system on top of Fastlane.
|
223
264
|
test_files: []
|