borgbackup 0.10.1

A wapper for the borgbackup utility
Documentation
name: Build & Tests on linux
on:
  push:
    paths-ignore:
      - "*.md"
    pull_request:

jobs:
  build_rs:
    name: Build & Test on linux
    runs-on: ubuntu-latest
    permissions:
      contents: read
      security-events: write
      actions: read
    env:
      CARGO_TERM_COLOR: always
    steps:
      - uses: actions/checkout@v3

      # When rustup is updated, it tries to replace its binary, which on Windows is somehow locked.
      # This can result in the CI failure, see: https://github.com/rust-lang/rustup/issues/3029
      - run: |
          rustup set auto-self-update disable
          rustup toolchain install stable --profile minimal

      - uses: Swatinem/rust-cache@v2

      - name: Install dependencies
        run: |
          rustup component add clippy
          cargo install clippy-sarif sarif-fmt cargo-deny

      - name: Build
        run: cargo build -p borgbackup

      - name: Build with tokio feature
        run: cargo build -p borgbackup -F tokio

      - name: Run cargo deny check
        run: cargo deny check --hide-inclusion-graph

      - name: Run rust-clippy
        run: cargo clippy --workspace --message-format=json | clippy-sarif | tee rust-clippy-results.sarif | sarif-fmt
      - name: Run cargo check
        run: cargo check -F tokio

        continue-on-error: true

      - name: Upload clippy analysis results to GitHub
        uses: github/codeql-action/upload-sarif@v2
        with:
          sarif_file: rust-clippy-results.sarif
          wait-for-processing: true