--- name: OpenSK code coverage report on: push: paths: - 'libraries/**/*.rs' pull_request: types: [opened, synchronize, reopened] jobs: coveralls: name: OpenSK code coverage runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: "true" - name: Install Rust toolchain run: rustup show - uses: actions/setup-python@v5 with: python-version: "3.10" - name: Set up OpenSK run: ./setup.sh - name: Install llvm tools run: rustup +nightly component add llvm-tools-preview - name: Install grcov run: if [[ ! -e ~/.cargo/bin/grcov ]]; then cargo +stable install grcov; fi - uses: actions-rs/cargo@v1 with: toolchain: nightly command: test args: --manifest-path libraries/opensk/Cargo.toml --features "std,with_ctap1,vendor_hid,ed25519" --no-fail-fast env: RUSTFLAGS: "-Cinstrument-coverage" LLVM_PROFILE_FILE: "opensk-%p-%m.profraw" - name: Run grcov run: RUSTUP_TOOLCHAIN=nightly grcov . --binary-path ./libraries/opensk/target/debug/ --source-dir libraries/opensk/ --output-type lcov --ignore-not-existing --output-path ./lcov.info --ignore "/*" --ignore "examples/*" --ignore "third_party/*" - uses: coverallsapp/github-action@1.1.3 name: upload report to coveralls with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: "./lcov.info" base-path: "libraries/opensk"