lua-src 550.1.0

Sources of Lua 5.1-5.5 and logic to build them.
Documentation
name: CI
on: [push, pull_request]

jobs:
  build:
    name: Build
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        lua: [lua55, lua54, lua53, lua52, lua51]
        target:
        - x86_64-unknown-linux-gnu
        - x86_64-unknown-linux-musl
        - i686-unknown-linux-gnu
        - aarch64-unknown-linux-gnu
        - arm-unknown-linux-gnueabi
        - aarch64-apple-darwin
        - x86_64-pc-windows-gnu
        - x86_64-pc-windows-msvc
        - wasm32-unknown-emscripten
        - wasm32-wasip2
        include:
        - target: x86_64-unknown-linux-gnu
          os: ubuntu-latest
        - target: x86_64-unknown-linux-musl
          os: ubuntu-latest
        - target: i686-unknown-linux-gnu
          os: ubuntu-latest
        - target: aarch64-unknown-linux-gnu
          os: ubuntu-latest
        - target: arm-unknown-linux-gnueabi
          os: ubuntu-latest
        - target: aarch64-apple-darwin
          os: macos-latest
        - target: x86_64-pc-windows-gnu
          os: ubuntu-latest
        - target: x86_64-pc-windows-msvc
          os: windows-latest
        - target: wasm32-unknown-emscripten
          os: ubuntu-latest
        - target: wasm32-wasip2
          os: ubuntu-latest
    steps:
    - uses: actions/checkout@main
    - uses: ./.github/actions/setup-deps
      with:
        target: ${{ matrix.target }}
    - name: Build ${{ matrix.lua }}
      run: |
        cargo build --manifest-path testcrate/Cargo.toml --release --features ${{ matrix.lua }} --target ${{ matrix.target }}
      shell: bash

  test:
    name: Test
    runs-on: ${{ matrix.os }}
    needs: build
    strategy:
      matrix:
        lua: [lua55, lua54, lua53, lua52, lua51]
        target:
        - x86_64-unknown-linux-gnu
        - x86_64-unknown-linux-musl
        - aarch64-apple-darwin
        - x86_64-pc-windows-msvc
        - wasm32-unknown-emscripten
        - wasm32-wasip2
        include:
        - target: x86_64-unknown-linux-gnu
          os: ubuntu-latest
        - target: x86_64-unknown-linux-musl
          os: ubuntu-latest
        - target: aarch64-apple-darwin
          os: macos-latest
        - target: x86_64-pc-windows-msvc
          os: windows-latest
        - target: wasm32-unknown-emscripten
          os: ubuntu-latest
        - target: wasm32-wasip2
          os: ubuntu-latest
    steps:
    - uses: actions/checkout@main
    - uses: ./.github/actions/setup-deps
      with:
        target: ${{ matrix.target }}
    - name: Run ${{ matrix.lua }} tests
      run: |
        cargo test --manifest-path testcrate/Cargo.toml --release --features ${{ matrix.lua }} --target ${{ matrix.target }}
      shell: bash

  test_standalone:
    name: Test Standalone
    runs-on: ${{ matrix.os }}
    needs: build
    strategy:
      matrix:
        include:
        - os: ubuntu-latest
          target: x86_64-unknown-linux-gnu
        - os: macos-latest
          target: aarch64-apple-darwin
        - os: windows-latest
          target: x86_64-pc-windows-msvc
    steps:
    - uses: actions/checkout@main
    - uses: ./.github/actions/setup-deps
      with:
        target: ${{ matrix.target }}
    - name: Run standalone tests
      run: |
        cargo test

  rustfmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@main
    - uses: dtolnay/rust-toolchain@stable
      with:
        components: rustfmt
    - run: cargo fmt -- --check