rwasm 0.4.4

ZK-friendly WebAssembly runtime optimized for blockchain and zero-knowledge applications
Documentation
name: Coverage

on:
  push:
    branches: [ main, devel ]
    paths-ignore:
      - "**.md"
      - "docs/**"
  pull_request:
    branches: [ main, devel ]
    paths-ignore:
      - "**.md"
      - "docs/**"
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: 1

jobs:
  coverage:
    name: Coverage
    runs-on: [self-hosted, linux]
    steps:
      - uses: actions/checkout@v6
        with:
          submodules: recursive

      - name: Install clang and build tools
        run: |
          sudo apt-get update
          sudo apt-get install -y clang libclang-dev pkg-config

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable
          targets: wasm32-unknown-unknown

      - name: Setup cache
        uses: Swatinem/rust-cache@v2

      - name: Install wasm32 target
        run: |
          rustup target add wasm32-unknown-unknown
          rustup +nightly-2025-09-20 target add wasm32-unknown-unknown

      - name: Run cargo check
        run: cargo check

      - name: Generate code coverage
        run: |
          cargo install cargo-llvm-cov grcov
          make coverage

      - name: Import Codecov CLI verification key
        env:
          CODECOV_PGP_FINGERPRINT: "27034E7FDB850E0BBC2C62FF806BB28AED779869"
        run: |
          curl -fsSL https://keybase.io/codecovsecops/pgp_keys.asc -o codecov.asc
          fingerprint="$(gpg --show-keys --with-colons codecov.asc | awk -F: '/^fpr:/ { print $10; exit }')"
          test "$fingerprint" = "$CODECOV_PGP_FINGERPRINT"
          gpg --import codecov.asc

      - name: Upload to codecov.io
        uses: codecov/codecov-action@v7.0.0
        with:
          files: ./lcov.info
          token: ${{ secrets.CODECOV_TOKEN }}
          fail_ci_if_error: true

      - name: Archive code coverage results
        uses: actions/upload-artifact@v7
        with:
          name: code-coverage-report
          path: cobertura.xml