mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-24 18:44:38 +08:00
- Upgrade actions/checkout from v4 to v7 - Upgrade actions/setup-dotnet from v4 to v5 - Upgrade actions/upload-artifact from v4 to v7 - Upgrade actions/download-artifact from v4 to v4 (already compatible) - Upgrade ncipollo/release-action from v1 to v1.21.0 This addresses GitHub's deprecation of Node.js 20 and the upcoming forced migration to Node.js 24 (effective June 2, 2026).
161 lines
4.2 KiB
YAML
161 lines
4.2 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
tags-ignore:
|
|
- '*'
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
DOTNET_VERSION: '10.0.x'
|
|
Solution_Name: LanMountainDesktop.slnx
|
|
DOTNET_gcServer: 1
|
|
|
|
jobs:
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
name: Build_Windows_${{ matrix.configuration }}
|
|
strategy:
|
|
matrix:
|
|
configuration: [ Debug, Release ]
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v7
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: ${{ env.DOTNET_VERSION }}
|
|
dotnet-quality: 'preview'
|
|
|
|
- name: Restore
|
|
run: dotnet restore ${{ env.Solution_Name }}
|
|
|
|
- name: Build
|
|
run: dotnet build ${{ env.Solution_Name }} --no-restore -c ${{ matrix.configuration }} -v minimal
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: build-windows-${{ matrix.configuration }}
|
|
path: |
|
|
LanMountainDesktop/bin/${{ matrix.configuration }}/
|
|
retention-days: 7
|
|
|
|
build-linux:
|
|
runs-on: ubuntu-latest
|
|
name: Build_Linux
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v7
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
libfontconfig1 libfreetype6 \
|
|
libx11-6 libxrandr2 libxinerama1 \
|
|
libxi6 libxcursor1 libxext6 \
|
|
libxrender1 libxkbcommon-x11-0 \
|
|
clang zlib1g-dev
|
|
|
|
# Ubuntu 24.04+ moved several packages to t64 names.
|
|
sudo apt-get install -y libasound2t64 || sudo apt-get install -y libasound2
|
|
sudo apt-get install -y libportaudio2t64 || sudo apt-get install -y libportaudio2
|
|
|
|
# Prefer modern WebKit package, fallback for older images.
|
|
sudo apt-get install -y libwebkit2gtk-4.1-dev || sudo apt-get install -y libwebkit2gtk-4.0-dev
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: ${{ env.DOTNET_VERSION }}
|
|
dotnet-quality: 'preview'
|
|
|
|
- name: Restore
|
|
run: dotnet restore ${{ env.Solution_Name }}
|
|
|
|
- name: Build
|
|
run: dotnet build ${{ env.Solution_Name }} --no-restore -c Release -v minimal
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: build-linux
|
|
path: |
|
|
LanMountainDesktop/bin/Release/
|
|
retention-days: 7
|
|
|
|
build-macos:
|
|
runs-on: macos-latest
|
|
name: Build_macOS
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v7
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: Install dependencies
|
|
run: brew install portaudio
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: ${{ env.DOTNET_VERSION }}
|
|
dotnet-quality: 'preview'
|
|
|
|
- name: Restore
|
|
run: dotnet restore ${{ env.Solution_Name }}
|
|
|
|
- name: Build
|
|
run: dotnet build ${{ env.Solution_Name }} --no-restore -c Release -v minimal
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: build-macos
|
|
path: |
|
|
LanMountainDesktop/bin/Release/
|
|
retention-days: 7
|
|
|
|
pack-plugin-packages:
|
|
runs-on: ubuntu-latest
|
|
name: Pack_Plugin_Packages
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v7
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: ${{ env.DOTNET_VERSION }}
|
|
dotnet-quality: 'preview'
|
|
|
|
- name: Pack SDK and template packages
|
|
shell: pwsh
|
|
run: .\scripts\Pack-PluginPackages.ps1 -Configuration Release -OutputPath .\artifacts\nuget
|
|
|
|
- name: Upload plugin package artifacts
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: plugin-packages
|
|
path: artifacts/nuget/*.nupkg
|
|
if-no-files-found: error
|
|
retention-days: 14
|