name: Build and Test Nova

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install
      run: rustup default stable
    - name: Install rustfmt Components
      run: rustup component add rustfmt
    - name: Install clippy
      run: rustup component add clippy
    - name: Install Wasm target
      run: rustup target add wasm32-unknown-unknown
    - name: Build
      run: cargo build --verbose
    - name: Wasm build
      run: cargo build --target wasm32-unknown-unknown
    - name: Build examples
      run: cargo build --examples --verbose
    - name: Run tests
      run: cargo +stable test --release --verbose
    - name: Check Rustfmt Code Style
      run: cargo fmt --all -- --check
    - name: Check clippy warnings
      run: cargo clippy --all-targets --all-features -- -D warnings