name: CI on: push: branches: [ main, master ] pull_request: branches: [ main, master ] jobs: flake-check: name: Flake Check runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Install Nix uses: https://github.com/cachix/install-nix-action@v26 with: extra_nix_config: | experimental-features = nix-command flakes accept-flake-config = true - name: Validate flake run: nix flake check --print-build-logs build-individual: name: Build Individual Packages runs-on: ubuntu-latest 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: Install Nix uses: https://github.com/cachix/install-nix-action@v26 with: extra_nix_config: | experimental-features = nix-command flakes accept-flake-config = true - 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