Add fifo integration for smol #91
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 | |
| env: | |
| CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| compile-client-on-std-targets: | |
| needs: [msrv-compliance, clippy, no-unused-dependencies, rustfmt, tests, rustdoc,coverage] | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| target: [x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl, aarch64-unknown-linux-musl, aarch64-unknown-linux-gnu, riscv64gc-unknown-linux-gnu, riscv64gc-unknown-linux-musl] | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Cache cargo home | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cargo-home | |
| with: | |
| path: | | |
| ~/.cargo/bin | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| key: ${{ runner.os }}-${{ matrix.target }}-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-${{ matrix.target }}-build-${{ env.cache-name }}- | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - name: Install Toolchain | |
| run: rustup target add ${{ matrix.target }} | |
| - name: Build full client on ${{ matrix.target }} | |
| run: cargo build --target ${{ matrix.target }} | |
| find-msrv: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| version: ${{ steps.step2.outputs.version }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - id: step2 | |
| run: echo "version=`cat ssip-client-async/Cargo.toml | sed -n 's/rust-version = "\(.*\)"/\1/p'`" >> "$GITHUB_OUTPUT" | |
| benchmarks-compile: | |
| runs-on: ubuntu-latest | |
| needs: [clippy,no-unused-dependencies] | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Cache cargo home | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cargo-home | |
| with: | |
| path: | | |
| ~/.cargo/bin | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| key: ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}- | |
| - name: Compile benchmarks | |
| run: cargo bench --no-run | |
| clippy: | |
| runs-on: ubuntu-latest | |
| needs: [rustfmt,no-unused-dependencies] | |
| name: clippy (nightly) | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Cache cargo home | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cargo-home | |
| with: | |
| path: | | |
| ~/.cargo/bin | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| key: ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}- | |
| - name: Install ${{ matrix.toolchain }} | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| components: clippy | |
| toolchain: nightly | |
| - uses: taiki-e/install-action@cargo-hack | |
| - name: Clippy | |
| run: cargo hack --feature-powerset clippy --examples --benches --tests --workspace --no-deps -- -D warnings | |
| tests: | |
| runs-on: ubuntu-latest | |
| needs: [clippy,no-unused-dependencies] | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Cache cargo home | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cargo-home | |
| with: | |
| path: | | |
| ~/.cargo/bin | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| key: ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}- | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - name: Run Tests | |
| run: cargo test --workspace --all-features -- --nocapture | |
| rustfmt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| components: rustfmt | |
| - name: Run formatter | |
| run: cargo fmt --all --check | |
| rustdoc: | |
| runs-on: ubuntu-latest | |
| needs: [clippy,no-unused-dependencies] | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Cache cargo home | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cargo-home | |
| with: | |
| path: | | |
| ~/.cargo/bin | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| key: ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}- | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly | |
| - uses: taiki-e/install-action@cargo-hack | |
| - name: Generate Documentation | |
| run: cargo hack --feature-powerset doc --workspace --no-deps --document-private-items | |
| no-unused-dependencies: | |
| runs-on: ubuntu-latest | |
| needs: [rustfmt] | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Cache cargo home | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cargo-home | |
| with: | |
| path: | | |
| ~/.cargo/bin | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| key: ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}- | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - name: Install Cargo Machete | |
| uses: taiki-e/install-action@cargo-machete | |
| - name: Check For Unused Dependencies | |
| run: cargo machete | |
| semver-compliance: | |
| runs-on: ubuntu-latest | |
| needs: [clippy,no-unused-dependencies] | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Cache cargo home | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cargo-home | |
| with: | |
| path: | | |
| ~/.cargo/bin | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| key: ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}- | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - name: Install Semver Checks | |
| # no default features so that it uses native Rust TLS instead of trying to link with system TLS. | |
| uses: taiki-e/install-action@main | |
| with: | |
| tool: cargo-semver-checks | |
| - name: Check Semver Compliance (ssip) | |
| run: cargo semver-checks check-release -p ssip --all-features | |
| - name: Check Semver Compliance (ssip-client-async) | |
| run: cargo semver-checks check-release -p ssip-client-async --all-features | |
| msrv-compliance: | |
| runs-on: ubuntu-latest | |
| needs: [clippy,no-unused-dependencies,find-msrv] | |
| steps: | |
| - name: install stable toolchain | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ needs.find-msrv.outputs.version }} | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Check MSRV Compliance | |
| run: cargo test --workspace --no-run --all-features | |
| coverage: | |
| runs-on: ubuntu-latest | |
| needs: [clippy,no-unused-dependencies] | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Install nightly | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| components: llvm-tools-preview | |
| - name: cargo install cargo-llvm-cov | |
| uses: taiki-e/install-action@cargo-llvm-cov | |
| - name: cargo generate-lockfile | |
| if: hashFiles('Cargo.lock') == '' | |
| run: cargo generate-lockfile | |
| - name: cargo llvm-cov | |
| run: cargo llvm-cov --all-features --workspace --locked --lcov --output-path lcov.info | |
| - name: Upload to codecov.io | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: true | |
| deny: | |
| runs-on: ubuntu-latest | |
| if: ${{ !github.event.pull_request.draft }} | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v3 | |
| - name: Cache cargo home | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cargo-home | |
| with: | |
| path: | | |
| ~/.cargo/bin | |
| ~/.cargo/registry/index | |
| ~/.cargo/registry/cache | |
| ~/.cargo/git/db | |
| key: ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}- | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - name: Run cargo deny | |
| uses: EmbarkStudios/cargo-deny-action@v2 | |
| with: | |
| # do not check sources; as this will almost always error due to stale windows' dependencies that we don't need. | |
| command: check license advisories bans |