2
0
mirror of https://github.com/raylib-cs/raylib-cs synced 2025-04-03 11:09:40 -04:00

144 lines
5.0 KiB
YAML

name: Build
on:
push:
branches: master
pull_request:
branches: '*'
paths-ignore:
- 'README.md'
- '.github/ISSUE_TEMPLATE/**'
workflow_dispatch:
jobs:
build:
name: Build on dotnet using ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v2
- name: Setup dotnet
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
- name: Build project
run: dotnet build -c Release -f net6.0
- name: Test project
run: dotnet test -c Release -f net6.0
publish:
name: Build Release Package
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v2
- name: Setup dotnet
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
- name: Download Repo
uses: actions/checkout@v2
- id: get-tag
name: Get Target Raylib Version
uses: mavrosxristoforos/get-xml-info@1.0
with:
xml-file: "./Raylib-cs/Raylib-cs.csproj"
xpath: "//TargetRaylibTag"
- name: echo tag
run: echo ${{ steps.get-tag.outputs.info }}
- name: Download win-x64 Raylib Release
uses: robinraju/release-downloader@v1.3
with:
repository: "raysan5/raylib"
tag: ${{ steps.get-tag.outputs.info }}
fileName: "raylib-${{steps.get-tag.outputs.info}}_win64_msvc16.zip"
- name: extract win-x64
uses: montudor/action-zip@v1
with:
args: unzip -qq raylib-${{steps.get-tag.outputs.info}}_win64_msvc16.zip -d raylib-win64
- name: copy win-x64
uses: canastro/copy-file-action@master
with:
source: "raylib-win64/raylib-${{steps.get-tag.outputs.info}}_win64_msvc16/lib/raylib.dll"
target: "Raylib-cs/runtimes/win-x64/native/raylib.dll"
- name: Download win-x86 Raylib Release
uses: robinraju/release-downloader@v1.3
with:
repository: "raysan5/raylib"
tag: ${{ steps.get-tag.outputs.info }}
fileName: "raylib-${{steps.get-tag.outputs.info}}_win32_msvc16.zip"
- name: extract win-x86
uses: montudor/action-zip@v1
with:
args: unzip -qq raylib-${{steps.get-tag.outputs.info}}_win32_msvc16.zip -d raylib-win86
- name: copy win-x86
uses: canastro/copy-file-action@master
with:
source: "raylib-win86/raylib-${{steps.get-tag.outputs.info}}_win32_msvc16/lib/raylib.dll"
target: "Raylib-cs/runtimes/win-x86/native/raylib.dll"
- name: Download linux-x64 Raylib Release
uses: robinraju/release-downloader@v1.3
with:
repository: "raysan5/raylib"
tag: ${{ steps.get-tag.outputs.info }}
fileName: "raylib-${{steps.get-tag.outputs.info}}_linux_amd64.tar.gz"
- name: extract linux-x64
run: mkdir -p raylib-linux64 && tar -xvf raylib-${{steps.get-tag.outputs.info}}_linux_amd64.tar.gz -C raylib-linux64
- name: copy linux-x64
uses: canastro/copy-file-action@master
with:
source: "raylib-linux64/raylib-${{steps.get-tag.outputs.info}}_linux_amd64/lib/libraylib.so.${{steps.get-tag.outputs.info}}"
target: "Raylib-cs/runtimes/linux-x64/native/libraylib.so"
- name: Download osx-x64 Raylib Release
uses: robinraju/release-downloader@v1.3
with:
repository: "raysan5/raylib"
tag: ${{ steps.get-tag.outputs.info }}
fileName: "raylib-${{steps.get-tag.outputs.info}}_macos.tar.gz"
- name: extract osx-x64
run: mkdir -p raylib-osx64 && tar -xvf raylib-${{steps.get-tag.outputs.info}}_macos.tar.gz -C raylib-osx64
- name: copy osx-x64
uses: canastro/copy-file-action@master
with:
source: "raylib-osx64/raylib-${{steps.get-tag.outputs.info}}_macos/lib/libraylib.dylib"
target: "Raylib-cs/runtimes/osx-x64/native/libraylib.dylib"
- id: get-nuget-version
name: Get NuGet Package Version
uses: mavrosxristoforos/get-xml-info@1.0
with:
xml-file: "./Raylib-cs/Raylib-cs.csproj"
xpath: "//PackageVersion"
- name: Create NuGet Package
run: dotnet pack -c Release Raylib-cs
- name: Upload NuGet Package As Artifact
uses: actions/upload-artifact@v2
with:
name: Raylib-cs.${{steps.get-nuget-version.outputs.info}}.nupkg
path: Raylib-cs/bin/Release/Raylib-cs.${{steps.get-nuget-version.outputs.info}}.nupkg
- name: Upload NuGet Package As Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: Raylib-cs/bin/Release/Raylib-cs.${{steps.get-nuget-version.outputs.info}}.nupkg
- name: Publish to NuGet
run: nuget push Raylib-cs/bin/Release/Raylib-cs.${{steps.get-nuget-version.outputs.info}}.nupkg -k $${{secrets.NUGET_API_KEY}}