Skip to content

v1.56.1

v1.56.1 #147

Workflow file for this run

name: Release
on:
push:
tags: ["*"]
workflow_dispatch:
env:
MACOSX_DEPLOYMENT_TARGET: "10.15"
jobs:
create-release:
name: Create Release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: true
build-plugin:
needs: ["create-release"]
name: Build Roblox Studio Plugin
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ok-nick/[email protected]
- name: Build Plugin
run: rojo build plugin --output Luau.rbxm
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: Luau.rbxm
path: Luau.rbxm
- name: Upload Plugin to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: Luau.rbxm
asset_name: Luau.rbxm
asset_content_type: application/octet-stream
- name: Publish Plugin to Roblox
env:
ROBLOX_API_KEY: ${{ secrets.ROBLOX_API_KEY }}
working-directory: plugin
run: |
rojo build test.project.json --output plugin_place.rbxl
lune run cloud/execute_task.luau plugin_place.rbxl cloud/publishing_task.luau
dist:
needs: ["create-release"]
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
artifact-name: luau-lsp-win64
code-target: [win32-x64, win32-arm64]
crash-reporting: true
- os: ubuntu-22.04
artifact-name: luau-lsp-linux-x86_64
code-target: [linux-x64]
crash-reporting: false
- os: ubuntu-22.04-arm
artifact-name: luau-lsp-linux-arm64
code-target: [linux-arm64]
crash-reporting: false
- os: macos-latest
artifact-name: luau-lsp-macos
code-target: [darwin-x64, darwin-arm64]
crash-reporting: true
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
submodules: recursive
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Build Server
run: |
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DLSP_STATIC_CRT:BOOL=ON -DLSP_BUILD_WITH_SENTRY:BOOL=${{ matrix.crash-reporting }}
cmake --build . --config RelWithDebInfo --target Luau.LanguageServer.CLI -j 3
- name: (MacOS) Verify universal build
if: matrix.os == 'macos-latest'
run: lipo -archs build/luau-lsp
- name: (MacOS) Separate debug symbols
if: matrix.os == 'macos-latest'
run: dsymutil build/luau-lsp && strip -S build/luau-lsp
- name: (Linux) Separate debug symbols
if: matrix.os == 'ubuntu-22.04' || matrix.os == 'ubuntu-22.04-arm'
run: objcopy --only-keep-debug build/luau-lsp build/luau-lsp.dbg && objcopy --strip-debug build/luau-lsp
- name: Copy Build into Extension
shell: bash
run: |
mkdir -p ./dist
mkdir -p editors/code/bin
if [ "${{ matrix.os }}" = "windows-latest" ]; then
cp build/RelWithDebInfo/luau-lsp.exe editors/code/bin/server.exe
else
cp build/luau-lsp editors/code/bin/server
chmod 777 editors/code/bin/server
fi
- name: Copy Crashpad Handler into Extension
shell: bash
if: matrix.crash-reporting == true
run: |
if [ "${{ matrix.os }}" = "windows-latest" ]; then
cp build/RelWithDebInfo/crashpad_handler.exe editors/code/bin/crashpad_handler.exe
else
cp build/crashpad_handler editors/code/bin/crashpad_handler
chmod 777 editors/code/bin/crashpad_handler
fi
- name: Setup Sentry CLI
uses: matbour/setup-sentry-cli@v2
if: matrix.crash-reporting == true
with:
token: ${{ secrets.SENTRY_AUTH_TOKEN }}
organization: luau-lsp
project: luau-lsp
- name: Upload debug symbols
shell: bash
if: matrix.crash-reporting == true
run: |
sentry-cli debug-files upload --include-sources build
- name: Create Release Archive
shell: bash
run: |
mkdir staging
if [ "${{ matrix.os }}" = "windows-latest" ]; then
cp "build/RelWithDebInfo/luau-lsp.exe" staging/
cd staging
7z a ../dist/server.zip *
else
cp "build/luau-lsp" staging/
cd staging
zip ../dist/server.zip *
fi
- name: Copy README, CHANGELOG, LICENSE
shell: bash
run: |
rm -f editors/code/README.md
cp README.md editors/code/README.md
rm -f editors/code/CHANGELOG.md
cp CHANGELOG.md editors/code/CHANGELOG.md
rm -f editors/code/LICENSE.md
cp LICENSE.md editors/code/LICENSE
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist-${{ matrix.artifact-name }}
path: ./dist
- name: Upload Server to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./dist/server.zip
asset_name: ${{ matrix.artifact-name }}.zip
asset_content_type: application/octet-stream
- run: npm ci
working-directory: editors/code
- name: Publish Extension
working-directory: editors/code
run: npx @vscode/vsce publish --pat ${{ secrets.MARKETPLACE_TOKEN }} --target ${{ join(matrix.code-target, ' ') }}
- name: Publish OpenVSX Extension
working-directory: editors/code
run: npx ovsx publish --pat ${{ secrets.OVSX_TOKEN }} --target ${{ join(matrix.code-target, ' ') }}