# Huge thanks to Alacritty, as their configuration served as a starting point for this one!
# See: https://github.com/alacritty/alacritty

name: CI

on: [push, pull_request]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    strategy:
      matrix:
        os: [windows-latest, macos-latest, ubuntu-latest]

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v2
      - name: Install cargo-make
        run: |
          cargo install --force cargo-make
      - name: Install Linux dependencies
        if: ${{ runner.os == 'Linux' }}
        run: |
          sudo apt install libx11-dev libxtst-dev libxkbcommon-dev libdbus-1-dev libwxgtk3.0-gtk3-dev
      - name: Run test suite
        run: cargo make test-binary
      - name: Build
        run: |
          cargo make build-binary
  
  build-wayland:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install dependencies
        run: |
          sudo apt install libxkbcommon-dev libwxgtk3.0-gtk3-dev libdbus-1-dev
      - name: Install cargo-make
        run: |
          cargo install --force cargo-make
      - name: Run test suite
        run: cargo make test-binary --env NO_X11=true
      - name: Build
        run: cargo make build-binary --env NO_X11=true
  
  build-macos-arm:
    runs-on: macos-11
    steps:
      - uses: actions/checkout@v2
      - name: Install target
        run: rustup update && rustup target add aarch64-apple-darwin
      - name: Install cargo-make
        run: |
          cargo install --force cargo-make
      # - name: Run test suite
      #   run: cargo make test-binary --env BUILD_ARCH=aarch64-apple-darwin
      - name: Build
        run: |
          cargo make build-macos-arm-binary
      # - name: Setup tmate session
      #   uses: mxschmitt/action-tmate@v3
      #   with:
      #     limit-access-to-actor: true

# TODO: add clippy check