UI: Fix logo aliasing #78
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: Release job | |
on: | |
workflow_dispatch: | |
inputs: {} | |
push: | |
branches: [ release ] | |
paths-ignore: | |
- '.github/**' | |
- 'docs/**' | |
- 'assets/**' | |
- '*.yml' | |
- '*.json' | |
- '*.config' | |
- '*.md' | |
concurrency: release | |
env: | |
POWERSHELL_TELEMETRY_OPTOUT: 1 | |
DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
RYUJINX_BASE_VERSION: "1.2" | |
RYUJINX_TARGET_RELEASE_CHANNEL_NAME: "release" | |
RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: "GreemDev" | |
RYUJINX_TARGET_RELEASE_CHANNEL_REPO: "Ryujinx" | |
RELEASE: 1 | |
jobs: | |
tag: | |
name: Create tag | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Get version info | |
id: version_info | |
run: | | |
echo "build_version=${{ env.RYUJINX_BASE_VERSION }}.${{ github.run_number }}" >> $GITHUB_OUTPUT | |
echo "prev_build_version=${{ env.RYUJINX_BASE_VERSION }}.$((${{ github.run_number }} - 1))" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Create tag | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
github.rest.git.createRef({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
ref: 'refs/tags/${{ steps.version_info.outputs.build_version }}', | |
sha: context.sha | |
}) | |
- name: Create release | |
uses: ncipollo/release-action@v1 | |
with: | |
name: ${{ steps.version_info.outputs.build_version }} | |
tag: ${{ steps.version_info.outputs.build_version }} | |
body: | | |
# Regular builds: | |
| Platform | Artifact | | |
|--|--| | |
| Windows 64 bit | [Release Windows Artifact](https://github.com/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-win_x64.zip) | | |
| Linux 64 bit | [Release Linux Artifact](https://github.com/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-linux_x64.tar.gz) | | |
| Linux arm 64 bit | [Release Linux arm Artifact](https://github.com/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-linux_arm64.tar.gz) | | |
| macOS | [Release macOS Artifact](https://github.com/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-macos_universal.app.tar.gz) | | |
**Full Changelog**: https://github.com/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/compare/${{ steps.version_info.outputs.prev_build_version }}...${{ steps.version_info.outputs.build_version }} | |
omitBodyDuringUpdate: true | |
owner: ${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }} | |
repo: ${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }} | |
token: ${{ secrets.RELEASE_TOKEN }} | |
release: | |
name: Release for ${{ matrix.platform.name }} | |
runs-on: ${{ matrix.platform.os }} | |
strategy: | |
matrix: | |
platform: | |
- { name: win-x64, os: windows-latest, zip_os_name: win_x64 } | |
- { name: linux-x64, os: ubuntu-latest, zip_os_name: linux_x64 } | |
- { name: linux-arm64, os: ubuntu-latest, zip_os_name: linux_arm64 } | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-dotnet@v4 | |
with: | |
global-json-file: global.json | |
- name: Overwrite csc problem matcher | |
run: echo "::add-matcher::.github/csc.json" | |
- name: Get version info | |
id: version_info | |
run: | | |
echo "build_version=${{ env.RYUJINX_BASE_VERSION }}.${{ github.run_number }}" >> $GITHUB_OUTPUT | |
echo "prev_build_version=${{ env.RYUJINX_BASE_VERSION }}.$((${{ github.run_number }} - 1))" >> $GITHUB_OUTPUT | |
echo "git_short_hash=$(git rev-parse --short "${{ github.sha }}")" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Configure for release | |
run: | | |
sed -r --in-place 's/\%\%RYUJINX_BUILD_VERSION\%\%/${{ steps.version_info.outputs.build_version }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_BUILD_GIT_HASH\%\%/${{ steps.version_info.outputs.git_short_hash }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_NAME }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_SOURCE_REPO\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_CONFIG_FILE_NAME\%\%/Config\.json/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
shell: bash | |
- name: Create output dir | |
run: "mkdir release_output" | |
- name: Publish | |
run: | | |
dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx --self-contained | |
dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx.Headless.SDL2 --self-contained | |
- name: Packing Windows builds | |
if: matrix.platform.os == 'windows-latest' | |
run: | | |
pushd publish | |
rm libarmeilleure-jitsupport.dylib | |
7z a ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip ../publish | |
popd | |
pushd publish_sdl2_headless | |
rm libarmeilleure-jitsupport.dylib | |
7z a ../release_output/nogui-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip ../publish | |
popd | |
shell: bash | |
- name: Build AppImage (Linux) | |
if: matrix.platform.os == 'ubuntu-latest' | |
run: | | |
BUILD_VERSION="${{ steps.version_info.outputs.build_version }}" | |
PLATFORM_NAME="${{ matrix.platform.name }}" | |
sudo apt install -y zsync desktop-file-utils appstream | |
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 | |
export UFLAG="gh-releases-zsync|${{ github.repository_owner }}|${{ github.event.repository.name }}|latest|*-$ARCH_NAME.AppImage.zsync" | |
BUILDDIR=publish OUTDIR=publish_appimage distribution/linux/appimage/build-appimage.sh | |
pushd publish_appimage | |
mv Ryujinx.AppImage ../release_output/ryujinx-$BUILD_VERSION-$ARCH_NAME.AppImage | |
mv Ryujinx.AppImage.zsync ../release_output/ryujinx-$BUILD_VERSION-$ARCH_NAME.AppImage.zsync | |
popd | |
shell: bash | |
- name: Packing Linux builds | |
if: matrix.platform.os == 'ubuntu-latest' | |
run: | | |
pushd publish | |
chmod +x Ryujinx.sh Ryujinx | |
tar -czvf ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz ../publish | |
popd | |
pushd publish_sdl2_headless | |
chmod +x Ryujinx.sh Ryujinx.Headless.SDL2 | |
tar -czvf ../release_output/nogui-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz ../publish | |
popd | |
shell: bash | |
- name: Pushing new release | |
uses: ncipollo/release-action@v1 | |
with: | |
name: ${{ steps.version_info.outputs.build_version }} | |
artifacts: "release_output/*.tar.gz,release_output/*.zip,release_output/*AppImage*" | |
tag: ${{ steps.version_info.outputs.build_version }} | |
body: | | |
# Regular builds: | |
| Platform | Artifact | | |
|--|--| | |
| Windows 64 bit | https://github.com/${{ github.repository }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-win_x64.zip | | |
| Linux 64 bit | https://github.com/${{ github.repository }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-linux_x64.tar.gz | | |
| Linux arm 64 bit | https://github.com/${{ github.repository }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-linux_arm64.tar.gz | | |
| Macos | https://github.com/${{ github.repository }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-macos_universal.app.tar.gz | | |
"**Full Changelog**: https://github.com/${{ github.repository }}/compare/${{ steps.version_info.outputs.prev_build_version }}...${{ steps.version_info.outputs.build_version }}" | |
omitBodyDuringUpdate: true | |
allowUpdates: true | |
replacesArtifacts: true | |
owner: ${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }} | |
repo: ${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }} | |
token: ${{ secrets.RELEASE_TOKEN }} | |
macos_release: | |
name: Release MacOS universal | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-dotnet@v4 | |
with: | |
global-json-file: global.json | |
- name: Setup LLVM 15 | |
run: | | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 15 | |
- 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 version info | |
id: version_info | |
run: | | |
echo "build_version=${{ env.RYUJINX_BASE_VERSION }}.${{ github.run_number }}" >> $GITHUB_OUTPUT | |
echo "prev_build_version=${{ env.RYUJINX_BASE_VERSION }}.$((${{ github.run_number }} - 1))" >> $GITHUB_OUTPUT | |
echo "git_short_hash=$(git rev-parse --short "${{ github.sha }}")" >> $GITHUB_OUTPUT | |
- name: Configure for release | |
run: | | |
sed -r --in-place 's/\%\%RYUJINX_BUILD_VERSION\%\%/${{ steps.version_info.outputs.build_version }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_BUILD_GIT_HASH\%\%/${{ steps.version_info.outputs.git_short_hash }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_NAME }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_SOURCE_REPO\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
sed -r --in-place 's/\%\%RYUJINX_CONFIG_FILE_NAME\%\%/Config\.json/g;' src/Ryujinx.Common/ReleaseInformation.cs | |
shell: bash | |
- name: Publish macOS Ryujinx | |
run: | | |
./distribution/macos/create_macos_build_ava.sh . publish_tmp_ava publish ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release 0 | |
- name: Publish macOS Ryujinx.Headless.SDL2 | |
run: | | |
./distribution/macos/create_macos_build_headless.sh . publish_tmp_headless publish_headless ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release 0 | |
- name: Pushing new release | |
uses: ncipollo/release-action@v1 | |
with: | |
name: ${{ steps.version_info.outputs.build_version }} | |
artifacts: "publish/*.tar.gz, publish_headless/*.tar.gz" | |
tag: ${{ steps.version_info.outputs.build_version }} | |
body: | | |
# Regular builds: | |
| Platform | Artifact | | |
|--|--| | |
| Windows 64 bit | https://github.com/${{ github.repository }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-win_x64.zip | | |
| Linux 64 bit | https://github.com/${{ github.repository }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-linux_x64.tar.gz | | |
| Linux arm 64 bit | https://github.com/${{ github.repository }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-linux_arm64.tar.gz | | |
| Macos | https://github.com/${{ github.repository }}/releases/download/${{ steps.version_info.outputs.build_version }}/ryujinx-${{ steps.version_info.outputs.build_version }}-macos_universal.app.tar.gz | | |
"**Full Changelog**: https://github.com/${{ github.repository }}/compare/${{ steps.version_info.outputs.prev_build_version }}...${{ steps.version_info.outputs.build_version }}" | |
omitBodyDuringUpdate: true | |
allowUpdates: true | |
replacesArtifacts: true | |
owner: ${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }} | |
repo: ${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }} | |
token: ${{ secrets.RELEASE_TOKEN }} |