chore: change loopdev dependency to loopdev-3 #639
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI - Linux - x86_64 | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - v* | |
| pull_request: | |
| jobs: | |
| build_and_test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| name: [MSRV, stable, nightly] | |
| include: | |
| - name: MSRV | |
| version: 1.82.0 | |
| - name: stable | |
| version: stable | |
| - name: nightly | |
| version: nightly | |
| name: Test ${{ matrix.name }} - x86_64-unknown-linux-gnu | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install Dependencies | |
| run: sudo apt-get update; sudo apt-get install libarchive-dev protobuf-compiler socat; rustup component add llvm-tools-preview | |
| - name: Checkout sources | |
| uses: actions/checkout@v2 | |
| - name: Install ${{ matrix.version }} | |
| uses: actions-rs/toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.version }}-x86_64-unknown-linux-gnu | |
| profile: minimal | |
| override: true | |
| - name: Install grcov tool | |
| if: matrix.name == 'nightly' | |
| uses: actions-rs/install@v0.1 | |
| with: | |
| crate: grcov | |
| use-tool-cache: true | |
| - name: Install cargo bloat tool | |
| if: matrix.name == 'MSRV' && 0 | |
| uses: actions-rs/install@v0.1 | |
| with: | |
| crate: cargo-bloat | |
| use-tool-cache: true | |
| - name: Install cargo tree tool | |
| if: matrix.name == 'MSRV' | |
| uses: actions-rs/install@v0.1 | |
| with: | |
| crate: cargo-tree | |
| use-tool-cache: true | |
| - name: Cache build contents | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ matrix.version }}-x86_64-unknown-linux-gnu-cargo-build-trimmed-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Check build | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: check | |
| args: --locked --release --all --bins --examples --tests --all-features | |
| - name: Tests | |
| uses: actions-rs/cargo@v1 | |
| timeout-minutes: 10 | |
| with: | |
| command: test | |
| args: --locked --release --all --all-features --no-fail-fast -- --nocapture | |
| - name: Run listener test | |
| run: | | |
| export UH_LISTENER_TEST=updatehub-statechange.sock | |
| cargo run --example listener & | |
| while [ ! -S "$UH_LISTENER_TEST" ]; do | |
| sleep 1 | |
| done | |
| if [[ "$(echo "download" | socat - UNIX-CONNECT:updatehub-statechange.sock)" != "cancel" ]]; then | |
| echo "Unexpected download response" | |
| exit 1 | |
| fi | |
| if [[ "$(echo "install" | socat - UNIX-CONNECT:updatehub-statechange.sock)" != "" ]]; then | |
| echo "Unexpected install response" | |
| exit 2 | |
| fi | |
| if [[ "$(echo "error" | socat - UNIX-CONNECT:updatehub-statechange.sock)" != "" ]]; then | |
| echo "Unexpected error response" | |
| exit 3 | |
| fi | |
| if [[ "$(echo "reboot" | socat - UNIX-CONNECT:updatehub-statechange.sock)" != "" ]]; then | |
| echo "Unexpected reboot response" | |
| exit 4 | |
| fi | |
| - name: Run cargo bloat | |
| if: matrix.name == 'MSRV' && 0 | |
| uses: orf/cargo-bloat-action@v1 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| bloat_args: --release --package updatehub | |
| - name: Run cargo test with coverage | |
| if: matrix.name == 'nightly' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --locked --all --all-features --no-fail-fast -- --nocapture | |
| env: | |
| CARGO_INCREMENTAL: '0' | |
| RUSTFLAGS: '-Cinstrument-coverage' | |
| LLVM_PROFILE_FILE: 'target/coverage/%p-%m.profraw' | |
| - name: Generate coverage report | |
| if: matrix.name == 'nightly' | |
| run: | | |
| grcov target/coverage/ --binary-path ./target/debug/ -s . -t lcov --branch --ignore-not-existing --llvm-path "$(rustc --print sysroot)/lib/rustlib/x86_64-unknown-linux-gnu/bin" --ignore "/*" --ignore "tests/*" -o target/coverage/lcov.info | |
| - name: Coveralls upload | |
| if: matrix.name == 'nightly' | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| path-to-lcov: target/coverage/lcov.info | |
| - name: Clear the coverage files from cache | |
| if: matrix.name == 'nightly' | |
| run: | | |
| find target/coverage/ -name "*.profraw" -exec rm {} + | |
| - name: Clear the cargo caches | |
| run: | | |
| cargo +stable install cargo-cache --no-default-features --features ci-autoclean | |
| cargo-cache |