Skip to content

build(deps): bump the cargo-minor-and-patch group across 1 directory with 5 updates #54

build(deps): bump the cargo-minor-and-patch group across 1 directory with 5 updates

build(deps): bump the cargo-minor-and-patch group across 1 directory with 5 updates #54

Workflow file for this run

name: UX Integration Tests
on:
push:
branches: [main]
paths:
- 'ui/**'
- 'samples/**'
- 'crates/**'
- 'Cargo.toml'
- 'Cargo.lock'
- '.github/workflows/ux-tests.yml'
pull_request:
branches: [main]
paths:
- 'ui/**'
- 'samples/**'
- 'crates/**'
- 'Cargo.toml'
- 'Cargo.lock'
- '.github/workflows/ux-tests.yml'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ux-tests-${{ github.ref }}
cancel-in-progress: true
env:
TEST_DB: /tmp/hone-ux-test.db
jobs:
ux-tests:
name: Playwright UX Tests
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Install Rust
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: '1.92.0'
- name: Cache cargo
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-ux-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-ux-
- name: Install OpenSSL (for SQLCipher)
run: sudo apt-get update && sudo apt-get install -y pkg-config libssl-dev
- name: Build backend
run: cargo build --release --bin hone
- name: Setup Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: ui/package-lock.json
- name: Install UI dependencies
working-directory: ui
run: npm ci
- name: Install Playwright browsers
working-directory: ui
run: npx playwright install --with-deps chromium
- name: Build frontend
working-directory: ui
run: npm run build
# Seed test database before running tests
- name: Seed test database
run: |
echo "Initializing test database..."
./target/release/hone --no-encrypt --db $TEST_DB init
echo "Importing test data (with tagging and detection)..."
./target/release/hone --no-encrypt --db $TEST_DB import \
--file samples/test_data.csv --bank chase
echo "Verifying seeded data..."
./target/release/hone --no-encrypt --db $TEST_DB status
- name: Run Playwright UX tests
working-directory: ui
run: |
# Skip global setup since we already seeded the database
# Run all e2e test files with both github (CI annotations) and html (artifact upload) reporters
npx playwright test e2e/ --reporter=github --reporter=html
env:
CI: true
TEST_DB: ${{ env.TEST_DB }}
- name: Upload Playwright report
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: failure()
with:
name: playwright-report
path: ui/playwright-report/
retention-days: 7
- name: Upload screenshots
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: always()
with:
name: ux-screenshots
path: ui/e2e/screenshots/
retention-days: 7