Skip to content

chore(deps): bump actions/cache from 4 to 5 #126

chore(deps): bump actions/cache from 4 to 5

chore(deps): bump actions/cache from 4 to 5 #126

Workflow file for this run

name: Desktop App Tests
on:
push:
branches: [main, develop]
paths:
- "apps/desktop/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/desktop-test.yml"
pull_request:
branches: [main, develop]
paths:
- "apps/desktop/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/desktop-test.yml"
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
rust-tests:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Clone terminator (required for unpublished crate versions)
run: git clone --depth 1 https://github.com/mediar-ai/terminator.git ../terminator
shell: bash
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt, clippy
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Build MCP binary (placeholder)
run: |
echo "Creating placeholder MCP binary for CI"
mkdir -p apps/desktop/src-tauri/binaries
echo "placeholder" > apps/desktop/src-tauri/binaries/terminator-mcp-agent-x86_64-pc-windows-msvc.exe
shell: bash
- name: Create cargo config for CI
run: |
mkdir -p apps/desktop/src-tauri/.cargo
cat > apps/desktop/src-tauri/.cargo/config.toml << 'EOF'
[patch.crates-io]
terminator-rs = { path = "../../../../terminator/crates/terminator" }
terminator-workflow-recorder = { path = "../../../../terminator/crates/terminator-workflow-recorder" }
EOF
shell: bash
- name: Cache cargo dependencies
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Run Rust tests
working-directory: apps/desktop/src-tauri
run: cargo test --all-features --verbose
- name: Run Rust clippy
working-directory: apps/desktop/src-tauri
run: cargo clippy --all-features -- -D warnings
- name: Check Rust formatting
working-directory: apps/desktop/src-tauri
run: cargo fmt --all --check
frontend-tests:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
working-directory: apps/desktop
run: bun install
- name: Run TypeScript type checking
working-directory: apps/desktop
run: bunx tsc --noEmit
- name: Run frontend tests with coverage
working-directory: apps/desktop
run: bunx vitest run --coverage --exclude='**/e2e/**'
# Temporarily disabled - ESLint version mismatch with @typescript-eslint
# TODO: Fix ESLint configuration compatibility
# - name: Run frontend linting
# working-directory: apps/desktop
# run: bun run lint
build-test:
runs-on: windows-latest
needs: [rust-tests, frontend-tests]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Clone terminator (required for unpublished crate versions)
run: git clone --depth 1 https://github.com/mediar-ai/terminator.git ../terminator
shell: bash
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Create cargo config for CI
run: |
mkdir -p apps/desktop/src-tauri/.cargo
cat > apps/desktop/src-tauri/.cargo/config.toml << 'EOF'
[patch.crates-io]
terminator-rs = { path = "../../../../terminator/crates/terminator" }
terminator-workflow-recorder = { path = "../../../../terminator/crates/terminator-workflow-recorder" }
EOF
shell: bash
- name: Install dependencies
working-directory: apps/desktop
run: bun install
- name: Build application
working-directory: apps/desktop
run: bun run build:tauri