petgraph-decypher 0.2.0

Build petgraph graphs from OpenCypher queries
Documentation
name: CI

on:
  push:
  pull_request:

permissions:
  contents: read

jobs:
  test:
    name: cargo test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable

      - name: Cache cargo registry
        uses: Swatinem/rust-cache@v2

      - name: Run tests
        run: cargo test

  fmt:
    name: cargo fmt --check
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt

      - name: Cache cargo registry
        uses: Swatinem/rust-cache@v2

      - name: Check formatting
        run: cargo fmt --check

  clippy:
    name: cargo clippy
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy

      - name: Cache cargo registry
        uses: Swatinem/rust-cache@v2

      - name: Run clippy
        run: cargo clippy --all-targets -- -D warnings

  dependencies:
    name: Dependency Submission
    runs-on: ubuntu-latest
    if: github.event_name == 'push' && github.ref == 'refs/heads/main'
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Cache Cargo artifacts
        uses: Swatinem/rust-cache@v2

      - name: Install cargo-sbom
        uses: psastras/sbom-rs/actions/install-cargo-sbom@cargo-sbom-v0.10.0

      - name: Generate SBOM
        run: cargo-sbom --output-format=spdx_json_2_3 > sbom.json

      - name: Upload SBOM as artifact
        uses: actions/upload-artifact@v7
        with:
          name: sbom
          path: sbom.json

      - name: Submit dependencies to GitHub
        uses: advanced-security/spdx-dependency-submission-action@v0.2.0
        with:
          filePath: sbom.json