Skip to content

chore: release v1.5.2 #17

chore: release v1.5.2

chore: release v1.5.2 #17

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
build-bun:
strategy:
matrix:
include:
- os: ubuntu-24.04
target: bun-linux-x64
suffix: linux-x64
- os: ubuntu-24.04-arm
target: bun-linux-arm64
suffix: linux-arm64
- os: macos-latest
target: bun-darwin-x64
suffix: darwin-x64
- os: macos-latest
target: bun-darwin-arm64
suffix: darwin-arm64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Build vslsp binary
run: |
VERSION=$(jq -r .version package.json)
bun build --compile --minify --target=${{ matrix.target }} vslsp.ts \
--outfile vslsp-${{ matrix.suffix }} \
--define "VSLSP_VERSION=\"$VERSION\""
- name: Build vslsp-mcp binary
run: bun build --compile --minify --target=${{ matrix.target }} mcp.ts --outfile vslsp-mcp-${{ matrix.suffix }}
- name: Upload vslsp artifact
uses: actions/upload-artifact@v7
with:
name: vslsp-${{ matrix.suffix }}
path: vslsp-${{ matrix.suffix }}
- name: Upload vslsp-mcp artifact
uses: actions/upload-artifact@v7
with:
name: vslsp-mcp-${{ matrix.suffix }}
path: vslsp-mcp-${{ matrix.suffix }}
build-csharpmapper:
strategy:
matrix:
include:
- os: ubuntu-24.04
rid: linux-x64
suffix: linux-x64
- os: ubuntu-24.04-arm
rid: linux-arm64
suffix: linux-arm64
- os: macos-latest
rid: osx-arm64
suffix: darwin-arm64
- os: macos-latest
rid: osx-x64
suffix: darwin-x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '9.0.x'
- name: Build CSharpMapper
run: |
dotnet publish tools/csharp-mapper/CSharpMapper.csproj \
-c Release \
-r ${{ matrix.rid }} \
-p:PublishSingleFile=true \
-p:PublishTrimmed=true \
--self-contained true \
-o publish
mv publish/CSharpMapper CSharpMapper-${{ matrix.suffix }}
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: CSharpMapper-${{ matrix.suffix }}
path: CSharpMapper-${{ matrix.suffix }}
build-rust-mapper:
strategy:
matrix:
include:
- os: ubuntu-24.04
target: x86_64-unknown-linux-musl
suffix: linux-x64
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
suffix: linux-arm64
- os: macos-latest
target: aarch64-apple-darwin
suffix: darwin-arm64
- os: macos-latest
target: x86_64-apple-darwin
suffix: darwin-x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install musl tools (Linux)
if: contains(matrix.target, 'musl')
run: sudo apt-get install -y musl-tools
- name: Cache Cargo registry and build
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
tools/rust-mapper/target
key: rust-mapper-${{ matrix.target }}-${{ hashFiles('tools/rust-mapper/Cargo.lock') }}
restore-keys: rust-mapper-${{ matrix.target }}-
- name: Build RustMapper
run: |
cargo build --release \
--manifest-path tools/rust-mapper/Cargo.toml \
--target ${{ matrix.target }}
cp tools/rust-mapper/target/${{ matrix.target }}/release/rust-mapper \
RustMapper-${{ matrix.suffix }}
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: RustMapper-${{ matrix.suffix }}
path: RustMapper-${{ matrix.suffix }}
build-ts-mapper:
strategy:
matrix:
include:
- os: ubuntu-24.04
target: bun-linux-x64
suffix: linux-x64
- os: ubuntu-24.04-arm
target: bun-linux-arm64
suffix: linux-arm64
- os: macos-latest
target: bun-darwin-x64
suffix: darwin-x64
- os: macos-latest
target: bun-darwin-arm64
suffix: darwin-arm64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: cd tools/ts-mapper && bun install
- name: Build TSMapper
run: bun build --compile --minify --target=${{ matrix.target }} tools/ts-mapper/main.ts --outfile TSMapper-${{ matrix.suffix }}
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: TSMapper-${{ matrix.suffix }}
path: TSMapper-${{ matrix.suffix }}
test:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install dependencies
run: bun install
- name: Run tests
run: bun test --timeout 60000
release:
needs: [build-bun, build-csharpmapper, build-rust-mapper, build-ts-mapper, test]
runs-on: ubuntu-24.04
steps:
- name: Download all artifacts
uses: actions/download-artifact@v8
with:
path: artifacts
- name: Prepare release files
run: |
mkdir -p release
for dir in artifacts/*/; do
cp "$dir"* release/ || true
done
ls -la release/
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: release/*
generate_release_notes: true