name: "Build and test"
on:
  push:
    branches:
      - master
  pull_request:

jobs:
  # build:
  #   runs-on: ubuntu-latest-personal
  #   steps:
  #     - uses: actions/checkout@v3

  #     - name: Install latest nightly toolchain
  #       uses: actions-rs/toolchain@v1
  #       with:
  #           toolchain: nightly
  #           override: true

  #     - name: Cache dependencies
  #       uses: Swatinem/rust-cache@v2

  #     - name: Build
  #       run: cargo build --all-features --verbose --release

  # check:
  #   runs-on: ubuntu-latest-personal
  #   steps:
  #     - uses: actions/checkout@v3

  #     - name: Install latest nightly toolchain
  #       uses: actions-rs/toolchain@v1
  #       with:
  #           toolchain: nightly
  #           override: true
  #           components: rustfmt, clippy

  #     - name: Cache dependencies
  #       uses: Swatinem/rust-cache@v2

  #     - name: Check code format
  #       run: cargo fmt -- --check

  #     - name: Check clippy
  #       run: cargo clippy --all-features -- --deny warnings

  # test:
  #   runs-on: ubuntu-latest-personal
  #   steps:
  #     - uses: actions/checkout@v3
  #     - uses: cargo-bins/cargo-binstall@main

  #     - name: Install mpv
  #       run: apt-get update && apt-get install -y mpv

  #     - name: Install latest nightly toolchain
  #       uses: actions-rs/toolchain@v1
  #       with:
  #           toolchain: nightly
  #           override: true
  #           components: llvm-tools-preview

  #     - name: Cache dependencies
  #       uses: Swatinem/rust-cache@v2

  #     - name: Create necessary directories
  #       run: mkdir -p target/test-report

  #     - name: Run tests
  #       run: |
  #         cargo test --all-features --release --no-fail-fast -- -Zunstable-options --format json --report-time \
  #           | tee target/test-report/test-report.json
  #       env:
  #         RUSTFLAGS: "-Cinstrument-coverage"
  #         LLVM_PROFILE_FILE: "target/coverage/%p-%m.profraw"

  #     - name: Install markdown-test-report
  #       run: cargo binstall -y markdown-test-report

  #     - name: Generate test report
  #       run: markdown-test-report target/test-report/test-report.json --output target/test-report/test-report.md

  #     - name: Upload test report
  #       uses: actions/upload-artifact@v3
  #       with:
  #         name: test-report.md
  #         path: target/test-report/test-report.md

  #     - name: Install grcov
  #       run: cargo binstall -y grcov

  #     - name: Generate coverage report
  #       run: |
  #         grcov \
  #           --source-dir . \
  #           --binary-path ./target/release/deps/ \
  #           --excl-start 'mod test* \{' \
  #           --ignore 'tests/*' \
  #           --ignore "*test.rs" \
  #           --ignore "*tests.rs" \
  #           --ignore "*github.com*" \
  #           --ignore "*libcore*" \
  #           --ignore "*rustc*" \
  #           --ignore "*liballoc*" \
  #           --ignore "*cargo*" \
  #           -t html \
  #           -o ./target/coverage/html \
  #           target/coverage/

  #     - name: Upload coverage report
  #       uses: actions/upload-artifact@v3
  #       with:
  #         name: coverage
  #         path: target/coverage/html