name: Rust CI

on:
  pull_request:
    types: [ opened, synchronize, edited ]
    paths:
      - 'tuta-sdk/**'
      - 'packages/node-mimimi/**'
      - '.github/workflows/rust-test.yml'
  push:
    branches:
      - dev-*
      - '*/dev'

jobs:
  test:
    runs-on: ubuntu-latest

    permissions:
      actions: none
      checks: none
      contents: read
      deployments: none
      id-token: none
      issues: none
      discussions: none
      packages: none
      pages: none
      pull-requests: none
      repository-projects: none
      security-events: none
      statuses: none

    steps:
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
      - uses: ./.github/shared/setup-rust
      - name: rust format
        run: cargo fmt --check
      - name: rust warning check with clippy
        run: cargo clippy --all --no-deps -- -Dwarnings # -Dwarnings changes warnings to errors so that the check fails
      - name: rust tests
        run: cargo test --all
