mirror of
https://github.com/luau-lang/luau.git
synced 2025-05-04 10:33:46 +01:00
This was clearly a better idea as it cleans up CMakeLists.txt and allows us to add more functionality in the future that's specific to web.
104 lines
2.7 KiB
YAML
104 lines
2.7 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: [ubuntu, macos]
|
|
name: ${{matrix.os}}
|
|
runs-on: ${{matrix.os}}-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: make test
|
|
run: |
|
|
make -j2 config=sanitize werror=1 test
|
|
- name: make test w/flags
|
|
run: |
|
|
make -j2 config=sanitize werror=1 flags=true test
|
|
- name: make cli
|
|
run: |
|
|
make -j2 config=sanitize werror=1 luau luau-analyze # match config with tests to improve build time
|
|
./luau tests/conformance/assert.lua
|
|
./luau-analyze 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
|
|
- name: cmake test
|
|
shell: bash # necessary for fail-fast
|
|
run: |
|
|
cmake --build . --target Luau.UnitTest Luau.Conformance --config Debug
|
|
Debug/Luau.UnitTest.exe
|
|
Debug/Luau.Conformance.exe
|
|
- name: cmake test w/flags
|
|
shell: bash # necessary for fail-fast
|
|
run: |
|
|
Debug/Luau.UnitTest.exe --fflags=true
|
|
Debug/Luau.Conformance.exe --fflags=true
|
|
- name: cmake cli
|
|
shell: bash # necessary for fail-fast
|
|
run: |
|
|
cmake --build . --target Luau.Repl.CLI Luau.Analyze.CLI --config Debug # match config with tests to improve build time
|
|
Debug/luau tests/conformance/assert.lua
|
|
Debug/luau-analyze tests/conformance/assert.lua
|
|
|
|
coverage:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: install
|
|
run: |
|
|
sudo apt install llvm
|
|
- name: make coverage
|
|
run: |
|
|
CXX=clang++-10 make -j2 config=coverage coverage
|
|
- name: upload coverage
|
|
uses: coverallsapp/github-action@master
|
|
with:
|
|
path-to-lcov: ./coverage.info
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: coverage
|
|
path: coverage
|
|
|
|
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 . -DCMAKE_BUILD_TYPE=Release
|
|
make -j2 Luau.Web
|