gitbutler/.github/workflows/test-e2e-webdriver.yml
2024-10-26 17:24:23 +02:00

74 lines
2.2 KiB
YAML

name: E2E Tests Webdriver
on:
pull_request:
branches: [master]
workflow_dispatch:
inputs:
sha:
type: string
required: false
description: Target SHA
jobs:
test:
name: Run Tests
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v4
if: ${{ github.event_name != 'workflow_dispatch' }}
- uses: actions/checkout@v4
if: ${{ github.event_name == 'workflow_dispatch' }}
with:
ref: ${{ github.event.inputs.sha }}
- name: Install Tauri OS dependencies
run: |
sudo apt update && sudo apt install -y \
libgtk-3-dev \
libayatana-appindicator3-dev \
libwebkit2gtk-4.0-dev \
webkit2gtk-driver \
ffmpeg \
xvfb
- name: Setup rust-toolchain stable
id: rust-toolchain
uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: cargo-${{ steps.rust-toolchain.outputs.cachekey }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: cargo-
- name: Setup node environment
uses: ./.github/actions/init-env-node
- name: Build CLI
run: cargo build -p gitbutler-cli
- name: Build SvelteKit
run: pnpm build:desktop -- --mode development
- name: Build Tauri
run: pnpm build:test
- name: Install tauri-driver
run: |
if [ ! -e "$HOME/.cargo/bin/tauri-driver" ]; then
cargo install tauri-driver@0.1.3
fi
# Run it through `xvfb-run` to have a fake display server which allows our
# application to run headless without any changes to the code
- name: WebdriverIO
run: xvfb-run pnpm test:e2e
- uses: actions/upload-artifact@v4
if: failure()
with:
name: WebdriverIO Artifacts
overwrite: true
path: |
./apps/desktop/e2e/videos
~/.config/com.gitbutler.app*/logs