From 0c1cd8fcf758bdbd4874ff4e0f8e5307b45afb0d Mon Sep 17 00:00:00 2001 From: Syping Date: Tue, 7 Oct 2025 12:31:49 +0200 Subject: [PATCH] GitHub Actions: add .NET build --- .github/workflows/windows-dotnet.yml | 80 ++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/windows-dotnet.yml diff --git a/.github/workflows/windows-dotnet.yml b/.github/workflows/windows-dotnet.yml new file mode 100644 index 0000000..7e2c126 --- /dev/null +++ b/.github/workflows/windows-dotnet.yml @@ -0,0 +1,80 @@ +name: Windows .NET +on: push + +jobs: + Native: + runs-on: windows-latest + env: + BUILD_TYPE: Release + strategy: + matrix: + arch: + - amd64 + - amd64_x86 + - amd64_arm64 + steps: + - name: Cloning + uses: actions/checkout@v4 + - uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{matrix.arch}} + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DRAGEPHOTO_C_LIBRARY=ON -DRAGEPHOTO_UNICODE=wincvt -GNinja + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + - name: Install + run: cmake --install ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --prefix ${{github.workspace}}/install + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: Windows MSVC ${{matrix.arch}} + path: | + ${{github.workspace}}/install/ + Release: + needs: Native + runs-on: ubuntu-latest + env: + BUILD_TYPE: Release + steps: + - name: Cloning + uses: actions/checkout@v4 + - name: Download Windows MSVC amd64 + uses: actions/download-artifact@v4 + with: + name: Windows MSVC amd64 + path: assets/amd64 + - name: Download Windows MSVC amd64_x86 + uses: actions/download-artifact@v4 + with: + name: Windows MSVC amd64_x86 + path: assets/amd64_x86 + - name: Download Windows MSVC amd64_arm64 + uses: actions/download-artifact@v4 + with: + name: Windows MSVC amd64_arm64 + path: assets/amd64_arm64 + - name: Copy Runtime Assets + run: | + mkdir -p ${{github.workspace}}/src/dotnet/runtimes/win-arm64 \ + ${{github.workspace}}/src/dotnet/runtimes/win-x64 \ + ${{github.workspace}}/src/dotnet/runtimes/win-x86 + cp ${{github.workspace}}/assets/amd64_arm64/bin/libragephoto.dll \ + ${{github.workspace}}/src/dotnet/runtimes/win-arm64/libragephoto.dll + cp ${{github.workspace}}/assets/amd64/bin/libragephoto.dll \ + ${{github.workspace}}/src/dotnet/runtimes/win-x64/libragephoto.dll + cp ${{github.workspace}}/assets/amd64_x86/bin/libragephoto.dll \ + ${{github.workspace}}/src/dotnet/runtimes/win-x86/libragephoto.dll + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Restore dependencies + run: dotnet restore src/dotnet + - name: Pack Syping.RagePhoto.Core + run: dotnet pack src/dotnet --configuration ${{env.BUILD_TYPE}} + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: NuGet Package + path: | + ${{github.workspace}}/src/dotnet/bin/${{env.BUILD_TYPE}}/Syping.RagePhoto.Core.*.nupkg