name: Build Code on: push: branches: - '*' - '!staging.tmp' tags: - '*' schedule: - cron: '40 3 * * *' # every day at 3:40 pull_request: workflow_dispatch: jobs: check: name: Check strategy: matrix: platform: [ ubuntu-latest, macos-latest, windows-latest ] runs-on: ${{ matrix.platform }} steps: - name: Checkout Repository uses: actions/checkout@v2 - name: Install Rust Toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly - name: Install `rust-src` Rustup Component run: rustup component add rust-src - name: Run `cargo check` uses: actions-rs/cargo@v1 with: command: check test: name: Test strategy: matrix: platform: [ ubuntu-latest, macos-latest, windows-latest ] runs-on: ${{ matrix.platform }} steps: - name: Install Rust Toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly - name: Checkout Repository uses: actions/checkout@v2 - name: Add thumbv7em-none-eabihf Target run: rustup target add thumbv7em-none-eabihf - name: Build for thumbv7em-none-eabihf run: cargo build --target thumbv7em-none-eabihf - name: Build for Linux if: runner.os == 'Linux' run: cargo rustc -- -C link-arg=-nostartfiles - name: Build for macOS if: runner.os == 'macOS' run: cargo rustc -- -C link-args="-e __start -static -nostartfiles" - name: Build for Windows if: runner.os == 'Windows' run: cargo rustc -- -C link-args="/ENTRY:_start /SUBSYSTEM:console" check_formatting: name: Check Formatting runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v2 - name: Install Rust Toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly components: rustfmt override: true - name: Run `cargo fmt` uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: Clippy runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v2 - name: Install Rust Toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly components: clippy, rust-src override: true - name: Run `cargo clippy` uses: actions-rs/cargo@v1 with: command: clippy