on: push: branches: [master] pull_request: branches: ["*"] name: build jobs: test_macos: name: Run Tests on macOS runs-on: macos-latest steps: - uses: actions/checkout@v1 - name: Cache cargo registry uses: actions/cache@v3 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index uses: actions/cache@v3 with: path: ~/.cargo/git key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build uses: actions/cache@v3 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - name: Setup toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable components: clippy override: true - name: check run: cargo check - name: clippy run: cargo clippy - name: test run: cargo test - name: build run: cargo build --release test_ubuntu: name: Run Tests on Ubuntu (x86_64) runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Cache cargo registry uses: actions/cache@v3 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index uses: actions/cache@v3 with: path: ~/.cargo/git key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build uses: actions/cache@v3 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - name: check run: cargo check - name: clippy run: cargo clippy - name: test run: cargo test - name: build run: cargo build --release