Skip to content

Commit 518ab17

Browse files
committed
Fix CI issues
Removed Aparition since it's not maintained anymore.
1 parent fa58978 commit 518ab17

5 files changed

Lines changed: 29 additions & 31 deletions

File tree

.github/workflows/ci_steps.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,6 @@ jobs:
1717
LC_ALL: C.UTF-8
1818

1919
steps:
20-
- name: Setup SSH access
21-
uses: ubicloud/ssh-runner@v1
22-
with:
23-
public-ssh-key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZH/9G6dnwQRu0Rtij382bIIjIE7Eb/1Ja1w9kBN3DwPXMZsfY22XYNJHCspcoyhHpwUR1ZxMoCs4cmh3PVv1Gq9PHX9ogsO0ufeoZdHeoFv53L2yU9nRVtPAqZfkQxrlXQWmDFFHWpld7i4tNZp9j0KW1SS91a9wvttnSo4FwWi8BrUprN9iECaYPgPwwiRybQ37D4grTjbr3SdMev+vCYKVpTQftC7HzRvTJXTO/vHm+16sEOjM+LwqnGipGuBfQjHJnHVwlAT+aF8JxCseitI9TD+52e+5ZJ4oPzStRiccVdFJEkmGglo5n2ZVoN9Di6RL6PJ/SUzAKF8lbpxlf dhruvasagar@dhruvasagar"
24-
wait-minutes: 30 # Optional, default is 10 minutes
25-
2620
- name: Install system packages
2721
run: |
2822
apt-get update -qq

README.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,12 @@ In your `rails_helper.rb`:
5858
```ruby
5959
require 'billy/capybara/rspec'
6060

61-
# select a driver for your chosen browser environment
62-
Capybara.javascript_driver = :selenium_billy # Firefox
63-
# Capybara.javascript_driver = :selenium_chrome_billy # Chrome
64-
# Capybara.javascript_driver = :selenium_chrome_headless_billy # Chrome (headless, recommended for CI)
65-
# Capybara.javascript_driver = :apparition_billy # Apparition
61+
# Select a driver for your chosen browser environment.
62+
# The :selenium_chrome_billy and :selenium_chrome_headless_billy drivers
63+
# respect the CHROME_BIN environment variable for custom Chrome/Chromium paths.
64+
Capybara.javascript_driver = :selenium_billy # Firefox
65+
# Capybara.javascript_driver = :selenium_chrome_billy # Chrome
66+
# Capybara.javascript_driver = :selenium_chrome_headless_billy # Chrome (headless, recommended for CI)
6667
```
6768

6869
### Setup for Watir
@@ -72,9 +73,19 @@ In your `rails_helper.rb`:
7273
```ruby
7374
require 'billy/watir/rspec'
7475

75-
# select a driver for your chosen browser environment
76+
# Basic usage
7677
@browser = Billy::Browsers::Watir.new :chrome
7778
# @browser = Billy::Browsers::Watir.new :firefox
79+
80+
# CI / containerized environments (Docker, GitHub Actions)
81+
# Pass Chrome options to enable headless mode and container-safe flags.
82+
# Set CHROME_BIN if Chromium is not at the default google-chrome path.
83+
options = Selenium::WebDriver::Chrome::Options.new
84+
options.add_argument('--headless=new')
85+
options.add_argument('--no-sandbox')
86+
options.add_argument('--disable-dev-shm-usage')
87+
options.binary = ENV['CHROME_BIN'] if ENV['CHROME_BIN']
88+
@browser = Billy::Browsers::Watir.new :chrome, options: options
7889
```
7990

8091
### In your tests (Capybara/Watir)

lib/billy/browsers/capybara.rb

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,10 @@
55
module Billy
66
module Browsers
77
class Capybara
8-
DRIVERS = {
9-
selenium: 'selenium/webdriver',
10-
apparition: 'capybara/apparition'
11-
}.freeze
12-
138
def self.register_drivers
14-
DRIVERS.each do |name, driver|
15-
require driver
16-
send("register_#{name}_driver")
17-
rescue LoadError
18-
end
9+
require 'selenium/webdriver'
10+
register_selenium_driver
11+
rescue LoadError
1912
end
2013

2114
def self.register_selenium_driver
@@ -30,6 +23,7 @@ def self.register_selenium_driver
3023

3124
::Capybara.register_driver :selenium_chrome_billy do |app|
3225
options = Selenium::WebDriver::Chrome::Options.new
26+
options.binary = ENV['CHROME_BIN'] if ENV['CHROME_BIN']
3327
options.add_argument("--proxy-server=#{Billy.proxy.host}:#{Billy.proxy.port}")
3428

3529
::Capybara::Selenium::Driver.new(
@@ -40,6 +34,7 @@ def self.register_selenium_driver
4034

4135
::Capybara.register_driver :selenium_chrome_headless_billy do |app|
4236
options = Selenium::WebDriver::Chrome::Options.new
37+
options.binary = ENV['CHROME_BIN'] if ENV['CHROME_BIN']
4338

4439
options.add_argument("--headless=new")
4540
options.add_argument("--no-sandbox")
@@ -55,13 +50,6 @@ def self.register_selenium_driver
5550
end
5651
end
5752

58-
def self.register_apparition_driver
59-
::Capybara.register_driver :apparition_billy do |app|
60-
::Capybara::Apparition::Driver.new(app, ignore_https_errors: true).tap do |driver|
61-
driver.set_proxy(Billy.proxy.host, Billy.proxy.port)
62-
end
63-
end
64-
end
6553
end
6654
end
6755
end

puffing-billy.gemspec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ Gem::Specification.new do |gem|
2525
gem.add_runtime_dependency 'http_parser.rb', '~> 0.8.0'
2626
gem.add_runtime_dependency 'multi_json'
2727

28-
gem.add_development_dependency 'apparition'
2928
gem.add_development_dependency 'capybara'
3029
gem.add_development_dependency 'cucumber'
3130
gem.add_development_dependency 'faraday'

spec/spec_helper.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,13 @@ def complete(request, handler, cache_key = nil)
2222
end
2323
end
2424

25-
browser = Billy::Browsers::Watir.new :chrome
25+
chrome_options = Selenium::WebDriver::Chrome::Options.new
26+
chrome_options.add_argument('--headless=new')
27+
chrome_options.add_argument('--no-sandbox')
28+
chrome_options.add_argument('--disable-dev-shm-usage')
29+
chrome_options.add_argument('--disable-gpu')
30+
chrome_options.binary = ENV['CHROME_BIN'] if ENV['CHROME_BIN']
31+
browser = Billy::Browsers::Watir.new :chrome, options: chrome_options
2632
Capybara.app = Rack::Directory.new(File.expand_path('../examples', __dir__))
2733
Capybara.server = :puma, { Silent: true }
2834
Capybara.javascript_driver = :selenium_chrome_headless_billy

0 commit comments

Comments
 (0)