Compare commits

...

4 Commits

Author SHA1 Message Date
Peter Steinberger
b6f66c25f9 fix: Use build scripts that inject version in CI
- Replace direct swift build with build-swift-universal.sh script
- This script properly injects the version before building
- Fixes 'cannot find Version in scope' compilation errors

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:18:27 +02:00
Peter Steinberger
cc2e929275 fix: Use dynamic Xcode selection in CI
- Remove hardcoded DEVELOPER_DIR environment variable
- Dynamically detect and use the latest available Xcode version
- This fixes the CI failure caused by Xcode 16.4 not being available

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:15:01 +02:00
Peter Steinberger
04b832dbf8 chore: Use macos-latest runner and Xcode 16.4 for CI
- Switch from macos-15 to macos-latest for both test jobs
- Revert Xcode version back to 16.4 as requested
- This ensures we're using the latest available macOS runner

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:11:59 +02:00
Peter Steinberger
017f4649de fix: Update CI workflow for new project structure and add CI badge
- Fix npm commands to run in Server directory
- Update npm cache path to Server/package-lock.json
- Fix coverage upload path to Server/coverage/lcov.info
- Update Xcode version from 16.4 to 16.1 for macOS-15 runners
- Add CI status badge to README

This should fix the CI build failures after the project restructuring.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:05:40 +02:00
2 changed files with 33 additions and 24 deletions

View File

@ -8,33 +8,30 @@ on:
jobs:
test:
runs-on: macos-15
runs-on: macos-latest
strategy:
matrix:
node-version: [20.x, 22.x]
env:
DEVELOPER_DIR: /Applications/Xcode_16.4.app/Contents/Developer
steps:
- uses: actions/checkout@v4
- name: Set up Xcode
run: |
sudo xcode-select -s $DEVELOPER_DIR
# List available Xcode versions
ls -la /Applications | grep Xcode || true
# Use the latest available Xcode
LATEST_XCODE=$(ls /Applications | grep Xcode | sort -V | tail -1)
echo "Found Xcode: $LATEST_XCODE"
sudo xcode-select -s /Applications/$LATEST_XCODE/Contents/Developer
xcodebuild -version
swift --version
- name: Build Swift CLI for tests
run: |
cd Apps/CLI
swift build -c release
# Copy the binary to the expected location
cp .build/release/peekaboo ../../peekaboo
cd ../..
# Make it executable
chmod +x peekaboo
# Use the build script that injects version
./scripts/build-swift-universal.sh
# Verify it exists
ls -la peekaboo
@ -43,18 +40,27 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: Server/package-lock.json
- name: Install dependencies
run: npm ci
run: |
cd Server
npm ci
- name: Build TypeScript
run: npm run build
run: |
cd Server
npm run build
- name: Run linter
run: npm run lint --if-present
run: |
cd Server
npm run lint --if-present
- name: Run tests with coverage
run: npm run test:coverage
run: |
cd Server
npm run test:coverage
env:
CI: true
@ -62,31 +68,33 @@ jobs:
uses: codecov/codecov-action@v4
if: matrix.node-version == '20.x'
with:
file: ./coverage/lcov.info
file: ./Server/coverage/lcov.info
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
build-swift:
runs-on: macos-15
runs-on: macos-latest
timeout-minutes: 30
env:
DEVELOPER_DIR: /Applications/Xcode_16.4.app/Contents/Developer
steps:
- uses: actions/checkout@v4
- name: Set up Xcode
run: |
sudo xcode-select -s $DEVELOPER_DIR
# List available Xcode versions
ls -la /Applications | grep Xcode || true
# Use the latest available Xcode
LATEST_XCODE=$(ls /Applications | grep Xcode | sort -V | tail -1)
echo "Found Xcode: $LATEST_XCODE"
sudo xcode-select -s /Applications/$LATEST_XCODE/Contents/Developer
xcodebuild -version
swift --version
- name: Build Swift CLI
run: |
cd Apps/CLI
swift build -c release
# Use the build script that injects version
./scripts/build-swift-universal.sh
- name: Run Swift tests
timeout-minutes: 15

View File

@ -3,6 +3,7 @@
![Peekaboo Banner](https://raw.githubusercontent.com/steipete/peekaboo/main/assets/banner.png)
[![npm version](https://badge.fury.io/js/%40steipete%2Fpeekaboo-mcp.svg)](https://www.npmjs.com/package/@steipete/peekaboo-mcp)
[![CI](https://github.com/steipete/Peekaboo/actions/workflows/ci.yml/badge.svg)](https://github.com/steipete/Peekaboo/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![macOS](https://img.shields.io/badge/macOS-14.0%2B-blue.svg)](https://www.apple.com/macos/)
[![Swift](https://img.shields.io/badge/Swift-5.9%2B-orange.svg)](https://swift.org/)