forked from Mirror/Ryujinx
b9f2a96595
Avalonia seems to not like when the artifact doesns't match the root namespace... Address that by moving the binary to "Ryujinx" like we do on macOS build.
95 lines
4.3 KiB
YAML
95 lines
4.3 KiB
YAML
name: Build job
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs: {}
|
|
#push:
|
|
# branches: [ master ]
|
|
# paths-ignore:
|
|
# - '.github/*'
|
|
# - '.github/ISSUE_TEMPLATE/**'
|
|
# - '*.yml'
|
|
# - 'README.md'
|
|
pull_request:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- '.github/*'
|
|
- '.github/ISSUE_TEMPLATE/**'
|
|
- '*.yml'
|
|
- 'README.md'
|
|
|
|
jobs:
|
|
build:
|
|
name: ${{ matrix.os }} (${{ matrix.configuration }})
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
|
configuration: [Debug, Release]
|
|
include:
|
|
- os: ubuntu-latest
|
|
OS_NAME: Linux x64
|
|
DOTNET_RUNTIME_IDENTIFIER: linux-x64
|
|
RELEASE_ZIP_OS_NAME: linux_x64
|
|
|
|
- os: macOS-latest
|
|
OS_NAME: MacOS x64
|
|
DOTNET_RUNTIME_IDENTIFIER: osx-x64
|
|
RELEASE_ZIP_OS_NAME: osx_x64
|
|
|
|
- os: windows-latest
|
|
OS_NAME: Windows x64
|
|
DOTNET_RUNTIME_IDENTIFIER: win10-x64
|
|
RELEASE_ZIP_OS_NAME: win_x64
|
|
|
|
fail-fast: false
|
|
env:
|
|
POWERSHELL_TELEMETRY_OPTOUT: 1
|
|
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
|
RYUJINX_BASE_VERSION: "1.1.0"
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: 7.0.x
|
|
- name: Get git short hash
|
|
id: git_short_hash
|
|
run: echo "result=$(git rev-parse --short "${{ github.sha }}")" >> $GITHUB_OUTPUT
|
|
shell: bash
|
|
- name: Build
|
|
run: dotnet build -c "${{ matrix.configuration }}" -p:Version="${{ env.RYUJINX_BASE_VERSION }}" -p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" -p:ExtraDefineConstants=DISABLE_UPDATER
|
|
- name: Test
|
|
run: dotnet test --no-build -c "${{ matrix.configuration }}"
|
|
- name: Publish Ryujinx
|
|
run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.DOTNET_RUNTIME_IDENTIFIER }}" -o ./publish -p:Version="${{ env.RYUJINX_BASE_VERSION }}" -p:DebugType=embedded -p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" -p:ExtraDefineConstants=DISABLE_UPDATER Ryujinx --self-contained true
|
|
if: github.event_name == 'pull_request'
|
|
- name: Publish Ryujinx.Headless.SDL2
|
|
run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.DOTNET_RUNTIME_IDENTIFIER }}" -o ./publish_sdl2_headless -p:Version="${{ env.RYUJINX_BASE_VERSION }}" -p:DebugType=embedded -p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" -p:ExtraDefineConstants=DISABLE_UPDATER Ryujinx.Headless.SDL2 --self-contained true
|
|
if: github.event_name == 'pull_request'
|
|
- name: Publish Ryujinx.Ava
|
|
run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.DOTNET_RUNTIME_IDENTIFIER }}" -o ./publish_ava -p:Version="${{ env.RYUJINX_BASE_VERSION }}" -p:DebugType=embedded -p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" -p:ExtraDefineConstants=DISABLE_UPDATER Ryujinx.Ava --self-contained true
|
|
if: github.event_name == 'pull_request'
|
|
- name: Rename Avalonia (Windows)
|
|
run: mv ./publish_ava/Ryujinx.Ava.exe ./publish_ava/Ryujinx.exe
|
|
if: runner.os == 'Windows' && github.event_name == 'pull_request'
|
|
- name: Rename Avalonia (Unix)
|
|
run: mv ./publish_ava/Ryujinx.Ava ./publish_ava/Ryujinx
|
|
if: runner.os != 'Windows' && github.event_name == 'pull_request'
|
|
- name: Upload Ryujinx artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ryujinx-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}-${{ matrix.RELEASE_ZIP_OS_NAME }}
|
|
path: publish
|
|
if: github.event_name == 'pull_request'
|
|
- name: Upload Ryujinx.Headless.SDL2 artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: sdl2-ryujinx-headless-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}-${{ matrix.RELEASE_ZIP_OS_NAME }}
|
|
path: publish_sdl2_headless
|
|
if: github.event_name == 'pull_request'
|
|
- name: Upload Ryujinx.Ava artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ava-ryujinx-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}-${{ matrix.RELEASE_ZIP_OS_NAME }}
|
|
path: publish_ava
|
|
if: github.event_name == 'pull_request'
|