Add an alternative backend parallel compilation queue for macOS #10179
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 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' | |
concurrency: | |
group: pr-checks-${{ github.event.number }} | |
cancel-in-progress: true | |
env: | |
POWERSHELL_TELEMETRY_OPTOUT: 1 | |
DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
RYUJINX_BASE_VERSION: "1.1.0" | |
jobs: | |
build: | |
name: ${{ matrix.OS_NAME }} (${{ matrix.configuration }}) | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 45 | |
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 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-dotnet@v3 | |
with: | |
global-json-file: global.json | |
- 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 src/Ryujinx --self-contained true | |
if: github.event_name == 'pull_request' && matrix.os != 'macOS-latest' | |
- 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 src/Ryujinx.Headless.SDL2 --self-contained true | |
if: github.event_name == 'pull_request' && matrix.os != 'macOS-latest' | |
- 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 src/Ryujinx.Ava --self-contained true | |
if: github.event_name == 'pull_request' && matrix.os != 'macOS-latest' | |
- name: Set executable bit | |
run: | | |
chmod +x ./publish/Ryujinx ./publish/Ryujinx.sh | |
chmod +x ./publish_sdl2_headless/Ryujinx.Headless.SDL2 ./publish_sdl2_headless/Ryujinx.sh | |
chmod +x ./publish_ava/Ryujinx.Ava ./publish_ava/Ryujinx.sh | |
if: github.event_name == 'pull_request' && matrix.os == 'ubuntu-latest' | |
- 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' && matrix.os != 'macOS-latest' | |
- 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' && matrix.os != 'macOS-latest' | |
- 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' && matrix.os != 'macOS-latest' | |
build_macos: | |
name: macOS Universal (${{ matrix.configuration }}) | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
strategy: | |
matrix: | |
configuration: [ Debug, Release ] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-dotnet@v3 | |
with: | |
global-json-file: global.json | |
- name: Setup LLVM 14 | |
run: | | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 14 | |
- name: Install rcodesign | |
run: | | |
mkdir -p $HOME/.bin | |
gh release download -R indygreg/apple-platform-rs -O apple-codesign.tar.gz -p 'apple-codesign-*-x86_64-unknown-linux-musl.tar.gz' | |
tar -xzvf apple-codesign.tar.gz --wildcards '*/rcodesign' --strip-components=1 | |
rm apple-codesign.tar.gz | |
mv rcodesign $HOME/.bin/ | |
echo "$HOME/.bin" >> $GITHUB_PATH | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Get git short hash | |
id: git_short_hash | |
run: echo "result=$(git rev-parse --short "${{ github.sha }}")" >> $GITHUB_OUTPUT | |
- name: Publish macOS | |
run: | | |
./distribution/macos/create_macos_build.sh . publish_tmp publish_ava ./distribution/macos/entitlements.xml "${{ env.RYUJINX_BASE_VERSION }}" "${{ steps.git_short_hash.outputs.result }}" "${{ matrix.configuration }}" "-p:ExtraDefineConstants=DISABLE_UPDATER" | |
- 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 }}-macos_universal | |
path: "publish_ava/*.tar.gz" | |
if: github.event_name == 'pull_request' |