Skip to main content
Glama
macos-ci.yml8.67 kB
name: macOS CI on: push: branches: [ main ] pull_request: branches: [ main ] concurrency: group: macos-ci-${{ github.ref }} cancel-in-progress: true env: SWIFT_TOOLCHAIN_ID: swift-6.2-RELEASE SWIFT_TOOLCHAIN_NAME: swift SWIFT_TOOLCHAIN_URL: https://download.swift.org/swift-6.2-release/xcode/swift-6.2-RELEASE/swift-6.2-RELEASE-osx.pkg jobs: peekaboo-core: name: PeekabooCore build & tests runs-on: macos-latest env: PEEKABOO_INCLUDE_AUTOMATION_TESTS: "false" RUN_AUTOMATION_TESTS: "false" RUN_LOCAL_TESTS: "false" steps: - uses: actions/checkout@v4 - name: Checkout Tachikoma subrepo uses: actions/checkout@v4 with: repository: steipete/Tachikoma ref: main path: Tachikoma - name: Remove phantom submodule metadata run: | rm -f .gitmodules git config --local --remove-section submodule.Tachikoma || true - name: Prepare Swift Argument Parser fork run: | sudo mkdir -p /Users/steipete/Projects sudo chown $USER /Users/steipete sudo mkdir -p /Users/steipete/Projects sudo chown $USER /Users/steipete/Projects if [ -d /Users/steipete/Projects/swift-argument-parser ]; then cd /Users/steipete/Projects/swift-argument-parser git fetch origin approachable-concurrency git checkout approachable-concurrency git pull --ff-only origin approachable-concurrency else git clone --branch approachable-concurrency --depth 1 https://github.com/steipete/swift-argument-parser.git /Users/steipete/Projects/swift-argument-parser fi - name: Cache SwiftPM (PeekabooCore) uses: actions/cache@v4 with: path: | ~/.swiftpm ~/.cache/org.swift.swiftpm Core/PeekabooCore/.build key: ${{ runner.os }}-spm-core-${{ hashFiles('Core/PeekabooCore/Package.resolved') }} restore-keys: | ${{ runner.os }}-spm-core- - name: Install Swift 6.2 toolchain run: | if [ ! -d "/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain" ]; then curl -L "${SWIFT_TOOLCHAIN_URL}" -o /tmp/swift-toolchain.pkg sudo installer -pkg /tmp/swift-toolchain.pkg -target / fi - name: Show Swift toolchain version run: xcrun --toolchain ${SWIFT_TOOLCHAIN_NAME} swift --version - name: Export Swift toolchain binary run: | echo "SWIFT_BIN=/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain/usr/bin/swift" >> "$GITHUB_ENV" - name: Show Xcode version run: xcodebuild -version - name: Build PeekabooCore working-directory: Core/PeekabooCore run: | "$SWIFT_BIN" build --configuration debug - name: Run focused Swift tests working-directory: Core/PeekabooCore run: | "$SWIFT_BIN" test --filter ScreenCaptureServiceFlowTests peekaboo-cli: name: Peekaboo CLI build & tests runs-on: macos-latest needs: peekaboo-core env: PEEKABOO_INCLUDE_AUTOMATION_TESTS: "false" PEEKABOO_SKIP_AUTOMATION: "1" steps: - uses: actions/checkout@v4 - name: Checkout Tachikoma subrepo uses: actions/checkout@v4 with: repository: steipete/Tachikoma ref: main path: Tachikoma - name: Remove phantom submodule metadata run: | rm -f .gitmodules git config --local --remove-section submodule.Tachikoma || true - name: Prepare Swift Argument Parser fork run: | sudo mkdir -p /Users/steipete/Projects sudo chown $USER /Users/steipete sudo mkdir -p /Users/steipete/Projects sudo chown $USER /Users/steipete/Projects if [ -d /Users/steipete/Projects/swift-argument-parser ]; then cd /Users/steipete/Projects/swift-argument-parser git fetch origin approachable-concurrency git checkout approachable-concurrency git pull --ff-only origin approachable-concurrency else git clone --branch approachable-concurrency --depth 1 https://github.com/steipete/swift-argument-parser.git /Users/steipete/Projects/swift-argument-parser fi - name: Cache SwiftPM (CLI) uses: actions/cache@v4 with: path: | ~/.swiftpm ~/.cache/org.swift.swiftpm Apps/CLI/.build key: ${{ runner.os }}-spm-cli-${{ hashFiles('Apps/CLI/Package.resolved') }} restore-keys: | ${{ runner.os }}-spm-cli- - name: Install Swift 6.2 toolchain run: | if [ ! -d "/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain" ]; then curl -L "${SWIFT_TOOLCHAIN_URL}" -o /tmp/swift-toolchain.pkg sudo installer -pkg /tmp/swift-toolchain.pkg -target / fi - name: Show Swift toolchain version run: xcrun --toolchain ${SWIFT_TOOLCHAIN_NAME} swift --version - name: Export Swift toolchain binary run: | echo "SWIFT_BIN=/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain/usr/bin/swift" >> "$GITHUB_ENV" - name: Show Xcode version run: xcodebuild -version - name: Build CLI target working-directory: Apps/CLI run: | "$SWIFT_BIN" build --configuration debug - name: Run CLI unit tests (skip automation) working-directory: Apps/CLI run: | "$SWIFT_BIN" test -Xswiftc -DPEEKABOO_SKIP_AUTOMATION tachikoma: name: Tachikoma build & tests runs-on: macos-latest needs: peekaboo-cli env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} steps: - uses: actions/checkout@v4 - name: Checkout Tachikoma uses: actions/checkout@v4 with: repository: steipete/Tachikoma ref: main path: Tachikoma - name: Remove phantom submodule metadata run: | rm -f .gitmodules git config --local --remove-section submodule.Tachikoma || true - name: Prepare Swift Argument Parser fork run: | sudo mkdir -p /Users/steipete/Projects sudo chown $USER /Users/steipete sudo mkdir -p /Users/steipete/Projects sudo chown $USER /Users/steipete/Projects if [ -d /Users/steipete/Projects/swift-argument-parser ]; then cd /Users/steipete/Projects/swift-argument-parser git fetch origin approachable-concurrency git checkout approachable-concurrency git pull --ff-only origin approachable-concurrency else git clone --branch approachable-concurrency --depth 1 https://github.com/steipete/swift-argument-parser.git /Users/steipete/Projects/swift-argument-parser fi - name: Cache SwiftPM (Tachikoma) uses: actions/cache@v4 with: path: | ~/.swiftpm ~/.cache/org.swift.swiftpm Tachikoma/.build key: ${{ runner.os }}-spm-tachikoma-${{ hashFiles('Tachikoma/Package.resolved') }} restore-keys: | ${{ runner.os }}-spm-tachikoma- - name: Install Swift 6.2 toolchain run: | if [ ! -d "/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain" ]; then curl -L "${SWIFT_TOOLCHAIN_URL}" -o /tmp/swift-toolchain.pkg sudo installer -pkg /tmp/swift-toolchain.pkg -target / fi - name: Show Swift toolchain version run: xcrun --toolchain ${SWIFT_TOOLCHAIN_NAME} swift --version - name: Export Swift toolchain binary run: | echo "SWIFT_BIN=/Library/Developer/Toolchains/${SWIFT_TOOLCHAIN_ID}.xctoolchain/usr/bin/swift" >> "$GITHUB_ENV" - name: Show Xcode version run: xcodebuild -version - name: Build Tachikoma working-directory: Tachikoma run: | "$SWIFT_BIN" build --configuration debug - name: Run Tachikoma unit tests working-directory: Tachikoma run: | "$SWIFT_BIN" test --filter unit lint: name: SwiftLint (core + CLI) runs-on: macos-latest needs: [peekaboo-cli, tachikoma] steps: - uses: actions/checkout@v4 - name: Install SwiftLint run: brew install swiftlint - name: Run SwiftLint with CI config run: swiftlint --config .swiftlint-ci.yml

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/steipete/Peekaboo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server