mirror of
https://github.com/SFML/CSFML.git
synced 2026-10-24 13:53:36 +02:00
253 lines
6.0 KiB
YAML
253 lines
6.0 KiB
YAML
name: NuGet Release
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- 2.6.x
|
|
workflow_dispatch: {}
|
|
|
|
concurrency:
|
|
group: nuget-${{github.ref}}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
|
|
|
jobs:
|
|
windows:
|
|
name: Windows VS2022
|
|
runs-on: windows-2025
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v4
|
|
with:
|
|
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@v4
|
|
with:
|
|
name: CSFML-win-x86-x64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
linux-x64:
|
|
name: Linux x64
|
|
runs-on: ubuntu-22.04
|
|
container:
|
|
image: ubuntu:22.04
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v4
|
|
with:
|
|
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@v4
|
|
with:
|
|
name: CSFML-linux-x64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
linux-arm:
|
|
name: Linux ARM
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: CSFML
|
|
|
|
- name: Build in an ARM container
|
|
uses: uraimo/run-on-arch-action@v2.8.1
|
|
with:
|
|
arch: armv7
|
|
distro: ubuntu22.04
|
|
githubToken: ${{ github.token }}
|
|
dockerRunArgs: |
|
|
--volume "${PWD}/CSFML:/CSFML"
|
|
install: |
|
|
apt-get update -y
|
|
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 g++
|
|
run: |
|
|
cd /CSFML/tools/nuget
|
|
chmod +x ./build.linux.sh
|
|
./build.linux.sh linux-arm
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: CSFML-linux-arm
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
linux-arm64:
|
|
name: Linux ARM64
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: CSFML
|
|
|
|
- name: Build in an ARM64 container
|
|
uses: uraimo/run-on-arch-action@v2.8.1
|
|
with:
|
|
arch: aarch64
|
|
distro: ubuntu22.04
|
|
githubToken: ${{ github.token }}
|
|
dockerRunArgs: |
|
|
--volume "${PWD}/CSFML:/CSFML"
|
|
install: |
|
|
apt-get update -y
|
|
apt-get install -y git libfreetype6-dev xorg-dev libxrandr-dev libxcursor-dev libudev-dev libgl1-mesa-dev libflac-dev libogg-dev libvorbis-dev cmake g++
|
|
run: |
|
|
cd /CSFML/tools/nuget
|
|
chmod +x ./build.linux.sh
|
|
./build.linux.sh linux-arm64
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: CSFML-linux-arm64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
linux-musl-x64:
|
|
name: Linux MUSL x64
|
|
runs-on: ubuntu-22.04
|
|
container:
|
|
image: alpine:3.20.3
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v4
|
|
with:
|
|
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@v4
|
|
with:
|
|
name: CSFML-linux-musl-x64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
fedora-x64:
|
|
name: Fedora x64
|
|
runs-on: ubuntu-22.04
|
|
container:
|
|
image: fedora:37
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: CSFML
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
cd ./CSFML/tools/nuget
|
|
chmod +x ./docker.fedora-x64.sh
|
|
./docker.fedora-x64.sh
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: CSFML-fedora-x64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
macos:
|
|
name: macOS
|
|
runs-on: macos-14
|
|
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v4
|
|
with:
|
|
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@v4
|
|
with:
|
|
name: CSFML-macOS-x64-arm64
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
|
|
package:
|
|
name: Package Builds
|
|
runs-on: ubuntu-22.04
|
|
needs:
|
|
- windows
|
|
- linux-x64
|
|
- linux-arm
|
|
- linux-arm64
|
|
- linux-musl-x64
|
|
- fedora-x64
|
|
- macos
|
|
steps:
|
|
- name: Checkout CSFML
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: CSFML
|
|
- name: Download Artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: CSFML/tools/nuget/CSFML/runtimes
|
|
merge-multiple: true
|
|
- name: Setup .NET 8 SDK
|
|
id: setup-dotnet
|
|
uses: actions/setup-dotnet@v4
|
|
with:
|
|
dotnet-version: 8.0.x
|
|
- name: Enforce SDK Version
|
|
run: dotnet new globaljson --sdk-version ${{ steps.setup-dotnet.outputs.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@v4
|
|
with:
|
|
name: CSFML-NuGet-Package
|
|
path: CSFML/tools/nuget/CSFML/bin/Release/*.nupkg
|