ripcurl 0.2.0

Very persistent file transfers
Documentation
name: Rust

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

env:
  CARGO_TERM_COLOR: always

jobs:
  semver-checks:
    runs-on: macos-15
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}-rust-semver
      cancel-in-progress: true
    steps:
      - name: Checkout
        uses: actions/checkout@v6

  rustfmt:
    runs-on: ubuntu-latest
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}-rust-rustfmt
      cancel-in-progress: true
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        
      - name: rustfmt checks
        run: cargo fmt --check
  
  clippy:
    runs-on: ubuntu-latest
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}-rust-clippy
      cancel-in-progress: true
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Clippy checks
        run: cargo clippy --all-targets -- -D warnings

  build:
    runs-on: ubuntu-latest
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}-rust-build
      cancel-in-progress: true
    steps:
    - uses: actions/checkout@v6
    
    - uses: taiki-e/install-action@nextest
    - uses: taiki-e/install-action@just

    - name: Build
      run: cargo build --verbose
      
    - name: Run tests
      run: just test