appium_lib 16.3.0 → 16.3.2
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/CHANGELOG.md +16 -1
- data/appium_lib.gemspec +8 -2
- data/lib/appium_lib/android/common/helper.rb +3 -3
- data/lib/appium_lib/appium.rb +5 -5
- data/lib/appium_lib/common/helper.rb +1 -1
- data/lib/appium_lib/driver.rb +2 -1
- data/lib/appium_lib/version.rb +2 -2
- data/readme.md +6 -1
- metadata +9 -27
- data/.github/CODEOWNERS +0 -1
- data/.github/ISSUE_TEMPLATE.md +0 -21
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -17
- data/.github/dependabot.yml +0 -14
- data/.github/workflows/functional-test.yml +0 -170
- data/.github/workflows/pr-title.yml +0 -10
- data/.github/workflows/rubocop.yml +0 -29
- data/.gitignore +0 -4
- data/.rubocop.yml +0 -299
- data/Gemfile +0 -25
- data/Rakefile +0 -31
- data/Thorfile +0 -7
- data/contributing.md +0 -35
- data/docs/android_uiautomator.md +0 -17
- data/docs/docs.md +0 -130
- data/docs/ios_xcuitest.md +0 -114
- data/docs/parallel.md +0 -8
- data/docs/w3c.md +0 -55
- data/release_notes.md +0 -2279
- data/test/first_test.rb +0 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a9c597c6061579f00a15f8f810558bf17d2e18756fd1be909b7b0bb0fad767ee
|
|
4
|
+
data.tar.gz: 06cca509cfdbb9e9d941f5235e0c731808c7d3048a89dca3f9bc4b9f1fab8ac1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 224aa2d91da34b8c91bab8f93b1a47f0e9ed00fa0f3a752a4bf6b9cba29b6468a0cb56d02250c00cbee7e87da3bf1ee03275ae4d4b31f812581751a6df5b52ff
|
|
7
|
+
data.tar.gz: bc510916871ae26d632a3887e83c4497951049ee5c31e796d0e8363f474660cd7bd09114facdf4e3890bc5dee6135bcd7ac45f5af7f1de27849e77985b8345bd
|
data/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
# Changelogs
|
|
2
|
-
|
|
2
|
+
Historical commit-level release notes are in [release_notes.md](./release_notes.md).
|
|
3
|
+
New entries are maintained by Release Please.
|
|
3
4
|
|
|
4
5
|
Release tags are https://github.com/appium/ruby_lib/releases .
|
|
5
6
|
|
|
7
|
+
## [16.3.2](https://github.com/appium/ruby_lib/compare/v16.3.1...v16.3.2) (2026-09-14)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* metadata in gems ([d727297](https://github.com/appium/ruby_lib/commit/d727297b4fff4e98287058b0ea26c093a0aab334))
|
|
13
|
+
|
|
14
|
+
## [16.3.1](https://github.com/appium/ruby_lib/compare/v16.3.0...v16.3.1) (2026-09-13)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* issues in code ([#1124](https://github.com/appium/ruby_lib/issues/1124)) ([1fc98b8](https://github.com/appium/ruby_lib/commit/1fc98b89cf41284c7da83df214aed6d8764429c2))
|
|
20
|
+
|
|
6
21
|
## [16.3.0] - 2026-05-11
|
|
7
22
|
- Bump appium_lib_core to 13+
|
|
8
23
|
- No user facing changes are expected.
|
data/appium_lib.gemspec
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require_relative 'lib/appium_lib/version'
|
|
2
4
|
|
|
3
5
|
Gem::Specification.new do |s|
|
|
@@ -6,7 +8,8 @@ Gem::Specification.new do |s|
|
|
|
6
8
|
s.name = 'appium_lib'
|
|
7
9
|
s.version = Appium::VERSION
|
|
8
10
|
s.license = 'Apache-2.0'
|
|
9
|
-
s.description = '
|
|
11
|
+
s.description = 'Helper methods for writing cross-platform Android and iOS tests in Ruby using Appium. ' \
|
|
12
|
+
'Extends appium_lib_core with convenient methods for finding elements and interacting with devices.'
|
|
10
13
|
s.summary = 'Ruby library for Appium'
|
|
11
14
|
s.authors = ['code@bootstraponline.com', 'Kazuaki Matsuo']
|
|
12
15
|
s.email = %w(code@bootstraponline.com fly.49.89.over@gmail.com)
|
|
@@ -17,6 +20,9 @@ Gem::Specification.new do |s|
|
|
|
17
20
|
s.add_dependency 'nokogiri', '~> 1.8', '>= 1.8.1'
|
|
18
21
|
s.add_dependency 'tomlrb', '>= 1.1', '< 3.0'
|
|
19
22
|
|
|
20
|
-
s.files =
|
|
23
|
+
s.files = Dir.glob('lib/**/*.rb', base: __dir__) + %w[appium_lib.gemspec readme.md LICENSE-2.0.txt CHANGELOG.md]
|
|
24
|
+
s.metadata['source_code_uri'] = s.homepage
|
|
25
|
+
s.metadata['changelog_uri'] = "#{s.homepage}/blob/master/CHANGELOG.md"
|
|
26
|
+
s.metadata['bug_tracker_uri'] = "#{s.homepage}/issues"
|
|
21
27
|
s.metadata['rubygems_mfa_required'] = 'true'
|
|
22
28
|
end
|
|
@@ -29,12 +29,12 @@ module Appium
|
|
|
29
29
|
|
|
30
30
|
def initialize # rubocop:disable Lint/MissingSuper
|
|
31
31
|
reset
|
|
32
|
-
@filter
|
|
32
|
+
@filter = false
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def reset
|
|
36
|
-
@result
|
|
37
|
-
@keys
|
|
36
|
+
@result = ''
|
|
37
|
+
@keys = %w(text resource-id content-desc)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
# http://nokogiri.org/Nokogiri/XML/SAX/Document.html
|
data/lib/appium_lib/appium.rb
CHANGED
|
@@ -110,7 +110,7 @@ module Appium
|
|
|
110
110
|
# @return [Array] list of require files as an array, nil if require doesn't exist
|
|
111
111
|
def expand_required_files(base_dir, file_paths)
|
|
112
112
|
# ensure files are absolute
|
|
113
|
-
Array(file_paths).map
|
|
113
|
+
file_paths = Array(file_paths).map do |f|
|
|
114
114
|
file = File.exist?(f) ? f : File.join(base_dir, f)
|
|
115
115
|
file = File.expand_path file
|
|
116
116
|
|
|
@@ -171,10 +171,10 @@ module Appium
|
|
|
171
171
|
# override unless there's an existing method with matching arity
|
|
172
172
|
next if const.respond_to?(m) && const.method(m).arity == driver.method(m).arity
|
|
173
173
|
|
|
174
|
-
const.send(:define_singleton_method, m) do |*args, &block|
|
|
175
|
-
super(*args, &block) # promote.rb
|
|
174
|
+
const.send(:define_singleton_method, m) do |*args, **kwargs, &block|
|
|
175
|
+
super(*args, **kwargs, &block) # promote.rb
|
|
176
176
|
rescue NoMethodError, ArgumentError
|
|
177
|
-
driver.send m, *args, &block if driver.respond_to?(m)
|
|
177
|
+
driver.send m, *args, **kwargs, &block if driver.respond_to?(m)
|
|
178
178
|
end
|
|
179
179
|
end
|
|
180
180
|
end
|
|
@@ -219,7 +219,7 @@ module Appium
|
|
|
219
219
|
# https://github.com/appium/ruby_lib/issues/917
|
|
220
220
|
|
|
221
221
|
# Remove the method before adding it.
|
|
222
|
-
remove_method method if
|
|
222
|
+
remove_method method if instance_methods(false).include? method
|
|
223
223
|
|
|
224
224
|
define_method method do |*args, &block|
|
|
225
225
|
# Prefer existing method.
|
|
@@ -276,7 +276,7 @@ module Appium
|
|
|
276
276
|
doc = if source.start_with? '<html'
|
|
277
277
|
Nokogiri::HTML(source) { |cfg| cfg.options = opts }
|
|
278
278
|
else
|
|
279
|
-
Nokogiri::XML(source)
|
|
279
|
+
Nokogiri::XML(source) { |cfg| cfg.options = opts }
|
|
280
280
|
end
|
|
281
281
|
puts doc.to_xml indent: 2
|
|
282
282
|
end
|
data/lib/appium_lib/driver.rb
CHANGED
|
@@ -564,7 +564,8 @@ module Appium
|
|
|
564
564
|
# @option http_client_ops [Hash] :read_timeout Custom read timeout for http client.
|
|
565
565
|
# @return [Selenium::WebDriver] the new global driver
|
|
566
566
|
def start_driver(http_client_ops = { http_client: nil, open_timeout: 999_999, read_timeout: 999_999 })
|
|
567
|
-
|
|
567
|
+
http_client = http_client_ops[:http_client]
|
|
568
|
+
if http_client.nil?
|
|
568
569
|
http_client = ::Appium::Http::Default.new(open_timeout: http_client_ops[:open_timeout],
|
|
569
570
|
read_timeout: http_client_ops[:read_timeout])
|
|
570
571
|
end
|
data/lib/appium_lib/version.rb
CHANGED
|
@@ -14,6 +14,6 @@
|
|
|
14
14
|
|
|
15
15
|
module Appium
|
|
16
16
|
# Version and Date are defined on the 'Appium' module, not 'Appium::Common'
|
|
17
|
-
VERSION = '16.3.
|
|
18
|
-
DATE = '2026-
|
|
17
|
+
VERSION = '16.3.2' unless defined? ::Appium::VERSION
|
|
18
|
+
DATE = '2026-09-14' unless defined? ::Appium::DATE # x-release-please-date
|
|
19
19
|
end
|
data/readme.md
CHANGED
|
@@ -18,7 +18,7 @@ We can avoid the class driver with current `ruby_lib`, but if you'd like to impl
|
|
|
18
18
|
# Setup
|
|
19
19
|
## Requirement
|
|
20
20
|
- [Appium](https://github.com/appium/appium#requirements)
|
|
21
|
-
- Ruby: 3.
|
|
21
|
+
- Ruby: 3.1+
|
|
22
22
|
|
|
23
23
|
### Ruby Lib and Appium
|
|
24
24
|
|
|
@@ -99,3 +99,8 @@ This repository has examples for running tests in parallel. Read [ios_tests](htt
|
|
|
99
99
|
|
|
100
100
|
## How to add new helpful methods
|
|
101
101
|
- Add the new methods in this library
|
|
102
|
+
|
|
103
|
+
## Releasing
|
|
104
|
+
|
|
105
|
+
Review and merge the Release Please PR to publish. See [RELEASING.md](RELEASING.md)
|
|
106
|
+
for one-time Trusted Publishing setup and recovery instructions.
|
metadata
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: appium_lib
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 16.3.
|
|
4
|
+
version: 16.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- code@bootstraponline.com
|
|
8
8
|
- Kazuaki Matsuo
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: appium_lib_core
|
|
@@ -71,7 +70,9 @@ dependencies:
|
|
|
71
70
|
- - "<"
|
|
72
71
|
- !ruby/object:Gem::Version
|
|
73
72
|
version: '3.0'
|
|
74
|
-
description:
|
|
73
|
+
description: Helper methods for writing cross-platform Android and iOS tests in Ruby
|
|
74
|
+
using Appium. Extends appium_lib_core with convenient methods for finding elements
|
|
75
|
+
and interacting with devices.
|
|
75
76
|
email:
|
|
76
77
|
- code@bootstraponline.com
|
|
77
78
|
- fly.49.89.over@gmail.com
|
|
@@ -79,27 +80,9 @@ executables: []
|
|
|
79
80
|
extensions: []
|
|
80
81
|
extra_rdoc_files: []
|
|
81
82
|
files:
|
|
82
|
-
- ".github/CODEOWNERS"
|
|
83
|
-
- ".github/ISSUE_TEMPLATE.md"
|
|
84
|
-
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
85
|
-
- ".github/dependabot.yml"
|
|
86
|
-
- ".github/workflows/functional-test.yml"
|
|
87
|
-
- ".github/workflows/pr-title.yml"
|
|
88
|
-
- ".github/workflows/rubocop.yml"
|
|
89
|
-
- ".gitignore"
|
|
90
|
-
- ".rubocop.yml"
|
|
91
83
|
- CHANGELOG.md
|
|
92
|
-
- Gemfile
|
|
93
84
|
- LICENSE-2.0.txt
|
|
94
|
-
- Rakefile
|
|
95
|
-
- Thorfile
|
|
96
85
|
- appium_lib.gemspec
|
|
97
|
-
- contributing.md
|
|
98
|
-
- docs/android_uiautomator.md
|
|
99
|
-
- docs/docs.md
|
|
100
|
-
- docs/ios_xcuitest.md
|
|
101
|
-
- docs/parallel.md
|
|
102
|
-
- docs/w3c.md
|
|
103
86
|
- lib/appium_lib.rb
|
|
104
87
|
- lib/appium_lib/android/android.rb
|
|
105
88
|
- lib/appium_lib/android/common/command/command.rb
|
|
@@ -155,14 +138,14 @@ files:
|
|
|
155
138
|
- lib/appium_lib/sauce_labs.rb
|
|
156
139
|
- lib/appium_lib/version.rb
|
|
157
140
|
- readme.md
|
|
158
|
-
- release_notes.md
|
|
159
|
-
- test/first_test.rb
|
|
160
141
|
homepage: https://github.com/appium/ruby_lib
|
|
161
142
|
licenses:
|
|
162
143
|
- Apache-2.0
|
|
163
144
|
metadata:
|
|
145
|
+
source_code_uri: https://github.com/appium/ruby_lib
|
|
146
|
+
changelog_uri: https://github.com/appium/ruby_lib/blob/master/CHANGELOG.md
|
|
147
|
+
bug_tracker_uri: https://github.com/appium/ruby_lib/issues
|
|
164
148
|
rubygems_mfa_required: 'true'
|
|
165
|
-
post_install_message:
|
|
166
149
|
rdoc_options: []
|
|
167
150
|
require_paths:
|
|
168
151
|
- lib
|
|
@@ -177,8 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
177
160
|
- !ruby/object:Gem::Version
|
|
178
161
|
version: '0'
|
|
179
162
|
requirements: []
|
|
180
|
-
rubygems_version:
|
|
181
|
-
signing_key:
|
|
163
|
+
rubygems_version: 4.0.16
|
|
182
164
|
specification_version: 4
|
|
183
165
|
summary: Ruby library for Appium
|
|
184
166
|
test_files: []
|
data/.github/CODEOWNERS
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
* @KazuCocoa
|
data/.github/ISSUE_TEMPLATE.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
## This is a
|
|
2
|
-
* [ ] Bug report
|
|
3
|
-
* [ ] Question
|
|
4
|
-
* [ ] Freature Request
|
|
5
|
-
|
|
6
|
-
## Summary
|
|
7
|
-
|
|
8
|
-
## Environment
|
|
9
|
-
* Appium version (or git revision):
|
|
10
|
-
* `ruby_lib` version:
|
|
11
|
-
* Mobile platform/version/device under test:
|
|
12
|
-
|
|
13
|
-
## Actual behaviour and steps to reproduce
|
|
14
|
-
|
|
15
|
-
## Expected behaviour
|
|
16
|
-
|
|
17
|
-
## Link to Appium/Ruby logs
|
|
18
|
-
|
|
19
|
-
Create a [GIST](https://gist.github.com) which is a paste of your _full_ Appium logs, and link them here.
|
|
20
|
-
|
|
21
|
-
## Any additional comments
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Summary
|
|
2
|
-
|
|
3
|
-
Please include a summary of the change and which issue is fixed.
|
|
4
|
-
Please also include relevant motivation and context.
|
|
5
|
-
|
|
6
|
-
Closes # (issue)
|
|
7
|
-
|
|
8
|
-
# How Has This Been Tested?
|
|
9
|
-
|
|
10
|
-
Please describe the tests that you ran to verify your changes. If the change has test code, it can be alternative.
|
|
11
|
-
|
|
12
|
-
- [ ] Test A
|
|
13
|
-
- [ ] Test B
|
|
14
|
-
|
|
15
|
-
# Checklist
|
|
16
|
-
|
|
17
|
-
- [ ] `bundle exec rake rubocop`
|
data/.github/dependabot.yml
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
version: 2
|
|
2
|
-
updates:
|
|
3
|
-
- package-ecosystem: bundler
|
|
4
|
-
directory: "/"
|
|
5
|
-
schedule:
|
|
6
|
-
interval: weekly
|
|
7
|
-
time: "11:00"
|
|
8
|
-
open-pull-requests-limit: 10
|
|
9
|
-
- package-ecosystem: github-actions
|
|
10
|
-
directory: "/"
|
|
11
|
-
schedule:
|
|
12
|
-
interval: weekly
|
|
13
|
-
time: "11:00"
|
|
14
|
-
open-pull-requests-limit: 10
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
name: Functional Tests
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
# Run by manual at this time
|
|
5
|
-
workflow_dispatch:
|
|
6
|
-
push:
|
|
7
|
-
branches: [ master ]
|
|
8
|
-
pull_request:
|
|
9
|
-
branches: [ master ]
|
|
10
|
-
|
|
11
|
-
concurrency:
|
|
12
|
-
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
13
|
-
cancel-in-progress: true
|
|
14
|
-
|
|
15
|
-
jobs:
|
|
16
|
-
ios_test:
|
|
17
|
-
runs-on: macos-15
|
|
18
|
-
timeout-minutes: 90
|
|
19
|
-
env:
|
|
20
|
-
XCODE_VERSION: 16.4
|
|
21
|
-
IOS_VERSION: 18.5
|
|
22
|
-
IOS_DEVICE_NAME: iPhone 16 Plus
|
|
23
|
-
|
|
24
|
-
steps:
|
|
25
|
-
- uses: actions/checkout@v6
|
|
26
|
-
|
|
27
|
-
- name: Install Node.js
|
|
28
|
-
uses: actions/setup-node@v6
|
|
29
|
-
with:
|
|
30
|
-
node-version: 'lts/*'
|
|
31
|
-
|
|
32
|
-
- name: Select Xcode
|
|
33
|
-
uses: maxim-lobanov/setup-xcode@v1
|
|
34
|
-
with:
|
|
35
|
-
xcode-version: ${{ env.XCODE_VERSION }}
|
|
36
|
-
- run: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
|
|
37
|
-
|
|
38
|
-
- uses: futureware-tech/simulator-action@v5
|
|
39
|
-
with:
|
|
40
|
-
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
|
|
41
|
-
model: ${{ env.IOS_DEVICE_NAME }}
|
|
42
|
-
os_version: ${{ env.IOS_VERSION }}
|
|
43
|
-
|
|
44
|
-
- name: Preparing other environment
|
|
45
|
-
run: |
|
|
46
|
-
brew install ffmpeg
|
|
47
|
-
brew tap wix/brew
|
|
48
|
-
brew install applesimutils
|
|
49
|
-
|
|
50
|
-
# Start Appium
|
|
51
|
-
- name: Install appium and mjpeg-consumer
|
|
52
|
-
run: |
|
|
53
|
-
npm install -g appium
|
|
54
|
-
npm install -g mjpeg-consumer
|
|
55
|
-
- run: |
|
|
56
|
-
appium driver install xcuitest
|
|
57
|
-
appium plugin install images
|
|
58
|
-
appium plugin install execute-driver
|
|
59
|
-
nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log &
|
|
60
|
-
|
|
61
|
-
- run: |
|
|
62
|
-
npx appium driver run xcuitest download-wda-sim --platform=ios --outdir=${{ github.workspace }}/wda
|
|
63
|
-
name: Downloading prebuilt WDA
|
|
64
|
-
|
|
65
|
-
- name: Set up Ruby
|
|
66
|
-
uses: ruby/setup-ruby@v1
|
|
67
|
-
with:
|
|
68
|
-
ruby-version: 4.0
|
|
69
|
-
- run: |
|
|
70
|
-
bundle install
|
|
71
|
-
bundle exec rake ios
|
|
72
|
-
name: Run tests
|
|
73
|
-
timeout-minutes: 60
|
|
74
|
-
working-directory: ios_tests
|
|
75
|
-
env:
|
|
76
|
-
LOCAL_PREBUILT_WDA: ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app
|
|
77
|
-
|
|
78
|
-
- name: Save server output
|
|
79
|
-
if: ${{ always() }}
|
|
80
|
-
uses: actions/upload-artifact@master
|
|
81
|
-
with:
|
|
82
|
-
name: appium-ios_test_with_other_deps.log
|
|
83
|
-
path: |
|
|
84
|
-
appium.log
|
|
85
|
-
test/report/
|
|
86
|
-
|
|
87
|
-
android_test:
|
|
88
|
-
runs-on: ubuntu-latest
|
|
89
|
-
timeout-minutes: 90
|
|
90
|
-
env:
|
|
91
|
-
API_LEVEL: 35
|
|
92
|
-
ARCH: x86_64
|
|
93
|
-
|
|
94
|
-
steps:
|
|
95
|
-
- uses: actions/checkout@v6
|
|
96
|
-
|
|
97
|
-
- name: Set up Java
|
|
98
|
-
uses: actions/setup-java@v5
|
|
99
|
-
with:
|
|
100
|
-
distribution: temurin
|
|
101
|
-
java-version: '17'
|
|
102
|
-
|
|
103
|
-
- name: Install Node.js
|
|
104
|
-
uses: actions/setup-node@v6
|
|
105
|
-
with:
|
|
106
|
-
node-version: 'lts/*'
|
|
107
|
-
|
|
108
|
-
- name: Set up Ruby
|
|
109
|
-
uses: ruby/setup-ruby@v1
|
|
110
|
-
with:
|
|
111
|
-
ruby-version: 4.0
|
|
112
|
-
|
|
113
|
-
- name: Install appium
|
|
114
|
-
run: |
|
|
115
|
-
npm install -g appium
|
|
116
|
-
npm install -g mjpeg-consumer
|
|
117
|
-
|
|
118
|
-
- name: Start appium
|
|
119
|
-
run: |
|
|
120
|
-
appium driver install uiautomator2
|
|
121
|
-
appium plugin install images
|
|
122
|
-
appium plugin install execute-driver
|
|
123
|
-
nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log &
|
|
124
|
-
|
|
125
|
-
- name: Enable KVM group perms
|
|
126
|
-
run: |
|
|
127
|
-
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
|
128
|
-
sudo udevadm control --reload-rules
|
|
129
|
-
sudo udevadm trigger --name-match=kvm
|
|
130
|
-
|
|
131
|
-
- name: AVD cache
|
|
132
|
-
uses: actions/cache@v5
|
|
133
|
-
id: avd-cache
|
|
134
|
-
with:
|
|
135
|
-
path: |
|
|
136
|
-
~/.android/avd/*
|
|
137
|
-
~/.android/adb*
|
|
138
|
-
key: avd-${{ env.API_LEVEL }}
|
|
139
|
-
|
|
140
|
-
- name: Create AVD snapshot for cache
|
|
141
|
-
if: steps.avd-cache.outputs.cache-hit != 'true'
|
|
142
|
-
uses: reactivecircus/android-emulator-runner@v2
|
|
143
|
-
with:
|
|
144
|
-
api-level: ${{ env.API_LEVEL }}
|
|
145
|
-
arch: ${{ env.ARCH }}
|
|
146
|
-
target: google_apis
|
|
147
|
-
force-avd-creation: false
|
|
148
|
-
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
|
149
|
-
disable-animations: false
|
|
150
|
-
script: echo "Generated AVD snapshot for caching."
|
|
151
|
-
|
|
152
|
-
- name: run tests
|
|
153
|
-
uses: reactivecircus/android-emulator-runner@v2
|
|
154
|
-
with:
|
|
155
|
-
api-level: ${{ env.API_LEVEL }}
|
|
156
|
-
arch: ${{ env.ARCH }}
|
|
157
|
-
script: cd android_tests;bundle install;bundle exec rake --tasks;bundle exec rake android
|
|
158
|
-
target: google_apis
|
|
159
|
-
profile: Nexus 5X
|
|
160
|
-
disable-spellchecker: true
|
|
161
|
-
disable-animations: true
|
|
162
|
-
|
|
163
|
-
- name: Save server output
|
|
164
|
-
if: ${{ always() }}
|
|
165
|
-
uses: actions/upload-artifact@master
|
|
166
|
-
with:
|
|
167
|
-
name: appium-android_test_with_other_deps.log
|
|
168
|
-
path: |
|
|
169
|
-
appium.log
|
|
170
|
-
test/report/
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
name: rubocop
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ master ]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [ master ]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
test:
|
|
11
|
-
strategy:
|
|
12
|
-
fail-fast: false
|
|
13
|
-
matrix:
|
|
14
|
-
ruby: [3.1, 3.2, 3.3]
|
|
15
|
-
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
|
|
18
|
-
steps:
|
|
19
|
-
- uses: actions/checkout@v6
|
|
20
|
-
- name: Set up Ruby
|
|
21
|
-
uses: ruby/setup-ruby@v1
|
|
22
|
-
with:
|
|
23
|
-
ruby-version: ${{ matrix.ruby }}
|
|
24
|
-
- name: Install dependencies
|
|
25
|
-
run: bundle install
|
|
26
|
-
- name: Run rubocop
|
|
27
|
-
run: bundle exec rake rubocop
|
|
28
|
-
- name: Run tests
|
|
29
|
-
run: bundle exec rake test
|
data/.gitignore
DELETED