Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 46 additions & 46 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,63 @@
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Test
on:
workflow_dispatch:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch:
push:
branches: [master]
pull_request:
branches: [master]

# allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: true
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true

jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x]
env:
LT_USERNAME: ${{ secrets.LT_USERNAME }}
LT_ACCESS_KEY: ${{ secrets.LT_ACCESS_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v2
linux:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x, 20.x]
env:
LT_USERNAME: ${{ secrets.LT_USERNAME }}
LT_ACCESS_KEY: ${{ secrets.LT_ACCESS_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}

- name: Install dependencies
run: npm ci --ignore-scripts
- name: Install dependencies
run: npm ci --ignore-scripts

- name: Build
run: npm run build
- name: Build
run: npm run build

- name: Test
run: npm run test
- name: Test
run: npm run test

macos:
runs-on: macos-latest
env:
LT_USERNAME: ${{ secrets.LT_USERNAME }}
LT_ACCESS_KEY: ${{ secrets.LT_ACCESS_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v2
macos:
runs-on: macos-latest
env:
LT_USERNAME: ${{ secrets.LT_USERNAME }}
LT_ACCESS_KEY: ${{ secrets.LT_ACCESS_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Use Node.js 18.x
uses: actions/setup-node@v2
with:
node-version: 18.x
- name: Use Node.js 18.x
uses: actions/setup-node@v2
with:
node-version: 18.x

- name: Install dependencies
run: npm ci --ignore-scripts
- name: Install dependencies
run: npm ci --ignore-scripts

- name: Build
run: npm run build
- name: Build
run: npm run build

- name: Test
run: npm run test
- name: Test
run: npm run test
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,42 @@ WebdriverIO LambdaTest Service

> A WebdriverIO service that manages tunnel and job metadata for LambdaTest users.

## βœ… WebdriverIO v9 Support

**Version 4.1.0+** includes full WebdriverIO v9 compatibility with performance improvements:
- **7x faster execution** in WebdriverIO v9 Bidi mode
- **Automatic protocol detection** (WebDriver Bidi vs Classic)
- **Memory optimization** prevents overflow errors during intensive operations
- **Backward compatible** with WebdriverIO v7 and v8

### Quick Setup for v9:
```js
// wdio.conf.js
capabilities: [{
'LT:Options': {
// ... your existing options
webSocketUrl: true // Enable Bidi for optimal v9 performance
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is no longer required i think, as wdio9 is set to start bidi by default, unless user specifies wdio:enforceWebDriverClassic:true

}
}]
```

## πŸ§ͺ Testing

### Environment Variables
For integration and stress tests, set these environment variables:
```bash
export LT_USERNAME="your-lambdatest-username"
export LT_ACCESS_KEY="your-lambdatest-access-key"
```

### Test Commands
```bash
npm test # Run unit tests and linting
npm run test:integration # Run integration tests (requires LT credentials)
npm run test:stress # Run stress tests (requires LT credentials)
npm run test:all # Run all tests
```

## Installation

```bash
Expand Down
Loading
Loading