Add GitHub Actions (#3337)
Will build in parallel and covers more environments than the Travis build.
This commit is contained in:
parent
b1d318de62
commit
0fb2a121c1
|
@ -0,0 +1,242 @@
|
|||
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-16.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-latest
|
||||
|
||||
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-16.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-16.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
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
luacheck:
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: 'linux'
|
||||
vm: 'ubuntu-16.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
|
||||
|
Loading…
Reference in New Issue