Build Native Binaries #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Native | |
| # TODO: Use matrix strategy | |
| # TODO: Re-enable successful jobs | |
| on: | |
| workflow_dispatch: | |
| jobs: | |
| vma-library-linux: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-vma-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: vma-library-linux | |
| path: outputs/runtimes | |
| slang-library-linux: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-slang-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: slang-library-linux | |
| path: outputs/runtimes | |
| tracy-library-linux: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-tracy-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: tracy-library-linux | |
| path: outputs/runtimes | |
| vma-library-windows: | |
| runs-on: windows-2025 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-vma-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: vma-library-windows | |
| path: outputs/runtimes | |
| slang-library-windows: | |
| runs-on: windows-2025 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-slang-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: slang-library-windows | |
| path: outputs/runtimes | |
| tracy-library-windows: | |
| runs-on: windows-2025 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-tracy-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: tracy-library-windows | |
| path: outputs/runtimes | |
| vma-library-mac: | |
| runs-on: macos-15 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-vma-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: vma-library-mac | |
| path: outputs/runtimes | |
| slang-library-mac: | |
| runs-on: macos-15 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-slang-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: slang-library-mac | |
| path: outputs/runtimes | |
| tracy-library-mac: | |
| runs-on: macos-15 | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: "10.0.100-rc.2.25502.107" | |
| - name: Cache .git folder | |
| uses: actions/cache@v4 | |
| with: | |
| path: .git | |
| key: git-{{ hashFiles('**/.gitmodules') }} | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| with: | |
| repository: Exanite-GameDev/Exanite.GameDev | |
| token: ${{ secrets._GITHUB_TOKEN }} | |
| submodules: recursive | |
| lfs: false | |
| - name: Setup build system | |
| run: dotnet build projects/Exanite.Engine.BuildSystem | |
| - name: Build | |
| run: | | |
| dotnet run --project projects/Exanite.Engine.BuildSystem -- build-tracy-library | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: tracy-library-mac | |
| path: outputs/runtimes | |
| combine-outputs: | |
| runs-on: ubuntu-latest | |
| if: always() | |
| needs: | |
| - vma-library-linux | |
| - slang-library-linux | |
| - tracy-library-linux | |
| - vma-library-windows | |
| - slang-library-windows | |
| - tracy-library-windows | |
| - vma-library-mac | |
| - slang-library-mac | |
| - tracy-library-mac | |
| steps: | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v5 | |
| with: | |
| path: artifacts | |
| - name: Combine into one folder | |
| run: | | |
| mkdir combined | |
| cp -r artifacts/*/* combined | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: combined | |
| path: combined |