Skip to content

Pass through std and alloc features to fallible-iterator dependency #44

Pass through std and alloc features to fallible-iterator dependency

Pass through std and alloc features to fallible-iterator dependency #44

Workflow file for this run

on: [push, pull_request]
name: Build and test
jobs:
build-xcompile:
name: Cross-compile
runs-on: ubuntu-latest
strategy:
matrix:
target:
- riscv64gc-unknown-none-elf
- armv7-unknown-linux-gnueabihf
- powerpc64-unknown-linux-gnu
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
override: true
- name: Building
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target=${{ matrix.target }} --no-default-features
tests:
name: Run Tests
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- nightly
profile_flag:
-
- --release
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
override: true
- name: Building
uses: actions-rs/cargo@v1
with:
command: build
args: ${{ matrix.profile_flag }}
- name: Running tests with default features (with std)
uses: actions-rs/cargo@v1
with:
command: test
args: ${{ matrix.profile_flag }} --tests
- name: Running tests on no-std
uses: actions-rs/cargo@v1
with:
command: test
args: ${{ matrix.profile_flag }} --no-default-features --tests
- name: Running doctests
uses: actions-rs/cargo@v1
with:
command: test
args: ${{ matrix.profile_flag }} --features doctest --doc
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Run cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
grcov:
name: Gather coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
profile: minimal
- name: Execute tests
uses: actions-rs/cargo@v1
with:
command: test
args: --all --tests
env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests"
# Note that `actions-rs/grcov` Action can install `grcov` too,
# but can't use faster installation methods yet.
# As a temporary experiment `actions-rs/install` Action plugged in here.
# Consider **NOT** to copy that into your workflow,
# but use `actions-rs/grcov` only
- name: Pre-installing grcov
uses: actions-rs/install@v0.1
with:
crate: grcov
use-tool-cache: true
- name: Gather coverage data
id: coverage
uses: actions-rs/grcov@v0.1
with:
coveralls-token: ${{ secrets.COVERALLS_TOKEN }}
- name: Coveralls upload
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel: true
path-to-lcov: ${{ steps.coverage.outputs.report }}
grcov_finalize:
runs-on: ubuntu-latest
needs: grcov
steps:
- name: Coveralls finalization
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true