emerald-vault 0.36.0

Emerald Vault - Key Storage for Emerald Wallet
Documentation
name: Test

on:
  push:
    branches:
      - master
      - release/*
      - ci/*
  pull_request:
    branches:
      - master

jobs:
  tests:
    name: Test ${{ matrix.os }}
    strategy:
      matrix:
        os: [ "windows-latest", "macos-latest", "ubuntu-latest" ]
    runs-on: ${{ matrix.os }}
    steps:
      - name: Checkout the code
        uses: actions/checkout@v5

      - name: Install Rust
        run: rustup toolchain add --profile=minimal stable

      - name: Install system libs (Linux)
        run: sudo apt-get update && sudo apt-get install libusb-1.0-0-dev libudev-dev
        if: runner.os == 'Linux'

      - name: Install LLVM (Windows)
        run: choco install -y llvm
        if: runner.os == 'Windows'

      - name: Install system libs (Windows)
        run: vcpkg install libusb
        if: runner.os == 'Windows'

      - name: Test
        run: cargo test --all --release
        env:
          RUST_BACKTRACE: "1"

  coverage:
    name: Coverage Report
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the code
        uses: actions/checkout@v5

      - name: Install grcov
        run: |
          wget https://github.com/mozilla/grcov/releases/download/v0.10.5/grcov-x86_64-unknown-linux-gnu.tar.bz2
          tar -xvf grcov-x86_64-unknown-linux-gnu.tar.bz2
          rustup component add llvm-tools

      - name: Instal system libs
        run: sudo apt-get update && sudo apt-get install libusb-1.0-0-dev libudev-dev

      - name: Test
        run: cargo test --no-fail-fast
        env:
          # See https://github.com/mozilla/grcov
          CARGO_INCREMENTAL: '0'
          LLVM_PROFILE_FILE: "emerald-vault-%p-%m.profraw"
          RUSTFLAGS: '-Cinstrument-coverage'
          RUSTDOCFLAGS: '-Cpanic=abort'

      - name: Coverage Report
        run: ./grcov . --binary-path ./target/debug/ -s . -t lcov --branch --ignore-not-existing --ignore "/*" -o lcov.info

      - name: Upload to Coveralls
        uses: coverallsapp/github-action@master
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: lcov.info

      - name: Upload to Codecov
        uses: codecov/codecov-action@v5
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          files: lcov.info