Skip to content

Commit

Permalink
Test CI
Browse files Browse the repository at this point in the history
  • Loading branch information
YuanYuYuan committed Apr 19, 2024
1 parent c06979a commit 8521273
Showing 1 changed file with 17 additions and 87 deletions.
104 changes: 17 additions & 87 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,102 +26,32 @@ env:
CARGO_PROFILE_DEV_DEBUG: false

jobs:
check:
name: Run checks on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
tests:
name: Tests
needs: checks
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]

image: [ "ubuntu:22.04" ]
container: ${{ matrix.image }}
steps:
- name: Clone this repository
uses: actions/checkout@v4
- name: Update and install packages
run: apt-get update && apt-get install -y curl git build-essential pkg-config libssl-dev

- name: Install Rust toolchain
run: |
rustup show
rustup component add rustfmt clippy
- name: Code format check
run: cargo fmt --check

- name: Clippy
run: cargo +stable clippy --all-targets -- --deny warnings

- name: Clippy unstable targets
run: cargo +stable clippy --all-targets --features unstable -- --deny warnings

- name: Clippy all features
if: ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'macOS-latest' }}
run: cargo +stable clippy --all-targets --all-features -- --deny warnings

- name: Install generic no_std target
# Generic no_std target architecture is x86_64-unknown-none
run: rustup target add x86_64-unknown-none

- name: Perform no_std checks
run: cargo check --bin nostd_check --target x86_64-unknown-none --manifest-path ci/nostd-check/Cargo.toml

test:
name: Run tests on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
steps:
- name: Clone this repository
uses: actions/checkout@v4

- name: Install latest Rust toolchain
run: rustup show

- name: Set rustflags
shell: bash
run: |
case ${{ matrix.os }} in
*windows*) echo "RUSTFLAGS=-Clink-arg=/DEBUG:NONE" >> $GITHUB_ENV ;;
esac
- name: Install latest nextest
uses: taiki-e/install-action@nextest
- name: Install nextest
run: cargo +stable install --locked cargo-nextest
env:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse

- name: Run tests
run: cargo nextest run --exclude zenoh-examples --exclude zenoh-plugin-example --workspace

- name: Run tests with SHM
if: ${{ matrix.os == 'ubuntu-latest' }}
run: cargo nextest run -F shared-memory -F transport_unixpipe -p zenoh-transport

- name: Check for feature leaks
if: ${{ matrix.os == 'ubuntu-latest' }}
run: cargo nextest run -p zenohd --no-default-features

- name: Run doctests
run: cargo test --doc

- name: Install valgrind
if: ${{ matrix.os == 'ubuntu-latest' }}
run: sudo apt-get install -y valgrind
shell: bash

- name: Run memory leaks check
if: ${{ matrix.os == 'ubuntu-latest' }}
run: ci/valgrind-check/run.sh
shell: bash

# NOTE: In GitHub repository settings, the "Require status checks to pass
# before merging" branch protection rule ensures that commits are only merged
# from branches where specific status checks have passed. These checks are
# specified manually as a list of workflow job names. Thus we use this extra
# job to signal whether all CI checks have passed.
ci:
name: CI status checks
runs-on: ubuntu-latest
needs: [check, test]
if: always()
steps:
- name: Check whether all jobs pass
run: echo '${{ toJson(needs) }}' | jq -e 'all(.result == "success")'
run: cargo nextest run --release --features=${{ inputs.features }} --verbose
env:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse

0 comments on commit 8521273

Please sign in to comment.