name: Build

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  build:
    name: Test ${{ matrix.luaVersion }} on ${{ matrix.platform }}
    strategy:
      fail-fast: false
      matrix:
        luaVersion: [ "5.4", "5.3", "5.2", "5.1", "luajit", "luajit-openresty" ]
        platform: [ "ubuntu-22.04", "macos-11", "windows-2022" ]
    runs-on: ${{ matrix.platform }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup ’msvc’
        if: ${{ startsWith(matrix.platform, 'windows') && !startsWith(matrix.luaVersion, 'luajit') }}
        uses: ilammy/msvc-dev-cmd@v1
      - name: Setup ‘lua’
        uses: leso-kn/gh-actions-lua@v11-staging
        with:
          luaVersion: ${{ matrix.luaVersion }}
      - name: Setup ‘luarocks’
        uses: hishamhm/gh-actions-luarocks@master
      - name: Make and install
        run: |
          luarocks make -- luasocket-scm-3.rockspec
        env:
          DEBUG: DEBUG
      - name: Run regression tests
        shell: bash
        run: |
          cd test
          lua hello.lua
          lua testsrvr.lua > /dev/null &
          lua testclnt.lua
          lua stufftest.lua
          lua excepttest.lua
          lua test_bind.lua
          lua test_getaddrinfo.lua
          lua ltn12test.lua
          lua mimetest.lua
          lua urltest.lua
          lua test_socket_error.lua
          kill %1