Create workflows to publish Companion plugin #1693
Workflow file for this run
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 cloud | |
working-directory: plugin | |
- name: Run stylua | |
run: stylua --check src cloud | |
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 (Plugin Source) | |
run: ../build/luau-lsp analyze --sourcemap=sourcemap.json --definitions=../scripts/globalTypes.d.luau src | |
working-directory: plugin | |
- name: Run Luau Analyze (Cloud Scripts) | |
run: | | |
lune setup | |
echo '{ "luau-lsp.require.directoryAliases": {"@lune/": "~/.lune/.typedefs/0.8.9/"} }' > settings.json | |
rojo sourcemap test.project.json --output test-sourcemap.json | |
../build/luau-lsp analyze --sourcemap=test-sourcemap.json --definitions=../scripts/globalTypes.d.luau --settings=settings.json --fflag:LuauFixIndexerSubtypingOrdering=True cloud | |
working-directory: plugin | |
- name: Build Plugin | |
run: rojo build plugin --output Luau.rbxm |