---
name: Rust

on:
  push:
    branches:
      - '**'
  pull_request:
    branches:
      - 'rolling'

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        toolchain:
          - stable

    steps:
      - name: Install LuaJIT and Lua
        run: |
          sudo apt-get update
          sudo apt-get install -y --no-install-recommends liblua5.4-dev liblua5.3-dev liblua5.2-dev liblua5.1-0-dev libluajit-5.1-dev
      - uses: actions/checkout@v3
      - run: rustup toolchain install stable --profile minimal
      - uses: Swatinem/rust-cache@v2
        with:
          prefix-key: ''
          shared-key: ''
          key: ''
          env-vars: ''
          workspaces: ''
          cache-directories: ''
          cache-targets: ''
          cache-on-failure: ''
          cache-all-crates: ''
          save-if: ''
      - uses: actions/checkout@v3
      - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
      - name: Build
        run: cargo build --verbose
      - name: Run tests
        run: cargo test --verbose
