name: CI on: push: branches: [ release ] pull_request: branches: [ dev, release ] jobs: build: strategy: fail-fast: false matrix: lua_ver: [51, 53] numbers: ['float'] include: - lua_ver: 51 numbers: 'integral' - lua_ver: 53 numbers: '64bit' runs-on: ubuntu-20.04 env: LUA: ${{ matrix.lua_ver }} steps: - uses: actions/checkout@v2 with: submodules: true - run: pip install pyserial shell: bash - run: sudo apt install srecord shell: bash - name: Build firmware if: matrix.numbers == 'float' run: make shell: bash - name: Build integral firmware if: ${{ matrix.numbers == 'integral' }} run: | make EXTRA_CCFLAGS="-DLUA_NUMBER_INTEGRAL" mv luac.cross.int luac.cross shell: bash - name: Build 64bit firmware if: ${{ matrix.numbers == '64bit' }} run: | make EXTRA_CCFLAGS="-DLUA_NUMBER_64BITS" shell: bash - name: Upload luac.cross if: ${{ success() }} uses: actions/upload-artifact@v2 with: name: luac.cross_${{ matrix.lua_ver }}_${{ matrix.numbers }} path: luac.cross build_luac_cross_win: runs-on: windows-2019 steps: - uses: actions/checkout@v2 with: submodules: true - name: Build luac.cross.exe run: | set "%programfiles%\git\usr\bin\xargs" cd msvc "%programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" /p:Configuration=Release /p:Platform=x64 mv luac-cross/x64/Release/luac.cross.exe .. shell: cmd - name: Upload luac.cross if: ${{ success() }} uses: actions/upload-artifact@v2 with: name: luac.cross_51_float_win path: luac.cross.exe compile_lua: strategy: fail-fast: false matrix: lua_ver: [51, 53] numbers: ['float'] filter: [ 'cat' ] include: - lua_ver: 51 numbers: 'integral' filter: 'grep -v "lua_modules/lm92/lm92.lua\|lua_modules/hdc1000/HDC1000.lua\|lua_examples/u8g2/graphics_test.lua"' - lua_ver: 53 numbers: '64bit' filter: 'cat' needs: build runs-on: ubuntu-20.04 steps: - name: Checkout repo uses: actions/checkout@v2 with: submodules: false - name: Download luac.cross uses: actions/download-artifact@v1 with: name: luac.cross_${{ matrix.lua_ver }}_${{ matrix.numbers }} path: ./ - name: Fix file permission run: chmod +x luac.cross - name: compile Lua run: | find lua_modules lua_examples tests/NTest* -iname "*.lua" | ${{ matrix.filter }} | xargs --delimiter="\n" echo find lua_modules lua_examples tests/NTest* -iname "*.lua" | ${{ matrix.filter }} | xargs --delimiter="\n" ./luac.cross -p shell: bash compile_lua_win: strategy: fail-fast: false matrix: lua_ver: [51] numbers: ['float'] filter: [ 'cat' ] needs: build_luac_cross_win runs-on: windows-latest steps: - name: Checkout repo uses: actions/checkout@v2 with: submodules: false - name: Download luac.cross uses: actions/download-artifact@v1 with: name: luac.cross_${{ matrix.lua_ver }}_${{ matrix.numbers }}_win path: ./ - name: compile Lua run: | PATH="/C/Program\ Files/Git/usr/bin:${PATH}" find lua_modules lua_examples tests/NTest* -iname "*.lua" | ${{ matrix.filter }} | xargs --delimiter="\n" echo find lua_modules lua_examples tests/NTest* -iname "*.lua" | ${{ matrix.filter }} | xargs --delimiter="\n" ./luac.cross -p shell: bash NTest: strategy: fail-fast: false matrix: lua_ver: [51, 53] numbers: ['float'] include: - lua_ver: 51 numbers: 'integral' - lua_ver: 53 numbers: '64bit' needs: build runs-on: ubuntu-20.04 steps: - name: Checkout repo uses: actions/checkout@v2 with: submodules: false - name: Download luac.cross uses: actions/download-artifact@v1 with: name: luac.cross_${{ matrix.lua_ver }}_${{ matrix.numbers }} path: ./ - name: Fix file permission run: chmod +x luac.cross - name: NTest selfcheck run: | cd tests/NTest ../../luac.cross -e ../NTest/NTest_NTest.lua | tee log grep "failed. 0" log shell: bash - name: NTest hosttests run: | cd tests cp NTest/NTest.lua . ../luac.cross -e NTest_lua.lua | tee log (if grep " ==> " log ; then exit 1 ; fi) shell: bash NTest_win: strategy: fail-fast: false matrix: lua_ver: [51] numbers: ['float'] needs: build_luac_cross_win runs-on: windows-latest steps: - name: Checkout repo uses: actions/checkout@v2 with: submodules: false - name: Download luac.cross uses: actions/download-artifact@v1 with: name: luac.cross_${{ matrix.lua_ver }}_${{ matrix.numbers }}_win path: ./ - name: NTest selfcheck run: | cd tests/NTest ../../luac.cross.exe -e ../NTest/NTest_NTest.lua | tee log grep "failed. 0" log shell: bash - name: NTest hosttests run: | cd tests cp NTest/NTest.lua . ../luac.cross.exe -e NTest_lua.lua | tee log (if grep " ==> " log ; then exit 1 ; fi) shell: bash luacheck: strategy: fail-fast: false matrix: include: - os: 'linux' vm: 'ubuntu-20.04' - os: 'windows' vm: 'windows-latest' runs-on: ${{ matrix.vm }} steps: - uses: actions/checkout@v2 with: submodules: false - run: sudo apt install luarocks if : matrix.os == 'linux' shell: bash - name: get luacheck.exe # is also done in the travis script but in this action it does not run in bash if : matrix.os == 'windows' run: | mkdir cache C:msys64\usr\bin\wget.exe --tries=5 --timeout=10 --waitretry=10 --read-timeout=10 --retry-connrefused -O cache/luacheck.exe https://github.com/mpeterv/luacheck/releases/download/0.23.0/luacheck.exe shell: cmd - name: luacheck run: | PATH="/C/Program\ Files/Git/usr/bin:${PATH}" ./tools/travis/run-luacheck-${{ matrix.os }}.sh shell: bash doc_check: strategy: fail-fast: false runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: submodules: false - name: all_modules_linked run: ./tools/check_docs_module_linkage.sh shell: bash