Skip to content

Fixed NormalizedByte4 and Short2 packing #185

Fixed NormalizedByte4 and Short2 packing

Fixed NormalizedByte4 and Short2 packing #185

Workflow file for this run

name: Build
on: [push, pull_request]
jobs:
build:
name: build-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
fail-fast: false
steps:
- name: Clone repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'microsoft'
java-version: '17'
- name: Disable annotations
run: echo "::remove-matcher owner=csc::"
- name: install wine64 on linux
run: |
sudo apt install p7zip-full curl
sudo dpkg --add-architecture i386
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt update && sudo apt install --install-recommends winehq-stable
if: runner.os == 'Linux'
- name: Install Arial Font
run: |
echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | sudo debconf-set-selections
sudo apt install -y ttf-mscorefonts-installer
sudo fc-cache
fc-match Arial
if: runner.os == 'Linux'
- name: install wine64 on macos
run: |
brew install wine-stable p7zip freeimage freetype
sudo mkdir -p /usr/local/lib
sudo ln -s /opt/homebrew/lib/libfreetype.dylib /usr/local/lib/libfreetype6.dylib
sudo ln -s /opt/homebrew/lib/libfreeimage.dylib /usr/local/lib/libfreeimage.dylib
if: runner.os == 'macOS'
- name: Setup Wine
run: wget -qO- https://monogame.net/downloads/net8_mgfxc_wine_setup.sh | bash
if: runner.os != 'Windows'
- name: Install required workloads
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
dotnet workload install android
elif [ "$RUNNER_OS" == "Windows" ]; then
dotnet.exe workload install android ios macos
else
dotnet workload install android
fi
shell: bash
- name: Build
run: dotnet run --project build/Build.csproj -- --target=Default
- name: Test
run: dotnet test Tools/MonoGame.Tools.Tests/MonoGame.Tools.Tests.csproj --blame-hang-timeout 1m -c Release --filter="TestCategory!=Audio & TestCategory!=Effects"
env:
DOTNET_ROOT: ${{github.workspace}}/dotnet64
MGFXC_WINE_PATH: /home/runner/.winemonogame
CI: true
if: runner.os == 'Linux'
- name: Test
run: dotnet test Tools/MonoGame.Tools.Tests/MonoGame.Tools.Tests.csproj --blame-hang-timeout 1m -c Release --filter="TestCategory!=Audio & TestCategory!=Effects"
env:
DOTNET_ROOT: ${{github.workspace}}/dotnet64
MGFXC_WINE_PATH: /Users/runner/.winemonogame
CI: true
if: runner.os == 'macOS'
- name: Test
run: dotnet test Tools/MonoGame.Tools.Tests/MonoGame.Tools.Tests.csproj --blame-hang-timeout 1m -c Release
env:
CI: true
if: runner.os == 'Windows'
- name: Expose GitHub Runtime
uses: crazy-max/ghaction-github-runtime@v3
- name: Upload Artifacts
run: dotnet run --project build/Build.csproj -- --target=UploadArtifacts
env:
ACTIONS_RUNTIME_TOKEN: ${{ env.ACTIONS_RUNTIME_TOKEN }}
ACTIONS_RUNTIME_URL: "${{ env.ACTIONS_RUNTIME_URL }}"
deploy:
name: Deploy
needs: [ build ]
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' }}
permissions:
packages: write
contents: write
steps:
- name: Clone Repository
uses: actions/checkout@v4
- name: Setup .NET ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Expose GitHub Runtime
uses: crazy-max/ghaction-github-runtime@v3
- name: Push Nugets
run: dotnet run --project build/Build.csproj -- --target=Deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
- name: Make a Release
if: github.ref_type == 'tag'
uses: ncipollo/release-action@v1
with:
name: 'MonoGame ${{ github.ref_name }}'
tag: ${{ github.ref_name }}
allowUpdates: true
removeArtifacts: true
artifacts: "nugets/*.nupkg"
token: ${{ secrets.GITHUB_TOKEN }}
tests:
name: tests-${{ matrix.os }}
needs: [ build ]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows, macos]
fail-fast: false
steps:
- name: Clone repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Download tools tests
uses: actions/download-artifact@v3
with:
name: tests-tools-${{ matrix.os }}
path: tests-tools
- name: Download the tests
uses: actions/download-artifact@v3
with:
name: tests-desktopgl-${{ matrix.os }}
path: tests-desktopgl
- name: Download the tests
uses: actions/download-artifact@v3
with:
name: tests-windowsdx-${{ matrix.os }}
path: tests-windowsdx
if: runner.os == 'Windows'
- name: Install Tools
run: |
dotnet tool install --create-manifest-if-needed mgcb-basisu
dotnet tool install --create-manifest-if-needed mgcb-crunch
- name: Run Tools Tests
run: dotnet test tests-tools/MonoGame.Tools.Tests.dll --blame-hang-timeout 1m --filter="TestCategory!=Effects"
env:
CI: true
# Run the DesktopGL tests on all platforms using NUnitLite runner not dotnet test
# We have to run this is bits because the tests crash if too many are run in one go?
- name: Run Framework Tests
run: dotnet MonoGame.Tests.dll --test MonoGame.Tests.Framework
env:
CI: true
working-directory: tests-desktopgl
- name: Run Audio Tests
run: dotnet MonoGame.Tests.dll --test MonoGame.Tests.Audio
env:
CI: true
working-directory: tests-desktopgl
- name: Run Input Tests
run: dotnet MonoGame.Tests.dll --test MonoGame.Tests.Input
env:
CI: true
working-directory: tests-desktopgl
- name: Run Visual Tests
run: dotnet MonoGame.Tests.dll --test MonoGame.Tests.Visual
env:
CI: true
working-directory: tests-desktopgl
- name: Run Graphics Tests
run: dotnet MonoGame.Tests.dll --test MonoGame.Tests.Graphics
env:
CI: true
working-directory: tests-desktopgl
- name: Run Game Tests
run: dotnet MonoGame.Tests.dll --test MonoGame.Tests.GameTest
env:
CI: true
working-directory: tests-desktopgl
- name: Run Tests
run: dotnet MonoGame.Tests.dll
env:
CI: true
working-directory: tests-windowsdx
if: runner.os == 'Windows'