mirror of
https://github.com/luau-lang/luau.git
synced 2024-12-13 05:20:38 +00:00
974963a870
GitHub just released support for M1 runners for open source projects via GHA. It can be selected by using macos-14 OS to run on. This is very valuable because until now, Luau wasn't tested in OSS CI on Arm64, despite the presence of a fairly large volume of AArch64 specific code courtesy of A64 codegen. This change fixes that. In the future we could also expand codecov reporting as it seems to work well but it needs a little bit of cleanup for the build in question so let's start small.
118 lines
3.6 KiB
YAML
118 lines
3.6 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'master'
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- 'papers/**'
|
|
- 'rfcs/**'
|
|
- '*.md'
|
|
pull_request:
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- 'papers/**'
|
|
- 'rfcs/**'
|
|
- '*.md'
|
|
|
|
jobs:
|
|
unix:
|
|
strategy:
|
|
matrix:
|
|
os: [{name: ubuntu, version: ubuntu-latest}, {name: macos, version: macos-latest}, {name: macos-arm, version: macos-14}]
|
|
name: ${{matrix.os.name}}
|
|
runs-on: ${{matrix.os.version}}
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: make tests
|
|
run: |
|
|
make -j2 config=sanitize werror=1 native=1 luau-tests
|
|
- name: run tests
|
|
run: |
|
|
./luau-tests
|
|
./luau-tests --fflags=true
|
|
- name: run extra conformance tests
|
|
run: |
|
|
./luau-tests -ts=Conformance -O2
|
|
./luau-tests -ts=Conformance -O2 --fflags=true
|
|
./luau-tests -ts=Conformance --codegen
|
|
./luau-tests -ts=Conformance --codegen --fflags=true
|
|
./luau-tests -ts=Conformance --codegen -O2
|
|
./luau-tests -ts=Conformance --codegen -O2 --fflags=true
|
|
- name: make cli
|
|
run: |
|
|
make -j2 config=sanitize werror=1 luau luau-analyze luau-compile # match config with tests to improve build time
|
|
./luau tests/conformance/assert.lua
|
|
./luau-analyze tests/conformance/assert.lua
|
|
./luau-compile tests/conformance/assert.lua
|
|
|
|
windows:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
matrix:
|
|
arch: [Win32, x64]
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: cmake configure
|
|
run: cmake . -A ${{matrix.arch}} -DLUAU_WERROR=ON -DLUAU_NATIVE=ON
|
|
- name: cmake build
|
|
run: cmake --build . --target Luau.UnitTest Luau.Conformance --config Debug
|
|
- name: run tests
|
|
shell: bash # necessary for fail-fast
|
|
run: |
|
|
Debug/Luau.UnitTest.exe
|
|
Debug/Luau.Conformance.exe
|
|
Debug/Luau.UnitTest.exe --fflags=true
|
|
Debug/Luau.Conformance.exe --fflags=true
|
|
- name: run extra conformance tests
|
|
shell: bash # necessary for fail-fast
|
|
run: |
|
|
Debug/Luau.Conformance.exe -O2
|
|
Debug/Luau.Conformance.exe -O2 --fflags=true
|
|
Debug/Luau.Conformance.exe --codegen
|
|
Debug/Luau.Conformance.exe --codegen --fflags=true
|
|
Debug/Luau.Conformance.exe --codegen -O2
|
|
Debug/Luau.Conformance.exe --codegen -O2 --fflags=true
|
|
- name: cmake cli
|
|
shell: bash # necessary for fail-fast
|
|
run: |
|
|
cmake --build . --target Luau.Repl.CLI Luau.Analyze.CLI Luau.Compile.CLI --config Debug # match config with tests to improve build time
|
|
Debug/luau tests/conformance/assert.lua
|
|
Debug/luau-analyze tests/conformance/assert.lua
|
|
Debug/luau-compile tests/conformance/assert.lua
|
|
|
|
coverage:
|
|
runs-on: ubuntu-20.04 # needed for clang++-10 to avoid gcov compatibility issues
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: install
|
|
run: |
|
|
sudo apt install llvm
|
|
- name: make coverage
|
|
run: |
|
|
CXX=clang++-10 make -j2 config=coverage native=1 coverage
|
|
- name: upload coverage
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
files: ./coverage.info
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
web:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: emscripten-core/emsdk
|
|
path: emsdk
|
|
- name: emsdk install
|
|
run: |
|
|
cd emsdk
|
|
./emsdk install latest
|
|
./emsdk activate latest
|
|
- name: make
|
|
run: |
|
|
source emsdk/emsdk_env.sh
|
|
emcmake cmake . -DLUAU_BUILD_WEB=ON -DCMAKE_BUILD_TYPE=Release
|
|
make -j2 Luau.Web
|