diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..3b6eed7 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,87 @@ +name: Rust + +on: + push + +env: + CARGO_TERM_COLOR: always + +jobs: + build-and-test-native: + + strategy: + matrix: + platform: [ubuntu-latest, macos-latest, windows-latest] + + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v2 + - name: Install latest nightly + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + override: true + components: rustfmt, clippy + + # `cargo check` command here will use installed `nightly` + # as it is set as an "override" for current directory + + - name: Run cargo check + uses: actions-rs/cargo@v1 + with: + command: check + + - name: Run cargo test + uses: actions-rs/cargo@v1 + with: + command: test + + - name: Run cargo build + uses: actions-rs/cargo@v1 + with: + command: build + + build-and-test-mac-arm: + runs-on: [macos-latest] + steps: + - uses: actions/checkout@v2 + - name: Install latest nightly + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + override: true + target: aarch64-apple-darwin + components: rustfmt, clippy + + - name: Run cargo test + uses: actions-rs/cargo@v1 + with: + command: test + + - name: Run cargo build + uses: actions-rs/cargo@v1 + with: + command: build + + build-and-test-ios: + runs-on: [macos-latest] + steps: + - uses: actions/checkout@v2 + - name: Install latest nightly + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + override: true + target: aarch64-apple-ios + components: rustfmt, clippy + + - name: Run cargo test + uses: actions-rs/cargo@v1 + with: + command: test + + - name: Run cargo build + uses: actions-rs/cargo@v1 + with: + command: build