Skip to content

Add WebdriverIO for E2E testing #873

Add WebdriverIO for E2E testing

Add WebdriverIO for E2E testing #873

Workflow file for this run

name: general
on:
push:
branches:
- main
tags:
- v*.*.*
pull_request:
branches:
- main
jobs:
# Test
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Prepare environment
run: pip3 install hatch
- name: Install dependencies
run: make install
- name: Test software
run: make test
# End to End testing
# It is powered by WebdriverIO, it requires an application binary path in our dist folder.
# See wdio.conf.ts capabilities attribute for more info.
test-e2e:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Prepare environment
run: pip3 install hatch
- name: Install dependencies
run: make install
- name: Build the application
run: make build
- name: Generate bundle file
run: make dist
- name: Run E2E tests
run: npm run wdio wdio-github.conf.ts
# Build
# For GNU/Linux we need to build our application in the oldest version we want to support.
# https://pyinstaller.org/en/stable/usage.html?highlight=glibc#making-gnu-linux-apps-forward-compatible
build:
strategy:
matrix:
os: [ubuntu-20.04, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
needs: [test]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Prepare environment
run: pip3 install hatch
- name: Install dependencies
run: make install
- name: Build software
run: make build
- name: Dist software
run: make dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: distribution-files-${{ matrix.os }}
path: |
dist/*.deb
dist/*.exe
dist/*.dmg
retention-days: 14
# Release
release:
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
strategy:
matrix:
os: [ubuntu-20.04, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
needs: [test]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Prepare environment
run: pip3 install hatch
- name: Install dependencies
run: make install
- name: Build software
run: make build
- name: Dist software
run: make dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}