File: sauce_labs_plugin.rb

package info (click to toggle)
ruby-blade-sauce-labs-plugin 0.7.3%2Bdfsg-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 25,216 kB
  • sloc: ruby: 651; ansic: 98; sh: 21; makefile: 3
file content (76 lines) | stat: -rw-r--r-- 1,403 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
require "blade"
require "blade/sauce_labs_plugin/version"
require "blade/sauce_labs_plugin/cli"

require "active_support/core_ext/string/inflections"

module Blade::SauceLabsPlugin
  extend self
  include Blade::Component

  autoload :Client, "blade/sauce_labs_plugin/client"
  autoload :Tunnel, "blade/sauce_labs_plugin/tunnel"
  autoload :WebDriver, "blade/sauce_labs_plugin/web_driver"
  autoload :Job, "blade/sauce_labs_plugin/job"
  autoload :JobManager, "blade/sauce_labs_plugin/job_manager"
  autoload :SessionManager, "blade/sauce_labs_plugin/session_manager"

  def start
    if Blade.config.interface == :ci
      tunnel.start do
        session_manager.start
        job_manager.start
      end
    end
  end

  def stop
    tunnel.stop
    job_manager.stop
  end

  # Ensure the tunnel is closed
  at_exit { tunnel.stop }

  def tunnel
    Tunnel
  end

  def client
    Client
  end

  def session_manager
    SessionManager
  end

  def job_manager
    JobManager
  end

  def config
    Blade.config.plugins.sauce_labs
  end

  def username
    ENV["SAUCE_USERNAME"] || config.username
  end

  def access_key
    ENV["SAUCE_ACCESS_KEY"] || config.access_key
  end

  def tunnel_timeout
    (ENV["SAUCE_TUNNEL_TIMEOUT"] || config.tunnel_timeout || 60).to_i
  end

  def debug(message)
    if debug?
      STDERR.puts message
    end
  end

  def debug?
    config.debug == true
  end
end