torrust-tracker-deployer 0.1.0

Torrust Tracker Deployer - Deployment Infrastructure with Ansible and OpenTofu
Documentation
name: Coverage

on:
  push:
  pull_request:

env:
  CARGO_TERM_COLOR: always

permissions:
  contents: read

jobs:
  coverage:
    name: Coverage Report
    runs-on: ubuntu-latest

    steps:
      - id: checkout
        name: Checkout Repository
        uses: actions/checkout@v5

      - id: setup
        name: Setup Toolchain
        uses: dtolnay/rust-toolchain@stable

      - id: cache
        name: Enable Workflow Cache
        uses: Swatinem/rust-cache@v2

      - id: install-llvm-cov
        name: Install cargo-llvm-cov
        uses: taiki-e/install-action@v2
        with:
          tool: cargo-llvm-cov

      - id: build-binaries
        name: Build All Binaries
        run: |
          cargo build --bins
          cargo build -p torrust-tracker-deployer-dependency-installer --bin dependency-installer

      - id: coverage-text
        name: Generate Text Coverage Summary
        run: cargo cov

      - id: coverage-html
        name: Generate HTML Coverage Report
        run: cargo cov-html

      - id: coverage-check
        name: Verify Coverage Threshold
        run: cargo cov-check

      - id: upload-coverage
        name: Upload HTML Coverage Report
        uses: actions/upload-artifact@v6
        with:
          name: coverage-html-report
          path: target/llvm-cov/html/
          retention-days: 30