ysb-grunt-sauce-tunnel

Runs the saucelabs tunnel with proxy pac options

Usage no npm install needed!

<script type="module">
  import ysbGruntSauceTunnel from 'https://cdn.skypack.dev/ysb-grunt-sauce-tunnel';
</script>

README

ysb-grunt-sauce-tunnel

Grunt Sauce tunnel with pac options

Runs and stops the saucelabs tunnel. Cloned from https://github.com/civitaslearning/grunt-sauce-tunnel

Getting Started

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install ysb-grunt-sauce-tunnel --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('ysb-grunt-sauce-tunnel');

The "sauce_tunnel" task

Overview

In your project's Gruntfile, add a section named sauce_tunnel to the data object passed into grunt.initConfig().

grunt.initConfig({
  sauce_tunnel: {
    options: {
        username: 'your sauce username',
        key: 'your sauce key',
        identifier: 'tunnel identifier',
        tunnelTimeout: 120, // whatever timeout you want to use
    scproxy: <port number>, // Port to use for the built-in HTTP proxy
    seport: <port number>, // Port on which Sauce Connect's Selenium relay will listen for requests
    tunneldomains: <comma separated list of domains>,
    directdomains: <comma separated list of domains>,
    logfile: <logfile path>,
    verbose: true,
    pac: 'pac_url.pac'
    },
    server: {}
  },
})

Options

options.username

Type: String Default value: process.env.SAUCE_USERNAME

Your Saucelabs username

options.key

Type: String Default value: process.env.SAUCE_ACCESS_KEY

Your Saucelabs key

options.identifier

Type: String Default value: workaround

options.pac

Type: String Default value: Proxy_PAC_Url

options.scproxy

Type: Integer Default value: 29999

options.seport

Type: Integer Default value: 4446

options.tunneldomains

Type: String Default value: <comma separated list of domains

options.directdomains

Type: String Default value: comma separated list of domains

See the FAQ for a better explanation. If you use this option, you also have to add the tunnel-identifier to your desired capabilities so that Sauce can associate your tests with the tunnel. Right now it's required by sauce-tunnel, so it'll default to 'workaround' until sauce-tunnel doesn't require it either.

options.tunnelTimeout

Type: Number Default value: 120

A numeric value indicating the time to wait before closing all tunnels.

The "sauce_tunnel_stop" task

Overview

In your project's Gruntfile, add a section named sauce_tunnel_stop to the data object passed into grunt.initConfig().

grunt.initConfig({
  sauce_tunnel_stop: {
    options: {
        username: 'your sauce username',
        key: 'your sauce key',
        identifier: 'tunnel identifier'
    },
    server: {}
  },
})

If stop task is executed after the run task, it's close tunnel on sauce lab server and kill local process. If stop task is executed alone, it's only clause tunnel on sauce lab server.

Options

options.username

Type: String Default value: process.env.SAUCE_USERNAME

Your Saucelabs username

options.key

Type: String Default value: process.env.SAUCE_ACCESS_KEY

Your Saucelabs key

options.identifier

Type: String Default value: workaround