Skip to content

Merge pull request #212 from magic-wormhole/fix-clippy #521

Merge pull request #212 from magic-wormhole/fix-clippy

Merge pull request #212 from magic-wormhole/fix-clippy #521

Workflow file for this run

name: Rust
on:
push:
branches: [master, dev, dilation-1]
pull_request:
branches: [master, dev]
jobs:
format:
name: cargo fmt (nightly)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
components: rustfmt
profile: minimal
- name: Format
run: cargo fmt -- --check
clippy:
name: clippy (stable)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Cache ~/.cargo
uses: actions/cache@v1
with:
path: ~/.cargo
key: ${{ runner.os }}-clippy-dotcargo
- name: Cache cargo build
uses: actions/cache@v1
with:
path: target
key: ${{ runner.os }}-clippy-cargo-build-target
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
override: true
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features
name: clippy results
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
rust:
- 1.75 # MSRV (also change in Cargo.toml)
- stable
- nightly
steps:
- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
target: wasm32-unknown-unknown
- name: Cache ~/.cargo
uses: actions/cache@v1
with:
path: ~/.cargo
key: ${{ runner.os }}-test-dotcargo-${{ matrix.rust }}
- name: Cache cargo build
uses: actions/cache@v1
with:
path: target
key: ${{ runner.os }}-test-build-target-${{ matrix.rust }}
- name: build library (no default features)
uses: actions-rs/cargo@v1
with:
command: build
args: -p magic-wormhole --no-default-features
- name: build library (features=transit)
uses: actions-rs/cargo@v1
with:
command: build
args: -p magic-wormhole --no-default-features --features=transit
- name: build library (features=transfer)
uses: actions-rs/cargo@v1
with:
command: build
args: -p magic-wormhole --no-default-features --features=transfer
- name: build library (features=forwarding)
uses: actions-rs/cargo@v1
with:
command: build
args: -p magic-wormhole --no-default-features --features=forwarding
- name: build library (features=dilation)
uses: actions-rs/cargo@v1
with:
command: build
args: -p magic-wormhole --no-default-features --features=dilation
- name: build CLI
uses: actions-rs/cargo@v1
with:
command: build
args: --all-targets
- name: build WASM
uses: actions-rs/cargo@v1
with:
command: build
args: --target wasm32-unknown-unknown --no-default-features --package magic-wormhole --features transit --features transfer
- name: test
uses: actions-rs/cargo@v1
with:
command: test
args: --verbose --all
dist:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Cache ~/.cargo
uses: actions/cache@v1
with:
path: ~/.cargo
key: ${{ runner.os }}-test-dotcargo-stable
- name: Cache cargo build
uses: actions/cache@v1
with:
path: target
key: ${{ runner.os }}-test-build-target-stable
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --bins --locked --release
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: wormhole-${{ matrix.os }}-${{ github.sha }}
path: |
./target/release/wormhole-rs
./target/release/wormhole-rs.exe
if-no-files-found: error
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- uses: actions-rs/[email protected]
with:
crate: cargo-tarpaulin
version: latest
- name: Cache ~/.cargo
uses: actions/cache@v1
with:
path: ~/.cargo
key: ${{ runner.os }}-coverage-dotcargo
- name: Cache cargo build
uses: actions/cache@v1
with:
path: target
key: ${{ runner.os }}-coverage-cargo-build-target
- name: Run tarpaulin
uses: actions-rs/cargo@v1
with:
command: tarpaulin
args: --workspace --out Xml
- name: upload coverage
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
cargo-deny:
name: Cargo deny
runs-on: ubuntu-latest
steps:
- name: Checkout Rust toolcnain
uses: actions/checkout@v2
with:
toolchain: stable
override: true
- uses: EmbarkStudios/cargo-deny-action@v1