name: CI on: push: branches: [ main, master ] pull_request: branches: [ main, master ] jobs: flake-check: name: Flake Check runs-on: nix steps: - name: Checkout code uses: actions/checkout@v4 - name: Validate flake run: nix flake check --print-build-logs build-all: name: Build All Packages runs-on: nix steps: - name: Checkout code uses: actions/checkout@v4 - name: Build all MCP servers run: nix build .#default --print-build-logs build-individual: name: Build Individual Packages runs-on: nix strategy: fail-fast: false matrix: package: - academic-search-mcp-server - duckduckgo-mcp-server - kindly-web-search-mcp-server - manim-mcp-server - pdf-reader-mcp - rust-research-mcp - zotero-mcp steps: - name: Checkout code uses: actions/checkout@v4 - name: Build ${{ matrix.package }} run: nix build .#${{ matrix.package }} --print-build-logs - name: Test executable exists run: | if [ -e "./result/bin/${{ matrix.package }}" ]; then echo "✓ Executable found: ${{ matrix.package }}" ./result/bin/${{ matrix.package }} --help || true else echo "⚠ No executable found at ./result/bin/${{ matrix.package }}" ls -la ./result/bin/ || echo "No bin directory" fi