Peekaboo/.github/workflows/ci.yml
Peter Steinberger 94e966fa98 feat: Add fuzzy matching for application names
- Implement Levenshtein distance algorithm for fuzzy app name matching
- Handle common typos like "Chromee" → "Google Chrome"
- Add window-specific labels in analysis results
- Improve error messages with app name suggestions
- Fix TypeScript JSON parsing for error responses
- Update tests for new error message formats

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 05:22:58 +01:00

97 lines
No EOL
2.1 KiB
YAML

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: macos-15
strategy:
matrix:
node-version: [20.x, 22.x]
env:
DEVELOPER_DIR: /Applications/Xcode_16.3.app/Contents/Developer
steps:
- uses: actions/checkout@v4
- name: Set up Xcode
run: |
sudo xcode-select -s $DEVELOPER_DIR
xcodebuild -version
swift --version
- name: Build Swift CLI for tests
run: |
cd peekaboo-cli
swift build -c release
# Copy the binary to the expected location
cp .build/release/peekaboo ../peekaboo
cd ..
# Make it executable
chmod +x peekaboo
# Verify it exists
ls -la peekaboo
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build TypeScript
run: npm run build
- name: Run linter
run: npm run lint --if-present
- name: Run tests with coverage
run: npm run test:coverage
env:
CI: true
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
if: matrix.node-version == '20.x'
with:
file: ./coverage/lcov.info
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
build-swift:
runs-on: macos-15
timeout-minutes: 30
env:
DEVELOPER_DIR: /Applications/Xcode_16.3.app/Contents/Developer
steps:
- uses: actions/checkout@v4
- name: Set up Xcode
run: |
sudo xcode-select -s $DEVELOPER_DIR
xcodebuild -version
swift --version
- name: Build Swift CLI
run: |
cd peekaboo-cli
swift build -c release
- name: Run Swift tests
timeout-minutes: 10
run: |
cd peekaboo-cli
swift test --parallel --skip "LocalIntegrationTests|ScreenshotValidationTests|ApplicationFinderTests|WindowManagerTests"
env:
CI: true