Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
6b791aa
feat: extract `native-utils`
goosewobbler Oct 22, 2025
dd4ae65
chore: remove test:integration script
goosewobbler Oct 22, 2025
75e5a9a
chore: add `shell: true`
goosewobbler Oct 22, 2025
e1bda65
refactor: remove abstract classes
goosewobbler Oct 22, 2025
233fa09
chore: pivot, remove native utils
goosewobbler Oct 22, 2025
39f9508
chore: update specs
goosewobbler Oct 22, 2025
f50ee11
chore: ignore tauri dist
goosewobbler Oct 24, 2025
3113ba1
feat: tauri service first pass
goosewobbler Oct 24, 2025
8d56660
chore: update lockfile
goosewobbler Oct 24, 2025
7f15990
chore: use correct package name
goosewobbler Oct 24, 2025
48e07e5
chore: tauri E2E wiring
goosewobbler Oct 24, 2025
19e06e5
chore: update labels
goosewobbler Oct 24, 2025
c5834d5
chore: update filter
goosewobbler Oct 24, 2025
1b87ea0
chore: remove verbose turbo logs
goosewobbler Oct 24, 2025
5c769b8
chore: fix build scripts
goosewobbler Oct 24, 2025
e43dfd7
chore: install tauri deps on linux
goosewobbler Oct 24, 2025
96dd6af
chore: fix matrix issues
goosewobbler Oct 24, 2025
047f31b
chore: fix unit
goosewobbler Oct 24, 2025
edcfad7
chore: use github code for skip
goosewobbler Oct 24, 2025
d0a3681
chore: fix framework filtering in matrix
goosewobbler Oct 24, 2025
af02d72
chore: fix package test error
goosewobbler Oct 24, 2025
b144a93
chore: skip tauri macos e2es properly
goosewobbler Oct 24, 2025
7f16447
test: fix no-binary path issue
goosewobbler Oct 24, 2025
03a03fe
chore: add debug
goosewobbler Oct 24, 2025
540cfee
chore: fix matrix
goosewobbler Oct 24, 2025
89502c6
chore: add dummy icon
goosewobbler Oct 24, 2025
43e5897
test: fix no-binary path issue
goosewobbler Oct 25, 2025
4222a99
chore: fix tauri compilation
goosewobbler Oct 25, 2025
fa03652
chore: add xcb libs
goosewobbler Oct 25, 2025
e8ba0de
refactor: move tauri app
goosewobbler Oct 25, 2025
eefcc4c
chore: install tauri driver
goosewobbler Oct 25, 2025
554eb23
chore: fixed binary path resolution
goosewobbler Oct 25, 2025
2bb82c9
chore: add windows icon
goosewobbler Oct 25, 2025
4d0adc2
fix: change tauri to chrome during onPrepare
goosewobbler Oct 26, 2025
520ae0a
chore: update ico
goosewobbler Oct 26, 2025
c9ec08f
chore: set default chromium version
goosewobbler Oct 26, 2025
96616e8
chore: fix path issue
goosewobbler Oct 26, 2025
ecc2143
chore: Webkit Webdriver shenanigans
goosewobbler Oct 26, 2025
57c0052
fix: improved multiremote handling
goosewobbler Oct 26, 2025
49babb7
chore: remove redundant init-e2es task
goosewobbler Oct 26, 2025
d4402a0
refactor: abstract logger
goosewobbler Oct 26, 2025
96c5a6d
chore: don't hard code path separator
goosewobbler Oct 26, 2025
697f9f8
chore: don't specify nativeDriverPath
goosewobbler Oct 26, 2025
3e0a3a2
chore: add native-utils dep
goosewobbler Oct 26, 2025
18519fa
chore: update lockfile
goosewobbler Oct 26, 2025
df6802c
test: update for logger changes
goosewobbler Oct 26, 2025
4dc2f03
fix: tauri path issues
goosewobbler Oct 26, 2025
37a198d
fix: add comprehensive Chrome flags and fix app args passing for Taur…
goosewobbler Oct 26, 2025
e3bb206
feat: add comprehensive environment diagnostics for Tauri tests
goosewobbler Oct 26, 2025
bc98dd1
fix: set DISPLAY in worker process and configure tauri-driver connection
goosewobbler Oct 26, 2025
f08441d
fix: properly configure WDIO to connect to tauri-driver
goosewobbler Oct 27, 2025
fff38a2
feat: pre-build Tauri apps in OS-specific jobs for faster E2E tests
goosewobbler Oct 27, 2025
3afa710
fix: remove browserName from capabilities to fix multiremote
goosewobbler Oct 27, 2025
d9840c2
fix: make browserName optional and remove from test configs
goosewobbler Oct 27, 2025
a49cf76
fix: resolve Tauri build issues on Linux and Windows
goosewobbler Oct 27, 2025
45244c6
fix: set hostname and port in capabilities for standalone mode
goosewobbler Oct 27, 2025
52085cd
fix: set hostname and port in wdio config, not in onPrepare hook
goosewobbler Oct 27, 2025
941b312
fix: let xvfb-run handle DISPLAY and support multiremote capabilities
goosewobbler Oct 27, 2025
9aa2f2f
fix: extract Tauri binaries to repository root
goosewobbler Oct 27, 2025
9b75521
chore: ensure no duplicate tests run
goosewobbler Oct 27, 2025
f4e0104
fix: broken cache key
goosewobbler Oct 27, 2025
d9fc134
chore: fix bash error
goosewobbler Oct 27, 2025
30fb3dc
fix: use `xvfb-run`
goosewobbler Oct 27, 2025
11e92ee
chore: start tauri-driver per worker
goosewobbler Oct 27, 2025
e787c7f
chore: don't recompile apps
goosewobbler Oct 27, 2025
40be39a
chore: run tests directly without turbo
goosewobbler Oct 27, 2025
a0ef24f
refactor: rework
goosewobbler Oct 27, 2025
7b7cd49
chore: streamline, add debug
goosewobbler Oct 27, 2025
d0892df
chore: don't use an icon
goosewobbler Oct 27, 2025
b051d85
chore: fix windows zip handling
goosewobbler Oct 27, 2025
b6f8711
chore: update icon
goosewobbler Oct 28, 2025
8c5e2e2
fix: improve Windows timestamp normalization for ZIP archives
goosewobbler Oct 28, 2025
56cc202
refactor: update Tauri E2E tests to use execute API pattern
goosewobbler Oct 28, 2025
4cf54e7
fix: update standalone, window, and multiremote tests for execute API
goosewobbler Oct 28, 2025
b0e303d
refactor: simplify Tauri tests to focus on API testing
goosewobbler Oct 28, 2025
acbd18e
ci: remove window test-type from Tauri E2E workflow
goosewobbler Oct 28, 2025
ede25eb
fix: windows path handling in E2E
goosewobbler Oct 28, 2025
40c8380
chore: update spec paths
goosewobbler Oct 28, 2025
3107ed8
fix: multiremote issues
goosewobbler Oct 28, 2025
7d5f878
chore: reinstate OS-specific artifact names
goosewobbler Oct 28, 2025
65a8dd1
chore: normalize paths
goosewobbler Oct 28, 2025
222e6d7
chore: add execution dupe check
goosewobbler Oct 28, 2025
6393b86
fix: print summary rather than duplicate results
goosewobbler Oct 28, 2025
f6aa17f
chore: add debug
goosewobbler Oct 28, 2025
d891f16
chore: add rust debug
goosewobbler Oct 28, 2025
cf2b28d
fix: update write and read file invocation
goosewobbler Oct 28, 2025
18c759e
chore: update e2e app to tauri v2
goosewobbler Oct 28, 2025
3224b73
fix: windows artifact path issue
goosewobbler Oct 28, 2025
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
138 changes: 138 additions & 0 deletions .github/workflows/_ci-build-tauri-apps.reusable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
name: Build Tauri Apps
description: 'Builds Tauri test applications and creates shareable artifacts for E2E testing'

