Fix Artifacts directory name #161
Workflow file for this run
This file contains 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 | |
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 | |
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 | |
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: [self-hosted, 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: 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/net9_mgfxc_wine_setup.sh | bash | |
if: runner.os != 'Windows' | |
#Not working yet they crash | |
- name: Test Wine | |
run: wine64 dotnet --info | |
env: | |
WINEPREFIX: /home/runner/.winemonogame | |
if: runner.os == 'Linux' | |
#Not working yet they crash | |
- name: Test Wine | |
run: wine64 dotnet --info | |
env: | |
WINEPREFIX: /Users/runner/.winemonogame | |
if: runner.os == 'macOS' |