From: Matt Corallo Date: Sun, 17 Sep 2023 00:10:29 +0000 (+0000) Subject: Move coverage generation to llvm-cov in the hopes its more stable X-Git-Tag: v0.0.117-alpha1~5^2~1 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=b78f93694f0b1c6c2125539502fcb66b3b191284;p=rust-lightning Move coverage generation to llvm-cov in the hopes its more stable --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 525dcbe5f..45bd4d304 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,6 @@ jobs: include: - toolchain: stable platform: ubuntu-latest - coverage: true # 1.48.0 is the MSRV for all crates except lightning-transaction-sync and Win/Mac - toolchain: 1.48.0 platform: ubuntu-latest @@ -50,46 +49,31 @@ jobs: run: | sudo apt-get -y install shellcheck shellcheck ci/ci-tests.sh - - name: Run CI script with coverage generation - if: matrix.coverage - shell: bash # Default on Winblows is powershell - run: LDK_COVERAGE_BUILD=true ./ci/ci-tests.sh - name: Run CI script - if: "!matrix.coverage" shell: bash # Default on Winblows is powershell run: ./ci/ci-tests.sh - - name: Install deps for kcov - if: matrix.coverage - run: | - sudo apt-get update - sudo apt-get -y install binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev - - name: Install kcov - if: matrix.coverage - run: | - wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz - tar xzf master.tar.gz - cd kcov-master && mkdir build && cd build - cmake .. - make - make install DESTDIR=../../kcov-build - cd ../.. && rm -rf kcov-master master.tar.gz - - name: Generate coverage report - if: matrix.coverage - run: | - for file in target/debug/deps/lightning*; do - [ -x "${file}" ] || continue; - mkdir -p "target/cov/$(basename $file)"; - ./kcov-build/usr/local/bin/kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file"; - done - - name: Upload coverage - if: matrix.coverage - uses: codecov/codecov-action@v3 + + coverage: + strategy: + fail-fast: false + runs-on: ubuntu-latest + steps: + - name: Checkout source code + uses: actions/checkout@v3 with: + fetch-depth: 0 + - name: Install Rust stable toolchain + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal + - name: Run tests with coverage generation + run: | + cargo install cargo-llvm-cov + export RUSTFLAGS="-Clink-dead-code -Coverflow-checks=off" + cargo llvm-cov --features rest-client,rpc-client,tokio,futures,serde --codecov --hide-instantiations --output-path=target/codecov.json # Could you use this to fake the coverage report for your PR? Sure. # Will anyone be impressed by your amazing coverage? No # Maybe if codecov wasn't broken we wouldn't need to do this... - token: f421b687-4dc2-4387-ac3d-dc3b2528af57 - fail_ci_if_error: true + bash <(curl -s https://codecov.io/bash) -f target/codecov.json -t "f421b687-4dc2-4387-ac3d-dc3b2528af57" benchmark: runs-on: ubuntu-latest diff --git a/ci/ci-tests.sh b/ci/ci-tests.sh index eb42bfb01..d5f659850 100755 --- a/ci/ci-tests.sh +++ b/ci/ci-tests.sh @@ -41,8 +41,6 @@ fi # The memchr crate switched to an MSRV of 1.60 starting with v2.6.0 [ "$RUSTC_MINOR_VERSION" -lt 60 ] && cargo update -p memchr --precise "2.5.0" --verbose -[ "$LDK_COVERAGE_BUILD" != "" ] && export RUSTFLAGS="-C link-dead-code" - export RUST_BACKTRACE=1 echo -e "\n\nBuilding and testing all workspace crates..."