From 7fcb90cc5472f210dbe95efd01ff09d389b8e091 Mon Sep 17 00:00:00 2001 From: MacOMNI <414294494@qq.com> Date: Wed, 13 Nov 2024 16:22:25 +0800 Subject: [PATCH] update coverage (#223) * update coverage * update yml * update yml * update coverage.lcov * update coverage * update coverage --- .github/workflows/coverage.yml | 156 ++++++++++++++++++--------------- 1 file changed, 86 insertions(+), 70 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index bf062c3a..4b940d4e 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -1,77 +1,93 @@ name: Coverage on: - push: - branches: ["master"] - pull_request: - branches: ["master"] + push: + branches: ["master"] + pull_request: + branches: ["master"] concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: - coverage: - name: Code Coverage - runs-on: [self-hosted, linux] - timeout-minutes: 30 - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: recursive - - run: sudo apt-get update - - uses: awalsh128/cache-apt-pkgs-action@latest - with: - packages: librocksdb-dev libzstd-dev libbz2-dev liblz4-dev - # - name: Cache SPM - # uses: actions/cache@v4 - # with: - # path: '**/.build' - # key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} - # restore-keys: | - # ${{ runner.os }}-spm- - - name: Cache Cargo - uses: actions/cache@v4 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Cache bandersnatch_vrfs static lib - uses: actions/cache@v4 - with: - path: .lib/libbandersnatch_vrfs.a - key: ${{ runner.os }}-libs-libbandersnatch-${{ hashFiles('Utils/Sources/bandersnatch/**') }} - restore-keys: | - ${{ runner.os }}-libs-libbandersnatch - - name: Cache bls static lib - uses: actions/cache@v4 - with: - path: .lib/libbls.a - key: ${{ runner.os }}-libs-libbls-${{ hashFiles('Utils/Sources/bls/**') }} - restore-keys: | - ${{ runner.os }}-libs-libbls - - name: Cache erasure-coding static lib - uses: actions/cache@v4 - with: - path: .lib/libec.a - key: ${{ runner.os }}-libs-libec-${{ hashFiles('Utils/Sources/erasure-coding/**') }} - restore-keys: | - ${{ runner.os }}-libs-libec - - name: Setup Swift - uses: SwiftyLab/setup-swift@latest - - name: Setup Rust - uses: dtolnay/rust-toolchain@nightly - - name: Build deps - run: make deps - - name: Test Coverage - run: make test-coverage - - uses: codecov/codecov-action@v4 - with: - fail_ci_if_error: true # optional (default = false) - token: ${{ secrets.CODECOV_TOKEN }} # required - verbose: true # optional (default = false) + coverage: + name: Code Coverage + runs-on: [self-hosted, linux] + timeout-minutes: 30 + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + submodules: recursive + - run: sudo apt-get update + - uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: librocksdb-dev libzstd-dev libbz2-dev liblz4-dev llvm + # - name: Cache SPM + # uses: actions/cache@v4 + # with: + # path: '**/.build' + # key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} + # restore-keys: | + # ${{ runner.os }}-spm- + - name: Cache Cargo + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Cache bandersnatch_vrfs static lib + uses: actions/cache@v4 + with: + path: .lib/libbandersnatch_vrfs.a + key: ${{ runner.os }}-libs-libbandersnatch-${{ hashFiles('Utils/Sources/bandersnatch/**') }} + restore-keys: | + ${{ runner.os }}-libs-libbandersnatch + - name: Cache bls static lib + uses: actions/cache@v4 + with: + path: .lib/libbls.a + key: ${{ runner.os }}-libs-libbls-${{ hashFiles('Utils/Sources/bls/**') }} + restore-keys: | + ${{ runner.os }}-libs-libbls + - name: Cache erasure-coding static lib + uses: actions/cache@v4 + with: + path: .lib/libec.a + key: ${{ runner.os }}-libs-libec-${{ hashFiles('Utils/Sources/erasure-coding/**') }} + restore-keys: | + ${{ runner.os }}-libs-libec + - name: Setup Swift + uses: SwiftyLab/setup-swift@latest + - name: Setup Rust + uses: dtolnay/rust-toolchain@nightly + - name: Build deps + run: make deps + - name: Test Coverage + run: make test-coverage + - name: Merge and generate coverage report + run: | + llvm-profdata merge -sparse $(find . -type f -path '*/.build/*/debug/codecov/*.profdata') -o default.profdata + for file in **/Tests; do + BIN_PATH="$(swift build --show-bin-path --package-path "$(dirname "$file")")" + XCTEST_PATHS=$(find "${BIN_PATH}" -name '*.xctest') + for XCTEST_PATH in $XCTEST_PATHS; do + echo "Processing $XCTEST_PATH" + # Export the code coverage for the current subproject and append to coverage.lcov + llvm-cov export "${XCTEST_PATH}" \ + -instr-profile=default.profdata \ + -format lcov >> coverage.lcov \ + -ignore-filename-regex=".build/repositories/*" + done + done + - uses: codecov/codecov-action@v4 + with: + file: coverage.lcov + fail_ci_if_error: true # optional (default = false) + token: ${{ secrets.CODECOV_TOKEN }} # required + verbose: true # optional (default = false)