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