chore: Release #576
This file contains 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.65.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 | |
- 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/[email protected] | |
with: | |
crate: grcov | |
use-tool-cache: true | |
- name: Install cargo bloat tool | |
if: matrix.name == 'MSRV' && 0 | |
uses: actions-rs/[email protected] | |
with: | |
crate: cargo-bloat | |
use-tool-cache: true | |
- name: Install cargo tree tool | |
if: matrix.name == 'MSRV' | |
uses: actions-rs/[email protected] | |
with: | |
crate: cargo-tree | |
use-tool-cache: true | |
- name: Cache build contents | |
uses: actions/cache@v2 | |
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: '-Zprofile -Zpanic_abort_tests -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort' | |
- id: coverage | |
if: matrix.name == 'nightly' | |
uses: actions-rs/grcov@master | |
- name: Coveralls upload | |
if: matrix.name == 'nightly' | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ${{ steps.coverage.outputs.report }} | |
- name: Clear the coverage files from cache | |
if: matrix.name == 'nightly' | |
run: | | |
find target/ -name "*.gcda" -exec rm {} + | |
- name: Clear the cargo caches | |
run: | | |
cargo +stable install cargo-cache --no-default-features --features ci-autoclean | |
cargo-cache |