gitlobster 1.5.1

A tool for cloning all available repositories in a GitLab instance
name: Tests

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  pre_job:
    runs-on: ubuntu-latest
    outputs:
      should_skip: ${{ steps.skip_check.outputs.should_skip }}
    steps:
      - id: skip_check
        uses: fkirc/skip-duplicate-actions@master
        with:
          skip_after_successful_duplicate: "true"
          paths_ignore: '["**/*.md", "**/*.svg", "**/*.png", ".gitignore"]'

  lint_check:
    needs: pre_job
    if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Install toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: "1.82"
          components: clippy, rustfmt
      - name: Checking code format
        run: cargo fmt -- --check --config use_try_shorthand=true
      - name: Clippy
        uses: clechasseur/rs-clippy-check@v3
        with:
          args: --all-features --bins --examples --tests --benches -- -W clippy::all -W clippy::pedantic -D warnings

  unit_tests:
    needs: pre_job
    if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Install toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: "1.82"
      - name: Run tests
        run: cargo test