Skip to content

v1.25.0

v1.25.0 #87

Workflow file for this run

name: Release
on:
push:
tags: ["*"]
workflow_dispatch:
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@v3
- uses: Roblox/setup-foreman@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Plugin
run: rojo build plugin --output Luau.rbxm
- name: Upload artifacts
uses: actions/upload-artifact@v3
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
dist:
needs: ["create-release"]
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
artifact-name: luau-lsp-win64
code-target: [win32-x64]
- os: ubuntu-latest
artifact-name: luau-lsp-linux
code-target: [linux-x64]
- os: ubuntu-latest
artifact-name: luau-lsp-linux-arm64
code-target: [linux-arm64]
- os: macos-latest
artifact-name: luau-lsp-macos
code-target: [darwin-x64, darwin-arm64]
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
submodules: true
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: Build Server
run: |
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
cmake --build . --config Release --target Luau.LanguageServer.CLI -j 3
- name: (MacOS) Verify universal build
if: matrix.os == 'macos-latest'
run: lipo -archs 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/Release/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: Create Release Archive
shell: bash
run: |
mkdir staging
if [ "${{ matrix.os }}" = "windows-latest" ]; then
cp "build/Release/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@v3
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 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, ' ') }}