| name: Rust |
| |
| on: |
| push: |
| branches: |
| - trying |
| - staging |
| pull_request: |
| |
| env: |
| RUST_TEST_THREADS: 1 |
| |
| jobs: |
| build_tier_one: |
| runs-on: ${{ matrix.os }}-latest |
| strategy: |
| matrix: |
| os: [ubuntu, macos, windows] |
| channel: [1.49.0, stable, beta, nightly] |
| feature: [arc_lock, serde, deadlock_detection] |
| exclude: |
| - feature: deadlock_detection |
| channel: '1.49.0' |
| include: |
| - channel: nightly |
| feature: nightly |
| os: ubuntu |
| - channel: nightly |
| feature: hardware-lock-elision |
| os: ubuntu |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - run: rustup default ${{ matrix.channel }} |
| - run: cargo build --all |
| - run: cargo test --all |
| - run: cargo build --all --features ${{ matrix.feature }} |
| - run: cargo test --all --features ${{ matrix.feature }} |
| if: matrix.feature == 'nightly' |
| build_other_platforms: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| target: |
| - wasm32-unknown-unknown |
| - x86_64-fortanix-unknown-sgx |
| #- x86_64-unknown-redox |
| #- x86_64-linux-android |
| steps: |
| - uses: actions/checkout@v2 |
| - run: rustup default nightly |
| - run: rustup target add ${{ matrix.target }} |
| - run: cargo build --workspace --target ${{ matrix.target }} --features nightly |
| build_docs: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - run: rustup default nightly |
| - run: cargo doc --workspace --features arc_lock,serde,deadlock_detection --no-deps -p parking_lot -p parking_lot_core -p lock_api |
| benchmark: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - run: rustup default nightly |
| - run: | |
| cd benchmark |
| cargo run --release --bin mutex -- 2 1 0 1 2 |
| cargo run --release --bin rwlock -- 1 1 1 0 1 2 |