stylua 2.4.1

A code formatter for Lua
Documentation
name: Test StyLua
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
jobs:
  test_default:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (default)
        run: cargo test

  test_no_default_features:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (default)
        run: cargo test --no-default-features

  test_luau:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (Luau)
        run: cargo test --features luau

  test_lua52:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (Lua 5.2)
        run: cargo test --features lua52

  test_lua53:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (Lua 5.3)
        run: cargo test --features lua53

  test_lua54:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (Lua 5.4)
        run: cargo test --features lua54

  test_luajit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (LuaJIT)
        run: cargo test --features luajit

  test_cfxlua:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (CfxLua)
        run: cargo test --features cfxlua

  test_all_features:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test (all features)
        run: cargo test --all-features

  test_wasm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Test Build (wasm)
        run: |
          rustup target add wasm32-unknown-unknown
          cargo check --target wasm32-unknown-unknown --features luau,lua52,lua53,lua54,luajit,cfxlua

  test_wasm_build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          target: wasm32-unknown-unknown

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: "24.x"
          registry-url: "https://registry.npmjs.org"

      - name: Test (WASM Build)
        run: |
          chmod u+x ./wasm/build-wasm.sh
          ./wasm/build-wasm.sh --test

  test_docker_build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: docker/setup-buildx-action@v3
        id: buildx
        with:
          install: true

      - uses: docker/metadata-action@v5
        id: meta
        env:
          DOCKER_METADATA_PR_HEAD_SHA: "true"
        with:
          images: johnnymorganz/stylua
          tags: |
            type=sha

      - uses: docker/build-push-action@v5
        with:
          load: true
          context: .
          file: Dockerfile
          builder: ${{ steps.buildx.outputs.name }}
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
          cache-from: type=gha
          cache-to: type=gha

      - name: Test
        run: |
          docker run --rm ${{ steps.meta.outputs.tags }} /stylua --help

  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Clippy
        run: |
          cargo clippy --all-features -- -D warnings
      - name: Rustfmt
        run: |
          cargo fmt -- --check