simrs 0.2.0

General purpose descrete event simulation library.
Documentation
name: CI
on:
    pull_request:
    push:
        branches:
            - main

env:
  RUST_LOG: info
  RUST_BACKTRACE: 1

jobs:
    test-versions:
        name: Test Rust ${{ matrix.rust }}
        runs-on: ubuntu-latest
        strategy:
            fail-fast: false
            matrix:
              rust: [stable, beta, nightly]
        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1
              with:
                  rust-version: ${{ matrix.rust }}
            - run: cargo test --verbose --workspace
            - run: cargo run --example simulation
    cargo-check:
        name: Check for warnings
        runs-on: ubuntu-latest
        env:
            RUSTFLAGS: -Dwarnings
        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1
            - run: cargo check --workspace --all-targets --verbose
    clippy:
        name: Lint with Clippy
        runs-on: ubuntu-latest
        env:
            RUSTFLAGS: -Dwarnings
        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1
              with:
                components: clippy
            - run: cargo clippy --workspace --all-targets --verbose
    rustfmt:
        name: Verify code formatting
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - uses: hecrj/setup-rust-action@v1
            with:
              components: rustfmt
          - run: cargo fmt --all -- --check
    check-rustdoc-links:
        name: Check intra-doc links
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1
              with:
                  rust-version: nightly
            - run: cargo rustdoc -- -D warnings
    code-coverage:
        name: Run code coverage
        runs-on: ubuntu-latest
        env:
            RUSTFLAGS: -Zinstrument-coverage
            LLVM_PROFILE_FILE: coverage-%p-%m.profraw
        steps:
            - uses: actions/checkout@v2
            - uses: hecrj/setup-rust-action@v1
              with:
                  rust-version: nightly
            - run: rustup component add llvm-tools-preview
            - run: echo "PATH=/home/runner/.cargo/bin:$PATH" >> $GITHUB_ENV
            - run: curl -L https://github.com/mozilla/grcov/releases/download/v0.8.10/grcov-x86_64-unknown-linux-gnu.tar.bz2 | tar jxf -
            - run: cargo test --verbose --workspace
            - run: cargo run --example simulation
            - run: mkdir ./coverage
            - run: ./grcov . --binary-path ./target/debug/ -s . -t lcov --branch --ignore-not-existing --ignore "*cargo*" --ignore "*example*" -o ./coverage/lcov.info
            - name: Coveralls
              uses: coverallsapp/github-action@master
              with:
                github-token: ${{ secrets.GITHUB_TOKEN }}