mirror of
https://github.com/SFML/CSFML.git
synced 2026-10-24 13:53:36 +02:00
257 lines
6.2 KiB
YAML
257 lines
6.2 KiB
YAML
name: NuGet Release
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- 2.6.x
|
|
tags:
|
|
- "**"
|
|
workflow_dispatch: {}
|
|
|
|
permissions: {}
|
|
|
|
concurrency:
|
|
group: nuget-${{github.ref}}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
|
|
|
jobs:
|
|
windows-x86-x64:
|
|
name: Windows x86 x64
|
|
runs-on: windows-2025-vs2026
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
path: CSFML
|
|
|
|
- name: Build x86
|
|
shell: pwsh
|
|
run: |
|
|
cd CSFML/tools/nuget
|
|
./build.win.ps1 "win-x86"
|
|
|
|
- name: Build x64
|
|
shell: pwsh
|
|
run: |
|
|
cd CSFML/tools/nuget
|
|
./build.win.ps1 "win-x64"
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: CSFML-win-x86-x64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
windows-arm64:
|
|
name: Windows ARM64
|
|
runs-on: windows-11-vs2026-arm
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
path: CSFML
|
|
|
|
- name: Build ARM64
|
|
shell: pwsh
|
|
run: |
|
|
cd CSFML/tools/nuget
|
|
./build.win.ps1 "win-arm64"
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: CSFML-win-arm64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
linux-x64:
|
|
name: Linux x64
|
|
runs-on: ubuntu-24.04
|
|
container:
|
|
image: ubuntu:24.04
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
path: CSFML
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
cd ./CSFML/tools/nuget
|
|
chmod +x ./docker.linux-x64.sh
|
|
./docker.linux-x64.sh
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: CSFML-linux-x64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
linux-arm:
|
|
name: Linux ARM
|
|
runs-on: ubuntu-24.04-arm
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
path: CSFML
|
|
|
|
- name: Install dependencies & cross compiler
|
|
run: |
|
|
sudo dpkg --add-architecture armhf
|
|
sudo apt-get update
|
|
sudo apt-get install -y git libfreetype6-dev:armhf xorg-dev libxrandr-dev:armhf libxcursor-dev:armhf libxi-dev:armhf libudev-dev:armhf libgl1-mesa-dev:armhf libflac-dev:armhf libogg-dev:armhf libvorbis-dev:armhf cmake g++-arm-linux-gnueabihf gcc-arm-linux-gnueabihf
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
cd ./CSFML/tools/nuget
|
|
chmod +x ./build.linux.sh
|
|
./build.linux.sh linux-arm arm-linux-gnueabihf-g++ arm-linux-gnueabihf-gcc
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: CSFML-linux-arm
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
linux-arm64:
|
|
name: Linux ARM64
|
|
runs-on: ubuntu-24.04-arm
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
path: CSFML
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y git libfreetype6-dev xorg-dev libxrandr-dev libxcursor-dev libxi-dev libudev-dev libgl1-mesa-dev libflac-dev libogg-dev libvorbis-dev cmake gcc g++
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
cd ./CSFML/tools/nuget
|
|
chmod +x ./build.linux.sh
|
|
./build.linux.sh linux-arm64
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: CSFML-linux-arm64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
linux-musl-x64:
|
|
name: Linux MUSL x64
|
|
runs-on: ubuntu-24.04
|
|
container:
|
|
image: alpine:3.20.7
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
path: CSFML
|
|
|
|
- name: Build
|
|
shell: sh
|
|
run: |
|
|
cd ./CSFML/tools/nuget
|
|
chmod +x ./docker.linux-musl-x64.sh
|
|
./docker.linux-musl-x64.sh
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: CSFML-linux-musl-x64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
macos-x64-arm64:
|
|
name: macOS x64 and ARM64
|
|
runs-on: macos-15
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
path: CSFML
|
|
|
|
- name: Install necessary tooling
|
|
run: brew install coreutils
|
|
|
|
- name: Build x64
|
|
run: |
|
|
cd CSFML/tools/nuget
|
|
./build.macos.sh "osx-x64"
|
|
|
|
- name: Build ARM64
|
|
run: |
|
|
cd CSFML/tools/nuget
|
|
./build.macos.sh "osx-arm64"
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: CSFML-macOS-x64-arm64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
package:
|
|
name: Package Builds
|
|
runs-on: ubuntu-24.04
|
|
needs:
|
|
- windows-x86-x64
|
|
- windows-arm64
|
|
- linux-x64
|
|
- linux-arm
|
|
- linux-arm64
|
|
- linux-musl-x64
|
|
- macos-x64-arm64
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
path: CSFML
|
|
- name: Download Artifacts
|
|
uses: actions/download-artifact@v8
|
|
with:
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
merge-multiple: true
|
|
- name: Setup .NET 10 SDK
|
|
id: setup-dotnet
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: 10.0.x
|
|
- name: Enforce SDK Version
|
|
env:
|
|
DOTNET_VERSION: ${{ steps.setup-dotnet.outputs.dotnet-version }}
|
|
run: dotnet new globaljson --sdk-version "$DOTNET_VERSION" --force
|
|
- name: Verify SDK Installation
|
|
run: dotnet --info
|
|
- name: Build NuGet Package
|
|
run: |
|
|
cd CSFML/tools/nuget
|
|
dotnet build --configuration Release --verbosity detailed
|
|
- name: Upload NuGet Package
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: CSFML-NuGet-Package
|
|
path: CSFML/tools/nuget/CSFML/bin/Release/*.nupkg
|