Plugin Script Rewrite #1709
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Verify Build | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-20.04, macos-latest] | |
name: Build Server (${{matrix.os}}) | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
submodules: true | |
- name: Build Tool | |
run: | | |
mkdir build && cd build | |
cmake .. -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DLSP_STATIC_CRT:BOOL=ON | |
cmake --build . --target Luau.LanguageServer.CLI -j 3 | |
run_tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: windows-latest | |
test-path: ./build/Debug/Luau.LanguageServer.Test | |
- os: ubuntu-20.04 | |
test-path: ./build/Luau.LanguageServer.Test | |
name: Run Tests (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
submodules: true | |
- name: Build Tests | |
run: | | |
mkdir build && cd build | |
cmake .. | |
cmake --build . --target Luau.LanguageServer.Test -j 3 | |
- name: Run Tests (Old Solver) | |
run: ${{ matrix.test-path }} | |
- name: Run Tests (New Solver) | |
run: ${{ matrix.test-path }} --new-solver | |
types_smoketest: | |
name: Types Smoketest | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
submodules: true | |
- name: Build Tool | |
run: | | |
mkdir build && cd build | |
cmake .. | |
cmake --build . --target Luau.LanguageServer.CLI -j 3 | |
- name: Regenerate Types | |
run: | | |
cd scripts | |
python dumpRobloxTypes.py > globalTypes.d.luau | |
- name: Test types | |
run: | | |
touch test.lua | |
build/luau-lsp analyze --defs=scripts/globalTypes.d.luau test.lua | |
- name: Test Remodel types | |
run: | | |
touch remodel_test.lua | |
build/luau-lsp analyze --defs=scripts/remodel.d.lua test.lua | |
lint_extension: | |
name: Lint Extension | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install dependencies | |
run: npm ci | |
working-directory: editors/code | |
- name: Run ESLint | |
run: npm run lint | |
working-directory: editors/code | |
- name: Prettier | |
run: npm run check:format | |
working-directory: editors/code | |
build_extension: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-20.04, windows-latest] | |
name: Test Extension (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- run: npm install | |
working-directory: editors/code | |
- run: xvfb-run -a npm test | |
working-directory: editors/code | |
if: runner.os == 'Linux' | |
- run: npm test | |
working-directory: editors/code | |
if: runner.os != 'Linux' | |
- run: npx @vscode/vsce package | |
working-directory: editors/code | |
build_plugin: | |
name: Verify and Build Roblox Studio Plugin | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ok-nick/[email protected] | |
- name: Run selene | |
run: selene src | |
working-directory: plugin | |
- name: Run stylua | |
run: stylua --check src | |
working-directory: plugin | |
- name: Generate sourcemap | |
run: rojo sourcemap default.project.json --output sourcemap.json | |
working-directory: plugin | |
- name: Build Tool | |
run: | | |
mkdir build && cd build | |
cmake .. | |
cmake --build . --target Luau.LanguageServer.CLI -j 3 | |
- name: Run Luau Analyze | |
run: ../build/luau-lsp analyze --sourcemap=sourcemap.json --definitions=../scripts/globalTypes.d.luau src | |
working-directory: plugin | |
- name: Build Plugin | |
run: rojo build plugin --output Luau.rbxm |