eyes_universal 3.3.0 → 3.3.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eea834af670d09a019f4d74e7814d1b85d268f38e93292a519369ddde6c30de9
|
4
|
+
data.tar.gz: 6083847c1f541f461b29e09d2a1c2a4e3bb062e8a8349e1241e0a5bbd2d54753
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6747df8170b717900e196e874f099230080e0a6039a7701759a6bec1ab7ac81e31a1113a33d667ed7fa37684109553e0b7c470d34ef0d223ea9131f0e934617
|
7
|
+
data.tar.gz: dfd08c7458e3226ea5f0ab0206f71a2334b1ed65b57072fafa1f1069e0eb2840d46a44852496b38e2d58477114a664f2d6ac760db69fdd5f982f3c2ff9ce075b
|
data/ext/eyes-universal/Rakefile
CHANGED
@@ -7,8 +7,19 @@ DOWNLOADER_PATH = File.expand_path('../../lib/applitools/universal_sdk/universal
|
|
7
7
|
require DOWNLOADER_PATH
|
8
8
|
|
9
9
|
desc "Download universal server binaries"
|
10
|
-
task :default => [:
|
10
|
+
task :default => [:prepare_server]
|
11
11
|
|
12
|
+
# depricated
|
12
13
|
file "get_server" do
|
13
14
|
Applitools::UniversalServerDownloader.download(File.dirname(__FILE__))
|
14
15
|
end
|
16
|
+
|
17
|
+
# build
|
18
|
+
file "get_server_compressed" do
|
19
|
+
Applitools::UniversalServerDownloader.tar_gz_download(File.dirname(__FILE__))
|
20
|
+
end
|
21
|
+
|
22
|
+
# install
|
23
|
+
file "prepare_server" do
|
24
|
+
Applitools::UniversalServerDownloader.prepare_server(File.dirname(__FILE__))
|
25
|
+
end
|
Binary file
|
@@ -3,11 +3,22 @@
|
|
3
3
|
require 'open-uri'
|
4
4
|
require 'digest'
|
5
5
|
require 'fileutils'
|
6
|
+
require 'rubygems/package'
|
7
|
+
require 'zlib'
|
6
8
|
|
7
9
|
module Applitools
|
8
10
|
class UniversalServerDownloader
|
9
11
|
class << self
|
10
12
|
|
13
|
+
EXPECTED_SHA = {
|
14
|
+
'core.tar.gz' => '220f932255e3a5045af16b2433e9b96c8774150a47a5d8806e1bd4eedbffa1de',
|
15
|
+
'core-alpine' => 'f4f9834b0a17c6c81da9177de99ad4618178fe1fcda358a19424651b80d06a2e',
|
16
|
+
'core-linux' => '05b3c1490d2743a9ffc94edbd13024beaf1491b4d34c9d24cfc63db72157f00e',
|
17
|
+
'core-linux-arm64' => '62d86656a203718f8f92aefe55d7b7419999307f19e2c68f321bbd0b37e1a0b5',
|
18
|
+
'core-macos' => '1ad02f8fc7fb2b501fd48214af3866999be5a2b7fddabd7fd8bef7272818ed6f',
|
19
|
+
'core-win.exe' => '74eb7bc0a31b991ac5eac75d3f74b33b751009a1bd54b61b1bece26b5de94f3a'
|
20
|
+
}
|
21
|
+
|
11
22
|
def download(to)
|
12
23
|
puts "[eyes-universal] Downloading Eyes universal server from #{full_url}"
|
13
24
|
where = filepath(to)
|
@@ -24,6 +35,75 @@ module Applitools
|
|
24
35
|
File.expand_path(filename, to)
|
25
36
|
end
|
26
37
|
|
38
|
+
def tar_gz_filepath(to)
|
39
|
+
File.expand_path(tar_gz_filename, to)
|
40
|
+
end
|
41
|
+
|
42
|
+
def tar_gz_download(to) # build
|
43
|
+
puts "[eyes-universal] Downloading Core server from #{tar_gz_full_url}"
|
44
|
+
where = tar_gz_filepath(to)
|
45
|
+
unless File.exist?(where) && Digest::SHA256.file(where).to_s == tar_gz_sha
|
46
|
+
tar_gz_full_url.open {|cloud| File.binwrite(where, cloud.read) }
|
47
|
+
end
|
48
|
+
downloaded_sha = Digest::SHA256.file(where).to_s
|
49
|
+
if downloaded_sha == tar_gz_sha
|
50
|
+
Gem::Package::TarReader.new(Zlib::GzipReader.open(where)) do |tar|
|
51
|
+
tar.each do |entry|
|
52
|
+
binary_filename = File.basename(entry.full_name)
|
53
|
+
dest = File.expand_path(binary_filename, to)
|
54
|
+
dest_dir = File.dirname(dest)
|
55
|
+
FileUtils.mkdir_p(dest_dir) unless Dir.exist?(dest_dir)
|
56
|
+
FileUtils.remove_file(dest) if File.exist?(dest)
|
57
|
+
File.open(dest, 'wb') {|f| f.print entry.read }
|
58
|
+
|
59
|
+
binary_sha = Digest::SHA256.file(dest).to_s
|
60
|
+
if check_binary(binary_filename, binary_sha)
|
61
|
+
FileUtils.chmod('+x', dest)
|
62
|
+
puts "[eyes-universal] Binary check pass #{binary_filename} (#{Applitools::UNIVERSAL_CORE_VERSION}): #{dest}"
|
63
|
+
FileUtils.rm(dest)
|
64
|
+
else
|
65
|
+
raise "[eyes-universal] Binary fail #{binary_filename} (#{Applitools::UNIVERSAL_CORE_VERSION}): #{binary_sha}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
puts "[eyes-universal] Download complete (#{Applitools::UNIVERSAL_CORE_VERSION}). Server placed in #{where}"
|
70
|
+
else
|
71
|
+
raise "[eyes-universal] Download broken. (mismatch: #{downloaded_sha})"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def prepare_server(to) # install
|
76
|
+
where = tar_gz_filepath(to)
|
77
|
+
downloaded_sha = Digest::SHA256.file(where).to_s
|
78
|
+
puts "[eyes-universal] prepare server : #{where} #{downloaded_sha}"
|
79
|
+
|
80
|
+
if downloaded_sha == tar_gz_sha
|
81
|
+
Gem::Package::TarReader.new(Zlib::GzipReader.open(where)) do |tar|
|
82
|
+
tar.each do |entry|
|
83
|
+
binary_filename = File.basename(entry.full_name)
|
84
|
+
if filename != binary_filename
|
85
|
+
puts "[eyes-universal] skip #{binary_filename}"
|
86
|
+
next
|
87
|
+
end
|
88
|
+
puts "[eyes-universal] process #{binary_filename}"
|
89
|
+
unpacked_binary = File.expand_path(binary_filename, to)
|
90
|
+
# FileUtils.remove_file(unpacked_binary) if File.exist?(unpacked_binary)
|
91
|
+
File.open(unpacked_binary, 'wb') {|f| f.print entry.read }
|
92
|
+
|
93
|
+
binary_sha = Digest::SHA256.file(unpacked_binary).to_s
|
94
|
+
if check_binary(binary_filename, binary_sha)
|
95
|
+
FileUtils.chmod('+x', unpacked_binary)
|
96
|
+
puts "[eyes-universal] Binary ready #{binary_filename} (#{Applitools::UNIVERSAL_CORE_VERSION}) at #{unpacked_binary}"
|
97
|
+
else
|
98
|
+
puts "[eyes-universal] Binary check fail #{binary_filename} (#{Applitools::UNIVERSAL_CORE_VERSION}): #{binary_sha}"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
else
|
103
|
+
puts "[eyes-universal] Server broken. (mismatch: #{downloaded_sha})"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
27
107
|
private
|
28
108
|
|
29
109
|
def base_url
|
@@ -35,18 +115,18 @@ module Applitools
|
|
35
115
|
end
|
36
116
|
|
37
117
|
def expected_binary_sha
|
38
|
-
return '
|
118
|
+
return EXPECTED_SHA['core-win.exe'] if Gem.win_platform?
|
39
119
|
case RUBY_PLATFORM
|
40
120
|
when /darwin/i
|
41
|
-
'
|
121
|
+
EXPECTED_SHA['core-macos']
|
42
122
|
when /arm/i
|
43
|
-
'
|
123
|
+
EXPECTED_SHA['core-linux-arm64']
|
44
124
|
when /mswin|windows|mingw/i
|
45
|
-
'
|
125
|
+
EXPECTED_SHA['core-win.exe']
|
46
126
|
when /musl/i
|
47
|
-
'
|
127
|
+
EXPECTED_SHA['core-alpine']
|
48
128
|
when /linux|arch/i
|
49
|
-
'
|
129
|
+
EXPECTED_SHA['core-linux']
|
50
130
|
else
|
51
131
|
raise 'Unsupported platform'
|
52
132
|
end
|
@@ -70,6 +150,23 @@ module Applitools
|
|
70
150
|
end
|
71
151
|
end
|
72
152
|
|
153
|
+
def tar_gz_full_url
|
154
|
+
URI.join(base_url, tar_gz_filename)
|
155
|
+
end
|
156
|
+
|
157
|
+
def tar_gz_filename
|
158
|
+
'core.tar.gz'
|
159
|
+
end
|
160
|
+
def tar_gz_sha
|
161
|
+
EXPECTED_SHA[tar_gz_filename]
|
162
|
+
end
|
163
|
+
|
164
|
+
def check_binary(binary_filename, binary_sha)
|
165
|
+
expected_sha = EXPECTED_SHA[binary_filename]
|
166
|
+
raise "Unsupported platform #{binary_filename}" if expected_sha.nil?
|
167
|
+
binary_sha == expected_sha
|
168
|
+
end
|
169
|
+
|
73
170
|
end
|
74
171
|
end
|
75
172
|
end
|
data/lib/applitools/version.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
|
3
3
|
module Applitools
|
4
|
-
VERSION = '4.6.
|
5
|
-
IMAGES_VERSION = '4.2.
|
6
|
-
UNIVERSAL_VERSION = '3.3.
|
7
|
-
UNIVERSAL_CORE_VERSION = '2.
|
4
|
+
VERSION = '4.6.1'.freeze
|
5
|
+
IMAGES_VERSION = '4.2.1'.freeze
|
6
|
+
UNIVERSAL_VERSION = '3.3.1'.freeze
|
7
|
+
UNIVERSAL_CORE_VERSION = '2.4.8'.freeze
|
8
8
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eyes_universal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Applitools Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: open-uri
|
@@ -53,6 +53,7 @@ extensions:
|
|
53
53
|
extra_rdoc_files: []
|
54
54
|
files:
|
55
55
|
- ext/eyes-universal/Rakefile
|
56
|
+
- ext/eyes-universal/core.tar.gz
|
56
57
|
- lib/applitools/universal_sdk/universal_server_downloader.rb
|
57
58
|
- lib/applitools/version.rb
|
58
59
|
homepage: https://www.applitools.com
|