Skip to content

Download and Release Roslyn #7

Download and Release Roslyn

Download and Release Roslyn #7

name: Download and Release Roslyn
on:
workflow_dispatch:
inputs:
version:
type: string
description: 'Version to download and release'
jobs:
download:
runs-on: ubuntu-latest
strategy:
matrix:
rid: ['osx-x64', 'osx-arm64', 'linux-x64', 'linux-arm64', 'win-x64', 'win-x86']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: server/global.json
- name: Download for ${{ matrix.rid }}
run: >
dotnet restore ./server
/p:PackageName=microsoft.codeanalysis.languageserver.${{ matrix.rid }}
/p:PackageVersion=${{ github.event.inputs.version }}
- name: Package downloaded files
run: >
tar -czvf roslyn-${{ github.event.inputs.version }}-${{ matrix.rid }}.tar.gz
-C server/out/microsoft.codeanalysis.languageserver.${{ matrix.rid }}/${{ github.event.inputs.version }}/content/LanguageServer/${{ matrix.rid }} .
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.rid }}
path: roslyn-${{ github.event.inputs.version }}-${{ matrix.rid }}.tar.gz
release:
runs-on: ubuntu-latest
needs: download
permissions:
contents: write
steps:
- name: Download artifacts
id: download
uses: actions/download-artifact@v4
- name: Create Release and Upload Artifact
uses: softprops/action-gh-release@v1
with:
name: Roslyn Language Server ${{ github.event.inputs.version }}
tag_name: ${{ github.event.inputs.version }}
files: |
${{ steps.download.outputs.download-path }}/win-x64/roslyn-${{ github.event.inputs.version }}-win-x64.tar.gz
${{ steps.download.outputs.download-path }}/win-x86/roslyn-${{ github.event.inputs.version }}-win-x86.tar.gz
${{ steps.download.outputs.download-path }}/osx-x64/roslyn-${{ github.event.inputs.version }}-osx-x64.tar.gz
${{ steps.download.outputs.download-path }}/osx-arm64/roslyn-${{ github.event.inputs.version }}-osx-arm64.tar.gz
${{ steps.download.outputs.download-path }}/linux-x64/roslyn-${{ github.event.inputs.version }}-linux-x64.tar.gz
${{ steps.download.outputs.download-path }}/linux-arm64/roslyn-${{ github.event.inputs.version }}-linux-arm64.tar.gz