diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index aeb46a3..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,107 +0,0 @@ -name: CI - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: 1 - -jobs: - fmt: - name: Format Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - with: - components: rustfmt - - - name: Check formatting - run: cargo fmt --all -- --check - - clippy: - name: Clippy - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - with: - components: clippy - - - name: Cache dependencies - uses: Swatinem/rust-cache@v2 - - - name: Run clippy - run: cargo clippy --all-targets --all-features -- -D warnings - - test: - name: Test Suite - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - rust: [stable] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - - name: Cache dependencies - uses: Swatinem/rust-cache@v2 - - - name: Run tests - run: cargo test --all-features - - - name: Run doc tests - run: cargo test --doc --all-features - - build: - name: Build - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - rust: [stable] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - - name: Cache dependencies - uses: Swatinem/rust-cache@v2 - - - name: Build - run: cargo build --release - - coverage: - name: Code Coverage - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - - name: Install tarpaulin - run: cargo install cargo-tarpaulin - - - name: Cache dependencies - uses: Swatinem/rust-cache@v2 - - - name: Generate coverage - run: cargo tarpaulin --out Xml --all-features - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 - with: - fail_ci_if_error: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 6464bfb..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,145 +0,0 @@ -name: Release - -on: - push: - tags: - - 'v*' - -permissions: - contents: write - -env: - CARGO_TERM_COLOR: always - -jobs: - build-release: - name: Build Release - strategy: - matrix: - include: - - target: x86_64-unknown-linux-gnu - os: ubuntu-latest - - - target: aarch64-unknown-linux-gnu - os: ubuntu-latest - cross: true - - - target: x86_64-apple-darwin - os: macos-latest - - - target: aarch64-apple-darwin - os: macos-latest - - - target: x86_64-pc-windows-msvc - os: windows-latest - - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.target }} - - - name: Install cross-compilation tools - if: matrix.cross - run: cargo install cross --git https://github.com/cross-rs/cross - - - name: Cache dependencies - uses: Swatinem/rust-cache@v2 - with: - key: ${{ matrix.target }} - - - name: Build release binary - if: ${{ !matrix.cross }} - run: cargo build --release --target ${{ matrix.target }} - - - name: Build release binary (cross) - if: matrix.cross - run: cross build --release --target ${{ matrix.target }} - - - name: Strip binary (Linux/macOS) - if: matrix.os != 'windows-latest' && !matrix.cross - run: strip target/${{ matrix.target }}/release/erl_dist_mcp - - - name: Create archive (Linux/macOS) - if: matrix.os != 'windows-latest' - run: | - cd target/${{ matrix.target }}/release - tar czf erl_dist_mcp-${{ matrix.target }}.tar.gz erl_dist_mcp - mv erl_dist_mcp-${{ matrix.target }}.tar.gz ../../../ - - - name: Create archive (Windows) - if: matrix.os == 'windows-latest' - run: | - cd target/${{ matrix.target }}/release - 7z a erl_dist_mcp-${{ matrix.target }}.zip erl_dist_mcp.exe - move erl_dist_mcp-${{ matrix.target }}.zip ../../../ - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: erl_dist_mcp-${{ matrix.target }} - path: erl_dist_mcp-${{ matrix.target }}.* - - create-release: - name: Create Release - needs: build-release - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Install git-cliff - run: cargo install git-cliff - - - name: Generate changelog - id: changelog - run: | - NOTES=$(git cliff --latest --strip header) - echo "changelog<> $GITHUB_OUTPUT - echo "$NOTES" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - - name: Download all artifacts - uses: actions/download-artifact@v4 - with: - path: artifacts - - - name: Collect release assets - run: | - mkdir release-assets - find artifacts -type f \( -name '*.tar.gz' -o -name '*.zip' \) -exec mv {} release-assets/ \; - - - name: Create Release - uses: softprops/action-gh-release@v2 - with: - name: Release ${{ github.ref_name }} - body: | - ## Changes - - ${{ steps.changelog.outputs.changelog }} - - ## Installation - - Download the appropriate binary for your platform below, extract it, and add it to your PATH. - - See the [README](https://github.com/${{ github.repository }}/blob/main/README.md) for configuration and usage instructions. - files: release-assets/* - - publish-crate: - name: Publish to crates.io - needs: create-release - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - - name: Publish - run: cargo publish - env: - CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} diff --git a/README.md b/README.md index 1652032..c47481a 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ A Model Context Protocol (MCP) server that connects to Erlang/BEAM nodes via the Erlang distribution protocol, providing AI assistants with tools for introspection, debugging, tracing, and code evaluation on remote Erlang systems. -[![CI](https://github.com/jimsynz/erl_dist_mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/jimsynz/erl_dist_mcp/actions/workflows/ci.yml) - ## Features - 🔌 **Dynamic Node Connections**: Connect to multiple Erlang nodes dynamically at runtime