1name: Continuous Integration 2 3on: 4 pull_request: 5 paths: 6 - "**.rs" 7 - "Cargo.toml" 8 - "Cargo.lock" 9 10jobs: 11 fmt: 12 name: Source formatting check 13 runs-on: ubuntu-latest 14 steps: 15 - name: Checkout sources 16 uses: actions/checkout@v2 17 18 - name: Install Rust toolchain 19 uses: actions-rs/toolchain@v1 20 with: 21 profile: minimal 22 toolchain: nightly 23 override: true 24 components: rustfmt 25 26 - name: Check formatting 27 uses: actions-rs/cargo@v1 28 with: 29 command: fmt 30 args: -- --check 31 32 check: 33 name: Compilation check 34 runs-on: ubuntu-latest 35 strategy: 36 fail-fast: true 37 matrix: 38 rust: 39 - stable 40 - beta 41 - nightly 42 - 1.41.0 43 steps: 44 - name: Checkout sources 45 uses: actions/checkout@v2 46 47 - name: Install Rust toolchain 48 uses: actions-rs/toolchain@v1 49 with: 50 profile: minimal 51 toolchain: ${{ matrix.rust }} 52 override: true 53 54 - name: Run cargo check 55 uses: actions-rs/cargo@v1 56 with: 57 command: check 58 59 clippy: 60 name: Lint check 61 runs-on: ubuntu-latest 62 steps: 63 - name: Checkout sources 64 uses: actions/checkout@v2 65 66 - name: Install Rust toolchain 67 uses: actions-rs/toolchain@v1 68 with: 69 profile: minimal 70 toolchain: stable 71 override: true 72 components: clippy 73 74 - name: Run lints 75 uses: actions-rs/cargo@v1 76 with: 77 command: clippy 78 args: -- -D warnings 79 80 ci-crate: 81 name: CI crate check 82 runs-on: ubuntu-latest 83 steps: 84 - name: Checkout sources 85 uses: actions/checkout@v2 86 87 - name: Install Rust toolchain 88 uses: actions-rs/toolchain@v1 89 with: 90 profile: minimal 91 92 - name: Run ci crate 93 uses: actions-rs/cargo@v1 94 with: 95 command: run 96 args: -p ci 97 98 crate-example: 99 name: Crate example check 100 runs-on: ubuntu-latest 101 steps: 102 - name: Checkout sources 103 uses: actions/checkout@v2 104 105 - name: Install Rust toolchain 106 uses: actions-rs/toolchain@v1 107 with: 108 profile: minimal 109 110 - name: Run crate example 111 uses: actions-rs/cargo@v1 112 with: 113 command: run 114 args: --example default 115