metadata-gen 0.0.2

A powerful Rust library for extracting, validating, and processing metadata in YAML, TOML, and JSON formats from any content or data file.
Documentation
name: 📶 Coverage

on:
  push:
    branches:
      - main
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  coverage:
    name: Code Coverage
    runs-on: ubuntu-latest
    env:
      CARGO_INCREMENTAL: "0"
      RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests"
      RUSTDOCFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests"

    steps:
      # Checkout the repository
      - name: Checkout repository
        uses: actions/checkout@v4

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

      # Configure cache for Cargo
      - name: Cache Cargo registry, index
        uses: actions/cache@v4
        id: cache-cargo
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/bin
            ~/.cargo/git
          key: linux-${{ steps.toolchain.outputs.rustc_hash }}-rust-cov-${{ hashFiles('**/Cargo.lock') }}

      # Run tests with all features
      - name: Test (cargo test)
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: "--workspace"

      # Install grcov
      - uses: actions-rs/grcov@v0.1
        id: coverage

      # Upload to Codecov.io
      - name: Upload to Codecov.io
        uses: codecov/codecov-action@v5
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          file: ${{ steps.coverage.outputs.report }}