From 18cf0868cd61d777044d370c9dd84c8fb0fce27b Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Tue, 30 Jan 2024 20:51:02 +0100 Subject: [PATCH 01/16] chore(ci): macos-latest + windows-latest --- .github/workflows/unix_build.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/unix_build.yml b/.github/workflows/unix_build.yml index 845a156..9e85d45 100644 --- a/.github/workflows/unix_build.yml +++ b/.github/workflows/unix_build.yml @@ -18,8 +18,6 @@ on: jobs: test: - runs-on: ${{ matrix.os }} - strategy: fail-fast: false matrix: @@ -29,18 +27,27 @@ jobs: - "5.2" - "5.3" - "5.4" - - "luajit-2.1.0-beta3" + - "luajit" - "luajit-openresty" + include: + - os: "macos-latest" + luaVersion: "5.4" + - os: "windows-latest" + luaVersion: "luajit" + + runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@master - - uses: leafo/gh-actions-lua@v10 + - uses: leafo/gh-actions-lua@master with: luaVersion: ${{ matrix.luaVersion }} - - uses: leafo/gh-actions-luarocks@v4 + - uses: hishamhm/gh-actions-luarocks@master + with: + luarocksVersion: "3.9.2" - name: dependencies run: | From a31d3315a0385a5dd360f1ed4d54657ce5d6845d Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Thu, 29 Feb 2024 10:21:29 +0100 Subject: [PATCH 02/16] chore(ci): bump LuaRocks to 3.10.0 --- .github/workflows/unix_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unix_build.yml b/.github/workflows/unix_build.yml index 9e85d45..894ec9b 100644 --- a/.github/workflows/unix_build.yml +++ b/.github/workflows/unix_build.yml @@ -47,7 +47,7 @@ jobs: - uses: hishamhm/gh-actions-luarocks@master with: - luarocksVersion: "3.9.2" + luarocksVersion: "3.10.0" - name: dependencies run: | From 09924f995b3d5549055c4ca3857140cb8c4cb3e8 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Wed, 6 Mar 2024 23:19:54 -0300 Subject: [PATCH 03/16] chore(ci): bump LuaRocks to 3.11 --- .github/workflows/unix_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unix_build.yml b/.github/workflows/unix_build.yml index 894ec9b..3fbc6aa 100644 --- a/.github/workflows/unix_build.yml +++ b/.github/workflows/unix_build.yml @@ -47,7 +47,7 @@ jobs: - uses: hishamhm/gh-actions-luarocks@master with: - luarocksVersion: "3.10.0" + luarocksVersion: "3.11.0" - name: dependencies run: | From 754a34530f3773e303c8c854a83934ac4ed7fb13 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Wed, 6 Mar 2024 23:29:53 -0300 Subject: [PATCH 04/16] chore(ci): rename unix_build to build --- .github/workflows/{unix_build.yml => build.yml} | 2 +- README.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) rename .github/workflows/{unix_build.yml => build.yml} (98%) diff --git a/.github/workflows/unix_build.yml b/.github/workflows/build.yml similarity index 98% rename from .github/workflows/unix_build.yml rename to .github/workflows/build.yml index 3fbc6aa..fd41f32 100644 --- a/.github/workflows/unix_build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: "Unix build" +name: "Build" concurrency: # for PR's cancel the running task, if another commit is pushed diff --git a/README.md b/README.md index 6f3c9f6..34d7882 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -[![Unix build](https://img.shields.io/github/actions/workflow/status/lunarmodules/luasystem/unix_build.yml?branch=master&label=Unix%20build&logo=linux)](https://github.com/lunarmodules/luasystem/actions/workflows/unix_build.yml) -[![AppVeyor build status](https://img.shields.io/appveyor/build/Tieske/luasystem/master?label=Windows%20build&logo=windows)](https://ci.appveyor.com/project/Tieske/luasystem/branch/master) +[![Build](https://img.shields.io/github/actions/workflow/status/lunarmodules/luasystem/build.yml?branch=master&label=Unix%20build&logo=linux)](https://github.com/lunarmodules/luasystem/actions/workflows/build.yml) [![Lint](https://github.com/lunarmodules/luasystem/workflows/Lint/badge.svg)](https://github.com/lunarmodules/luasystem/actions/workflows/lint.yml) [![SemVer](https://img.shields.io/github/v/tag/lunarmodules/luasystem?color=brightgreen&label=SemVer&logo=semver&sort=semver)](CHANGELOG.md) From bc5162e535d76b96ddd5631cec90abea6ba8198c Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Wed, 6 Mar 2024 23:33:10 -0300 Subject: [PATCH 05/16] chore(ci): disable appveyor --- appveyor.yml | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index f39445b..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,29 +0,0 @@ -# this fails for some reason. Disabled for now. - -shallow_clone: true - -environment: - matrix: - - LUA: "lua 5.1" - - LUA: "lua 5.2" - - LUA: "lua 5.3" - - LUA: "lua 5.4" - - LUA: "luajit 2.0" - - LUA: "luajit 2.0 --compat 5.2" - - LUA: "luajit 2.1" - - LUA: "luajit 2.1 --compat 5.2" - -before_build: - - set PATH=C:\Python27\Scripts;%PATH% - - pip install --upgrade certifi - - FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "import certifi;print(certifi.where())"`) DO ( SET SSL_CERT_FILE=%%F ) - - pip install hererocks - - hererocks here --%LUA% -rlatest - - call here\bin\activate - - luarocks install busted - -build_script: - - luarocks make - -test_script: - - busted --Xoutput "--color" From 00276f5e5db96aba03324cf4d24ab21dd6dc812d Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Thu, 7 Mar 2024 16:11:34 -0300 Subject: [PATCH 06/16] chore(ci): add MSVC build job --- .github/workflows/build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fd41f32..37ab12a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,6 +34,9 @@ jobs: luaVersion: "5.4" - os: "windows-latest" luaVersion: "luajit" + - os: "windows-latest" + toolchain: "msvc" + luaVersion: "5.4" runs-on: ${{ matrix.os }} @@ -41,6 +44,10 @@ jobs: - name: Checkout uses: actions/checkout@master + - name: Setup MSVC + if: ${{ matrix.toolchain == 'msvc' }} + uses: ilammy/msvc-dev-cmd@v1 + - uses: leafo/gh-actions-lua@master with: luaVersion: ${{ matrix.luaVersion }} From 601ee1c2e1005208f0ea87af09febbe8c6afa0d9 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Thu, 7 Mar 2024 16:17:19 -0300 Subject: [PATCH 07/16] debug --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37ab12a..54b74b3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -59,6 +59,9 @@ jobs: - name: dependencies run: | luarocks install busted + luarocks config + luarocks show luafilesystem + lua -e "print(require'lfs')" luarocks make - name: test From ecbecce075ba0ad5de8059271d382f701d7ab31d Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Thu, 7 Mar 2024 16:21:27 -0300 Subject: [PATCH 08/16] tmp --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 54b74b3..297b61b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -61,6 +61,7 @@ jobs: luarocks install busted luarocks config luarocks show luafilesystem + dir C:\Users\runneradmin\AppData\Roaming\luarocks\lib\lua\5.4\lfs.dll lua -e "print(require'lfs')" luarocks make From 912bb158b0d68c35934e92c0ed807cb6c16d8770 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Fri, 8 Mar 2024 12:49:03 +0100 Subject: [PATCH 09/16] try system as well to see if it s the module itself lfs doesn't load, now also try system.core to see if the problem is generic, or per module? --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 297b61b..9c809b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,6 +62,7 @@ jobs: luarocks config luarocks show luafilesystem dir C:\Users\runneradmin\AppData\Roaming\luarocks\lib\lua\5.4\lfs.dll + lua -e "print(require'system.core')" lua -e "print(require'lfs')" luarocks make From 4b8b9494c3d347f4d2c59d34bdcbe5e1ccb7e6c7 Mon Sep 17 00:00:00 2001 From: Thijs Date: Fri, 8 Mar 2024 15:24:28 +0100 Subject: [PATCH 10/16] check exports in dll --- .github/workflows/build.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c809b7..5ce2583 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,6 +48,30 @@ jobs: if: ${{ matrix.toolchain == 'msvc' }} uses: ilammy/msvc-dev-cmd@v1 + - name: install Dependencies analyzer + if: ${{ matrix.toolchain == 'msvc' }} + run: | + $version = "1.11.1" + echo "Installing Dependencies version: $version" + $url = 'https://github.com/lucasg/Dependencies/releases/download/v' + $version + '/Dependencies_x64_Release.zip' + $dest = Join-Path -Path $PWD -ChildPath ".dependencies" + + # Download and extract Dependencies + New-Item -ItemType Directory -Path "$dest" + Invoke-WebRequest -Uri $url -OutFile "$dest\dependencies.zip" + Expand-Archive -Path "$dest\dependencies.zip" -DestinationPath "$dest" + Remove-Item -Path "$dest\dependencies.zip" + # dir "$dest" + + # Add Dependencies to PATH + $env:PATH += ";$dest" + echo $env:PATH + + # Verify Dependencies Installation + dir "$dest\*.exe" + dir ".\.dependencies\Dependencies.exe" + .\.dependencies\Dependencies.exe -help + - uses: leafo/gh-actions-lua@master with: luaVersion: ${{ matrix.luaVersion }} @@ -64,6 +88,7 @@ jobs: dir C:\Users\runneradmin\AppData\Roaming\luarocks\lib\lua\5.4\lfs.dll lua -e "print(require'system.core')" lua -e "print(require'lfs')" + .\.dependencies\Dependencies.exe -json -exports C:\Users\runneradmin\AppData\Roaming\luarocks\lib\lua\5.4\lfs.dll luarocks make - name: test From 51c636a68f62f60b4c0ca03dcf1eb7d221f288d5 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Fri, 8 Mar 2024 17:29:30 -0300 Subject: [PATCH 11/16] chore(ci): use gh-actions-lua fork including various pending PRs from leafo/gh-actions-lua --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5ce2583..106b923 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,7 +72,7 @@ jobs: dir ".\.dependencies\Dependencies.exe" .\.dependencies\Dependencies.exe -help - - uses: leafo/gh-actions-lua@master + - uses: hishamhm/gh-actions-lua@master with: luaVersion: ${{ matrix.luaVersion }} From eb6d195d93adce4f22f6e79c3deba38e2fbbfc16 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Fri, 8 Mar 2024 17:30:01 -0300 Subject: [PATCH 12/16] make dependencies check msvc-only --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 106b923..943a9b8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -85,6 +85,10 @@ jobs: luarocks install busted luarocks config luarocks show luafilesystem + + - name: check dependencies + if: ${{ matrix.toolchain == 'msvc' }} + run: | dir C:\Users\runneradmin\AppData\Roaming\luarocks\lib\lua\5.4\lfs.dll lua -e "print(require'system.core')" lua -e "print(require'lfs')" From 96dd3e87bdea9703ffb022335323642127971baf Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Fri, 15 Mar 2024 15:39:58 +0100 Subject: [PATCH 13/16] add MinGW build for different Lua version to keep the caches not mixed (cache-key doesn't include toolchain) --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 943a9b8..16b9088 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,9 +34,13 @@ jobs: luaVersion: "5.4" - os: "windows-latest" luaVersion: "luajit" + # for Windows we build 1 Lua version on msvc and 1 on mingw - os: "windows-latest" toolchain: "msvc" luaVersion: "5.4" + - os: "windows-latest" + toolchain: "mingw" + luaVersion: "5.3" runs-on: ${{ matrix.os }} From 1b181842c367e5e6726d2d1ce8ff6410d7fcfe8e Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Tue, 19 Mar 2024 10:36:47 +0100 Subject: [PATCH 14/16] cleanup atempt 1 --- .github/workflows/build.yml | 74 ++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 16b9088..20e78c3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,11 @@ on: - master +# On Windows builds: +# 'hishamhm/gh-actions-lua' will build the PuC Rio Lua versions using MSVC, and +# the LuaJIT version using MinGW/gcc. By running against LuaJIT and Lua 5.4 below, +# we test both toolchains. + jobs: test: strategy: @@ -34,13 +39,18 @@ jobs: luaVersion: "5.4" - os: "windows-latest" luaVersion: "luajit" - # for Windows we build 1 Lua version on msvc and 1 on mingw - os: "windows-latest" toolchain: "msvc" - luaVersion: "5.4" + luaVersion: "5.1" + - os: "windows-latest" + toolchain: "msvc" + luaVersion: "5.2" - os: "windows-latest" - toolchain: "mingw" + toolchain: "msvc" luaVersion: "5.3" + - os: "windows-latest" + toolchain: "msvc" + luaVersion: "5.4" runs-on: ${{ matrix.os }} @@ -49,32 +59,34 @@ jobs: uses: actions/checkout@master - name: Setup MSVC + # the 'hishamhm/gh-actions-lua' step requires msvc to build PuC Rio Lua + # versions on Windows (LuaJIT will be build using MinGW/gcc). if: ${{ matrix.toolchain == 'msvc' }} uses: ilammy/msvc-dev-cmd@v1 - - name: install Dependencies analyzer - if: ${{ matrix.toolchain == 'msvc' }} - run: | - $version = "1.11.1" - echo "Installing Dependencies version: $version" - $url = 'https://github.com/lucasg/Dependencies/releases/download/v' + $version + '/Dependencies_x64_Release.zip' - $dest = Join-Path -Path $PWD -ChildPath ".dependencies" - - # Download and extract Dependencies - New-Item -ItemType Directory -Path "$dest" - Invoke-WebRequest -Uri $url -OutFile "$dest\dependencies.zip" - Expand-Archive -Path "$dest\dependencies.zip" -DestinationPath "$dest" - Remove-Item -Path "$dest\dependencies.zip" - # dir "$dest" - - # Add Dependencies to PATH - $env:PATH += ";$dest" - echo $env:PATH - - # Verify Dependencies Installation - dir "$dest\*.exe" - dir ".\.dependencies\Dependencies.exe" - .\.dependencies\Dependencies.exe -help + # - name: install Dependencies analyzer + # # action step used for troubleshooting if dll's build incorrectly + # run: | + # $version = "1.11.1" + # echo "Installing Dependencies version: $version" + # $url = 'https://github.com/lucasg/Dependencies/releases/download/v' + $version + '/Dependencies_x64_Release.zip' + # $dest = Join-Path -Path $PWD -ChildPath ".dependencies" + + # # Download and extract Dependencies + # New-Item -ItemType Directory -Path "$dest" + # Invoke-WebRequest -Uri $url -OutFile "$dest\dependencies.zip" + # Expand-Archive -Path "$dest\dependencies.zip" -DestinationPath "$dest" + # Remove-Item -Path "$dest\dependencies.zip" + # # dir "$dest" + + # # Add Dependencies to PATH + # $env:PATH += ";$dest" + # echo $env:PATH + + # # Verify Dependencies Installation + # dir "$dest\*.exe" + # dir ".\.dependencies\Dependencies.exe" + # .\.dependencies\Dependencies.exe -help - uses: hishamhm/gh-actions-lua@master with: @@ -87,16 +99,10 @@ jobs: - name: dependencies run: | luarocks install busted - luarocks config - luarocks show luafilesystem - - name: check dependencies - if: ${{ matrix.toolchain == 'msvc' }} + - name: install run: | - dir C:\Users\runneradmin\AppData\Roaming\luarocks\lib\lua\5.4\lfs.dll - lua -e "print(require'system.core')" - lua -e "print(require'lfs')" - .\.dependencies\Dependencies.exe -json -exports C:\Users\runneradmin\AppData\Roaming\luarocks\lib\lua\5.4\lfs.dll + luarocks remove --force luasystem luarocks make - name: test From 1908c08c7ef4055178ef0191ce323fb5ec911e49 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Tue, 19 Mar 2024 10:39:12 +0100 Subject: [PATCH 15/16] add mingw lable, unused, but displays in github UI --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 20e78c3..8906286 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,8 +37,6 @@ jobs: include: - os: "macos-latest" luaVersion: "5.4" - - os: "windows-latest" - luaVersion: "luajit" - os: "windows-latest" toolchain: "msvc" luaVersion: "5.1" @@ -51,6 +49,9 @@ jobs: - os: "windows-latest" toolchain: "msvc" luaVersion: "5.4" + - os: "windows-latest" + toolchain: "mingw" + luaVersion: "luajit" runs-on: ${{ matrix.os }} From 2c05ff00e39a4305e85559194cf1c40c49bb711f Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Tue, 19 Mar 2024 10:55:40 +0100 Subject: [PATCH 16/16] cleanup complete --- .github/workflows/build.yml | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8906286..fe8295e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,12 +15,6 @@ on: branches: - master - -# On Windows builds: -# 'hishamhm/gh-actions-lua' will build the PuC Rio Lua versions using MSVC, and -# the LuaJIT version using MinGW/gcc. By running against LuaJIT and Lua 5.4 below, -# we test both toolchains. - jobs: test: strategy: @@ -37,6 +31,10 @@ jobs: include: - os: "macos-latest" luaVersion: "5.4" + # On Windows builds: + # 'hishamhm/gh-actions-lua' will build the PuC Rio Lua versions using MSVC, and + # the LuaJIT version using MinGW/gcc. By running against both below, we test + # both toolchains. - os: "windows-latest" toolchain: "msvc" luaVersion: "5.1" @@ -50,7 +48,7 @@ jobs: toolchain: "msvc" luaVersion: "5.4" - os: "windows-latest" - toolchain: "mingw" + toolchain: "mingw" # unused, other than for display in the UI luaVersion: "luajit" runs-on: ${{ matrix.os }} @@ -66,7 +64,7 @@ jobs: uses: ilammy/msvc-dev-cmd@v1 # - name: install Dependencies analyzer - # # action step used for troubleshooting if dll's build incorrectly + # # action step used for troubleshooting if Windows dll's build incorrectly # run: | # $version = "1.11.1" # echo "Installing Dependencies version: $version" @@ -109,10 +107,3 @@ jobs: - name: test run: | busted --Xoutput "--color" - - # - name: Report test coverage - # if: success() - # continue-on-error: true - # run: luacov-coveralls - # env: - # COVERALLS_REPO_TOKEN: ${{ github.token }}