on:
workflow_call:
# Make this a reusable workflow, no value needed
# https://docs.github.com/en/actions/using-workflows/reusing-workflows
inputs:
os:
description: 'OS of runner'
required: true
type: string
build-command:
description: 'Build command for Tauri apps (build or build:debug)'
type: string
default: 'build'
outputs:
build_id:
description: 'Unique identifier for this build'
value: ${{ jobs.build-tauri-apps.outputs.build_id }}
build_date:
description: 'Timestamp when the build completed'
value: ${{ jobs.build-tauri-apps.outputs.build_date }}
artifact_size:
description: 'Size of the build artifact in bytes'
value: ${{ jobs.build-tauri-apps.outputs.artifact_size }}
cache_key:
description: 'Cache key used for artifact uploads, can be passed to download actions'
value: ${{ jobs.build-tauri-apps.outputs.cache_key }}

env:
TURBO_TELEMETRY_DISABLED: 1
TURBO_DAEMON: false

jobs:
# This job builds all Tauri test applications for the specified OS
# Unlike package builds, each OS creates its own artifacts since binaries are platform-specific
build-tauri-apps:
name: Build Tauri Apps
runs-on: ${{ inputs.os }}
outputs:
build_id: ${{ steps.build-info.outputs.build_id }}
build_date: ${{ steps.build-info.outputs.build_date }}
artifact_size: ${{ steps.upload-archive.outputs.size || '0' }}
cache_key: ${{ steps.upload-archive.outputs.cache_key }}
steps:
# Standard checkout with SSH key for private repositories
- name: 👷 Checkout Repository
uses: actions/checkout@v5
with:
ssh-key: ${{ secrets.DEPLOY_KEY }}

