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-14", "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: luarocks/gh-actions-lua@v10 with: luaVersion: ${{ matrix.luaVersion }} - name: Setup ‘luarocks’ uses: luarocks/gh-actions-luarocks@v5 - 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 build-msys2: name: Test ${{ matrix.Lua.version }} via MSYS2 package mingw-w64-${{ matrix.MSYS2.env }}-${{ matrix.Lua.msys2_pkg_name }} runs-on: windows-2022 strategy: matrix: Lua: # For future updates: # the fields 'msys2_pkg_name' and 'msys2_lua_exe' # in the matrix below are always 'lua' # for the current Lua version . - { version: '5.4', msys2_pkg_name: 'lua', msys2_lua_exe: 'lua' } - { version: '5.3', msys2_pkg_name: 'lua53', msys2_lua_exe: 'lua5.3' } # At the moment, Lua 5.2 is not on MSYS2 repositories. - { version: '5.1', msys2_pkg_name: 'lua51', msys2_lua_exe: 'lua5.1' } - { version: '5.1', msys2_pkg_name: 'luajit', msys2_lua_exe: 'luajit' } MSYS2: - { sys: ucrt64, env: ucrt-x86_64 } - { sys: mingw64, env: x86_64 } - { sys: mingw32, env: i686 } - { sys: clang64, env: clang-x86_64 } - { sys: clang32, env: clang-i686 } defaults: run: shell: msys2 {0} env: LUA_EXE: /${{ matrix.MSYS2.sys }}/bin/${{ matrix.Lua.msys2_lua_exe }} steps: - uses: msys2/setup-msys2@v2 name: Setup MSYS2 with: msystem: ${{ matrix.MSYS2.sys }} install: | base-devel git mingw-w64-${{ matrix.MSYS2.env }}-cc mingw-w64-${{ matrix.MSYS2.env }}-${{ matrix.Lua.msys2_pkg_name }} - name: Checkout uses: actions/checkout@v4 - name: Build if: ${{ !contains(matrix.Lua.msys2_pkg_name, 'luajit') }} run: | make -C src \ PLAT=msys2${{ matrix.MSYS2.sys }} \ LUAV=${{ matrix.Lua.version }} \ DEBUG=DEBUG \ all - name: Build with luajit if: ${{ contains(matrix.Lua.msys2_pkg_name, 'luajit') }} run: | make -C src \ PLAT=msys2${{ matrix.MSYS2.sys }} \ LUAV=${{ matrix.Lua.version }} \ DEBUG=DEBUG \ "MYCFLAGS=$(pkgconf.exe --cflags lua${{ matrix.Lua.version }})" \ all - name: Install run: | make -C src \ PLAT=msys2${{ matrix.MSYS2.sys }} \ LUAV=${{ matrix.Lua.version }} \ DEBUG=DEBUG \ install - name: Run regression tests run: | cd test ${{ env.LUA_EXE }} hello.lua ${{ env.LUA_EXE }} testsrvr.lua > /dev/null & ${{ env.LUA_EXE }} testclnt.lua ${{ env.LUA_EXE }} stufftest.lua ${{ env.LUA_EXE }} excepttest.lua ${{ env.LUA_EXE }} test_bind.lua ${{ env.LUA_EXE }} test_getaddrinfo.lua ${{ env.LUA_EXE }} ltn12test.lua ${{ env.LUA_EXE }} mimetest.lua ${{ env.LUA_EXE }} urltest.lua ${{ env.LUA_EXE }} test_socket_error.lua kill %1