mt5-quant 1.34.3

MCP server for MT5 strategy development on macOS/Linux
name: Rust

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

permissions:
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ !startsWith(github.ref, 'refs/tags/') }}

env:
  CARGO_TERM_COLOR: always

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo test --verbose

  lint:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
    - uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # v1
      with:
        toolchain: stable
        components: clippy, rustfmt
    - name: Cache Cargo
      uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
          target
        key: linux-cargo-${{ hashFiles('Cargo.lock') }}
        restore-keys: linux-cargo-
    - name: Check formatting
      run: cargo fmt --all -- --check
    - name: Clippy
      run: cargo clippy --all-targets -- -D warnings

  cargo-deny:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        checks: [advisories, bans, licenses, sources]
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - uses: embarkstudios/cargo-deny-action@3c6349835b2b7b196a839186cb8b78e02f7b5f25 # v2.1.1
        with:
          command: check ${{ matrix.checks }}
          log-level: warn