# Set up Node.js and PNPM using the reusable action
- name: 🛠️ Setup Development Environment
uses: ./.github/workflows/actions/setup-workspace
with:
node-version: '20'

# Install Rust toolchain for Tauri compilation
- name: 🦀 Install Rust Toolchain
uses: dtolnay/rust-toolchain@stable

# Install Tauri dependencies on Linux
- name: 🦀 Install Tauri Dependencies (Linux)
if: runner.os == 'Linux'
shell: bash
run: |
echo "Installing Tauri dependencies for Linux..."
sudo tee -a /etc/apt/sources.list > /dev/null <<EOT
deb http://archive.ubuntu.com/ubuntu jammy main universe
EOT
sudo apt-get update
sudo apt-get install -y \
build-essential \
pkg-config \
libgtk-3-dev \
libwebkit2gtk-4.0-dev \
libwebkit2gtk-4.1-dev \
libappindicator3-dev \
librsvg2-dev \
patchelf \
libglib2.0-dev \
libsoup-2.4-1 \
libsoup2.4-dev \
libjavascriptcoregtk-4.0-dev \
libjavascriptcoregtk-4.1-dev \
libssl-dev \
libasound2-dev \
libx11-dev \
libxext-dev \
libxfixes-dev \
libxrender-dev \
libxrandr-dev \
libxss-dev \
libxtst-dev \
libxcomposite-dev \
libxcursor-dev \
libxdamage-dev \
libxinerama-dev \
libxcb1-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev \
libxcb-render0-dev \
libxcb-randr0-dev \
libxcb-xinerama0-dev \
libxcb-xkb-dev \
libxcb-image0-dev \
libxcb-util0-dev \
libxcb-icccm4-dev \
libxcb-ewmh-dev \
libxcb-dri2-0-dev

# Generate build information for tracking
- name: 📊 Generate Build Information
id: build-info
shell: bash
run: |
echo "build_id=$(date +%s)-${{ github.run_id }}-${{ runner.os }}" >> $GITHUB_OUTPUT
echo "build_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_OUTPUT

# Build all Tauri test applications using Turbo
# This creates the binaries in src-tauri/target/release (or debug)
- name: 🏗️ Build All Tauri Apps
run: pnpm exec turbo run ${{ inputs.build-command }} --filter=tauri-*-app --only --parallel
shell: bash

# Upload Tauri app binaries as artifacts
# Each OS uploads its own artifacts since binaries are platform-specific
# Using GitHub Actions cache with ~90 day retention (vs. 1 day for regular artifacts)
- name: 📦 Upload Tauri App Binaries
id: upload-archive
uses: ./.github/workflows/actions/upload-archive
with:
name: tauri-apps-${{ runner.os }}
output: tauri-apps-${{ runner.os }}/artifact.zip
paths: fixtures/tauri-apps/*/src-tauri/target
cache_key_prefix: tauri-apps
retention_days: '90'
Loading
Loading