mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-05-03 03:45:49 +00:00
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/checkout](https://git.ryujinx.app/actions/checkout) | action | major | `v4` → `v6` | --- ### Release Notes <details> <summary>actions/checkout (actions/checkout)</summary> ### [`v6.0.2`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v602) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v6.0.1...v6.0.2) - Fix tag handling: preserve annotations and explicit fetch-tags by [@​ericsciple](https://github.com/ericsciple) in [#​2356](https://github.com/actions/checkout/pull/2356) ### [`v6.0.1`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v601) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v6...v6.0.1) - Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327) ### [`v6.0.0`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v600) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v6...v6) - Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286) - Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248) ### [`v6`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v602) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v5.0.1...v6) - Fix tag handling: preserve annotations and explicit fetch-tags by [@​ericsciple](https://github.com/ericsciple) in [#​2356](https://github.com/actions/checkout/pull/2356) ### [`v5.0.1`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v501) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v5...v5.0.1) - Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301) ### [`v5.0.0`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v500) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v5...v5) - Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226) ### [`v5`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v501) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.3.1...v5) - Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301) ### [`v4.3.1`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v431) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.3.0...v4.3.1) - Port v6 cleanup to v4 by [@​ericsciple](https://github.com/ericsciple) in [#​2305](https://github.com/actions/checkout/pull/2305) ### [`v4.3.0`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v430) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.2.2...v4.3.0) - docs: update README.md by [@​motss](https://github.com/motss) in [#​1971](https://github.com/actions/checkout/pull/1971) - Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in [#​1977](https://github.com/actions/checkout/pull/1977) - Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in [#​2043](https://github.com/actions/checkout/pull/2043) - Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in [#​2044](https://github.com/actions/checkout/pull/2044) - Update README.md by [@​nebuk89](https://github.com/nebuk89) in [#​2194](https://github.com/actions/checkout/pull/2194) - Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in [#​2224](https://github.com/actions/checkout/pull/2224) - Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in [#​2236](https://github.com/actions/checkout/pull/2236) ### [`v4.2.2`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v422) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.2.1...v4.2.2) - `url-helper.ts` now leverages well-known environment variables by [@​jww3](https://github.com/jww3) in [#​1941](https://github.com/actions/checkout/pull/1941) - Expand unit test coverage for `isGhes` by [@​jww3](https://github.com/jww3) in [#​1946](https://github.com/actions/checkout/pull/1946) ### [`v4.2.1`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v421) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.2.0...v4.2.1) - Check out other refs/\* by commit if provided, fall back to ref by [@​orhantoy](https://github.com/orhantoy) in [#​1924](https://github.com/actions/checkout/pull/1924) ### [`v4.2.0`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v420) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.1.7...v4.2.0) - Add Ref and Commit outputs by [@​lucacome](https://github.com/lucacome) in [#​1180](https://github.com/actions/checkout/pull/1180) - Dependency updates by [@​dependabot-](https://github.com/dependabot-) [#​1777](https://github.com/actions/checkout/pull/1777), [#​1872](https://github.com/actions/checkout/pull/1872) ### [`v4.1.7`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v417) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.1.6...v4.1.7) - Bump the minor-npm-dependencies group across 1 directory with 4 updates by [@​dependabot](https://github.com/dependabot) in [#​1739](https://github.com/actions/checkout/pull/1739) - Bump actions/checkout from 3 to 4 by [@​dependabot](https://github.com/dependabot) in [#​1697](https://github.com/actions/checkout/pull/1697) - Check out other refs/\* by commit by [@​orhantoy](https://github.com/orhantoy) in [#​1774](https://github.com/actions/checkout/pull/1774) - Pin actions/checkout's own workflows to a known, good, stable version. by [@​jww3](https://github.com/jww3) in [#​1776](https://github.com/actions/checkout/pull/1776) ### [`v4.1.6`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v416) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.1.5...v4.1.6) - Check platform to set archive extension appropriately by [@​cory-miller](https://github.com/cory-miller) in [#​1732](https://github.com/actions/checkout/pull/1732) ### [`v4.1.5`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v415) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.1.4...v4.1.5) - Update NPM dependencies by [@​cory-miller](https://github.com/cory-miller) in [#​1703](https://github.com/actions/checkout/pull/1703) - Bump github/codeql-action from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [#​1694](https://github.com/actions/checkout/pull/1694) - Bump actions/setup-node from 1 to 4 by [@​dependabot](https://github.com/dependabot) in [#​1696](https://github.com/actions/checkout/pull/1696) - Bump actions/upload-artifact from 2 to 4 by [@​dependabot](https://github.com/dependabot) in [#​1695](https://github.com/actions/checkout/pull/1695) - README: Suggest `user.email` to be `41898282+github-actions[bot]@​users.noreply.github.com` by [@​cory-miller](https://github.com/cory-miller) in [#​1707](https://github.com/actions/checkout/pull/1707) ### [`v4.1.4`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v414) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.1.3...v4.1.4) - Disable `extensions.worktreeConfig` when disabling `sparse-checkout` by [@​jww3](https://github.com/jww3) in [#​1692](https://github.com/actions/checkout/pull/1692) - Add dependabot config by [@​cory-miller](https://github.com/cory-miller) in [#​1688](https://github.com/actions/checkout/pull/1688) - Bump the minor-actions-dependencies group with 2 updates by [@​dependabot](https://github.com/dependabot) in [#​1693](https://github.com/actions/checkout/pull/1693) - Bump word-wrap from 1.2.3 to 1.2.5 by [@​dependabot](https://github.com/dependabot) in [#​1643](https://github.com/actions/checkout/pull/1643) ### [`v4.1.3`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v413) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.1.2...v4.1.3) - Check git version before attempting to disable `sparse-checkout` by [@​jww3](https://github.com/jww3) in [#​1656](https://github.com/actions/checkout/pull/1656) - Add SSH user parameter by [@​cory-miller](https://github.com/cory-miller) in [#​1685](https://github.com/actions/checkout/pull/1685) - Update `actions/checkout` version in `update-main-version.yml` by [@​jww3](https://github.com/jww3) in [#​1650](https://github.com/actions/checkout/pull/1650) ### [`v4.1.2`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v412) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.1.1...v4.1.2) - Fix: Disable sparse checkout whenever `sparse-checkout` option is not present [@​dscho](https://github.com/dscho) in [#​1598](https://github.com/actions/checkout/pull/1598) ### [`v4.1.1`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v411) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4.1.0...v4.1.1) - Correct link to GitHub Docs by [@​peterbe](https://github.com/peterbe) in [#​1511](https://github.com/actions/checkout/pull/1511) - Link to release page from what's new section by [@​cory-miller](https://github.com/cory-miller) in [#​1514](https://github.com/actions/checkout/pull/1514) ### [`v4.1.0`](https://git.ryujinx.app/actions/checkout/blob/HEAD/CHANGELOG.md#v410) [Compare Source](https://git.ryujinx.app/actions/checkout/compare/v4...v4.1.0) - [Add support for partial checkout filters](https://github.com/actions/checkout/pull/1396) </details> Reviewed-on: https://git.ryujinx.app/projects/Ryubing/pulls/52
205 lines
7.6 KiB
YAML
205 lines
7.6 KiB
YAML
name: Build PR
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ master ]
|
|
paths:
|
|
- '**'
|
|
- '!.forgejo/**'
|
|
- '!*.yml'
|
|
- '!*.config'
|
|
- '!*.md'
|
|
- '.forgejo/workflows/*.yml'
|
|
|
|
env:
|
|
POWERSHELL_TELEMETRY_OPTOUT: 1
|
|
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
|
RELEASE: 0
|
|
|
|
jobs:
|
|
build:
|
|
name: ${{ matrix.platform.name }} (${{ matrix.configuration }})
|
|
runs-on: docker
|
|
container:
|
|
image: ghcr.io/catthehacker/ubuntu:act-latest
|
|
timeout-minutes: 45
|
|
strategy:
|
|
matrix:
|
|
configuration: [Release]
|
|
platform:
|
|
- { name: win-x64, zip_os_name: win_x64 }
|
|
#- { name: win-arm64, zip_os_name: win_arm64 }
|
|
- { name: linux-x64, zip_os_name: linux_x64 }
|
|
- { name: linux-arm64, zip_os_name: linux_arm64 }
|
|
#- { name: osx-x64, zip_os_name: osx_x64 }
|
|
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-dotnet@v4
|
|
with:
|
|
global-json-file: global.json
|
|
|
|
- name: Install GLI
|
|
uses: actions/setup-gli@v1
|
|
with:
|
|
token: ${{ secrets.SETUP_GLI_TOKEN }}
|
|
|
|
- name: Install 7zip
|
|
run: |
|
|
sudo apt update && sudo apt install -y 7zip
|
|
|
|
- name: Overwrite csc problem matcher
|
|
run: echo "::add-matcher::.forgejo/csc.json"
|
|
|
|
- name: Get version info
|
|
id: version_info
|
|
run: |
|
|
echo "result=$(gli get-next-version -c Canary -R)" >> $FORGEJO_OUTPUT
|
|
echo "git_short_hash=$(git rev-parse --short "${{ forgejo.sha }}")" >> $FORGEJO_OUTPUT
|
|
shell: bash
|
|
|
|
- name: Change config filename
|
|
run: sed -r --in-place 's/\%\%RYUJINX_CONFIG_FILE_NAME\%\%/PRConfig\.json/g;' src/Ryujinx.Common/ReleaseInformation.cs
|
|
shell: bash
|
|
if: forgejo.event_name == 'pull_request'
|
|
|
|
- name: 'Cache: ~/.nuget/packages'
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: |
|
|
~/.nuget/packages
|
|
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }}
|
|
|
|
- name: Build
|
|
run: dotnet build -c "${{ matrix.configuration }}" -p:Version="${{ steps.version_info.outputs.result }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:ExtraDefineConstants=DISABLE_UPDATER
|
|
|
|
- name: Test
|
|
uses: actions/unstable-commands@v1
|
|
with:
|
|
commands: dotnet test --no-build -c "${{ matrix.configuration }}"
|
|
timeout-minutes: 10
|
|
retry-codes: 139
|
|
if: matrix.platform.name != 'linux-arm64'
|
|
|
|
- name: Publish Ryujinx
|
|
run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.platform.name }}" -o ./publish -p:Version="${{ steps.version_info.outputs.result }}" -p:DebugType=embedded -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:ExtraDefineConstants=DISABLE_UPDATER src/Ryujinx --self-contained
|
|
if: forgejo.event_name == 'pull_request'
|
|
|
|
- name: Packing Windows builds
|
|
if: contains(matrix.platform.name, 'win')
|
|
run: |
|
|
7z a artifact/ryujinx-${{ matrix.configuration }}-${{ steps.version_info.outputs.result }}+${{ steps.version_info.outputs.git_short_hash }}-${{ matrix.platform.zip_os_name }}.7z publish
|
|
shell: bash
|
|
|
|
- name: Upload Ryujinx Windows artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ryujinx-${{ matrix.configuration }}-${{ steps.version_info.outputs.result }}+${{ steps.version_info.outputs.git_short_hash }}-${{ matrix.platform.zip_os_name }}
|
|
path: artifact
|
|
if: forgejo.event_name == 'pull_request' && contains(matrix.platform.name, 'win')
|
|
|
|
- name: Build AppImage
|
|
if: forgejo.event_name == 'pull_request' && contains(matrix.platform.name, 'linux')
|
|
run: |
|
|
chmod +x ./publish/Ryujinx ./publish/Ryujinx.sh
|
|
|
|
PLATFORM_NAME="${{ matrix.platform.name }}"
|
|
|
|
sudo apt update && sudo apt install -y zsync desktop-file-utils appstream libfuse2t64
|
|
|
|
mkdir -p tools
|
|
export PATH="$PATH:$(readlink -f tools)"
|
|
|
|
# Setup appimagetool
|
|
wget -q -O tools/appimagetool "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage"
|
|
chmod +x tools/appimagetool
|
|
chmod +x distribution/linux/appimage/build-appimage.sh
|
|
|
|
# Explicitly set $ARCH for appimagetool ($ARCH_NAME is for the file name)
|
|
if [ "$PLATFORM_NAME" = "linux-x64" ]; then
|
|
ARCH_NAME=x64
|
|
export ARCH=x86_64
|
|
elif [ "$PLATFORM_NAME" = "linux-arm64" ]; then
|
|
ARCH_NAME=arm64
|
|
export ARCH=aarch64
|
|
else
|
|
echo "Unexpected PLATFORM_NAME "$PLATFORM_NAME""
|
|
exit 1
|
|
fi
|
|
|
|
BUILDDIR=publish OUTDIR=publish_appimage distribution/linux/appimage/build-appimage.sh
|
|
shell: bash
|
|
|
|
- name: Upload Ryujinx AppImage artifact
|
|
uses: actions/upload-artifact@v4
|
|
if: forgejo.event_name == 'pull_request' && contains(matrix.platform.name, 'linux')
|
|
with:
|
|
name: ryujinx-${{ matrix.configuration }}-${{ steps.version_info.outputs.result }}+${{ steps.version_info.outputs.git_short_hash }}-${{ matrix.platform.zip_os_name }}-AppImage
|
|
path: publish_appimage
|
|
|
|
build_macos:
|
|
name: macOS Universal (${{ matrix.configuration }})
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 45
|
|
strategy:
|
|
matrix:
|
|
configuration: [ Release ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-dotnet@v4
|
|
with:
|
|
global-json-file: global.json
|
|
|
|
- name: Setup LLVM 17
|
|
run: |
|
|
wget https://apt.llvm.org/llvm.sh
|
|
chmod +x llvm.sh
|
|
sudo ./llvm.sh 17
|
|
|
|
- name: Install GLI
|
|
uses: actions/setup-gli@v1
|
|
with:
|
|
token: ${{ secrets.SETUP_GLI_TOKEN }}
|
|
|
|
- name: Install rcodesign
|
|
run: |
|
|
gli ghr -R indygreg/apple-platform-rs -p apple-codesign-*-x86_64-unknown-linux-musl.tar.gz -O apple-codesign.tar.gz
|
|
tar -xzvf apple-codesign.tar.gz --wildcards '*/rcodesign' --strip-components=1
|
|
rm apple-codesign.tar.gz
|
|
sudo mv rcodesign /usr/bin/rcodesign
|
|
|
|
- name: Get version info
|
|
id: version_info
|
|
run: |
|
|
echo "result=$(gli get-next-version -c Stable -R)" >> $FORGEJO_OUTPUT
|
|
echo "git_short_hash=$(git rev-parse --short "${{ forgejo.sha }}")" >> $FORGEJO_OUTPUT
|
|
shell: bash
|
|
|
|
- name: Change config filename
|
|
run: sed -r --in-place 's/\%\%RYUJINX_CONFIG_FILE_NAME\%\%/PRConfig\.json/g;' src/Ryujinx.Common/ReleaseInformation.cs
|
|
shell: bash
|
|
if: forgejo.event_name == 'pull_request'
|
|
|
|
- name: 'Cache: ~/.nuget/packages'
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: |
|
|
~/.nuget/packages
|
|
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }}
|
|
|
|
- name: Publish macOS Ryujinx
|
|
run: |
|
|
bash distribution/macos/create_macos_pr_build_ava.sh . publish_tmp publish ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.result }}" "${{ steps.version_info.outputs.git_short_hash }}" "${{ matrix.configuration }}" "-p:ExtraDefineConstants=DISABLE_UPDATER"
|
|
shell: bash
|
|
|
|
- name: Upload Ryujinx artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ryujinx-${{ matrix.configuration }}-${{ steps.version_info.outputs.result }}+${{ steps.version_info.outputs.git_short_hash }}-macos_universal
|
|
path: "publish/*.tar.gz"
|
|
if: forgejo.event_name == 'pull_request'
|