be1c375589
As GitHub sort our builds in an alphanumeric way, we abuse that to fix both new and old updater behaviour. This should fix all our issues. Avalonia updater will be broken between version 1.1.122 to 1.1.126, and will need manual intervention.
106 lines
5.5 KiB
YAML
106 lines
5.5 KiB
YAML
name: Release job
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs: {}
|
|
push:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- '.github/*'
|
|
- '.github/ISSUE_TEMPLATE/**'
|
|
- '*.yml'
|
|
- 'README.md'
|
|
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: windows-latest
|
|
|
|
env:
|
|
POWERSHELL_TELEMETRY_OPTOUT: 1
|
|
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
|
RYUJINX_BASE_VERSION: "1.1"
|
|
RYUJINX_TARGET_RELEASE_CHANNEL_NAME: "master"
|
|
RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: "Ryujinx"
|
|
RYUJINX_TARGET_RELEASE_CHANNEL_REPO: "release-channel-master"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-dotnet@v1
|
|
with:
|
|
dotnet-version: 6.0.x
|
|
- name: Ensure NuGet Source
|
|
uses: fabriciomurta/ensure-nuget-source@v1
|
|
- name: Clear
|
|
run: dotnet clean && dotnet nuget locals all --clear
|
|
- name: Get version info
|
|
id: version_info
|
|
run: |
|
|
echo "::set-output name=build_version::${{ env.RYUJINX_BASE_VERSION }}.${{ github.run_number }}"
|
|
echo "::set-output name=git_short_hash::$(git rev-parse --short "${{ github.sha }}")"
|
|
shell: bash
|
|
- name: Configure for release
|
|
run: |
|
|
sed -r --in-place 's/\%\%RYUJINX_BUILD_VERSION\%\%/${{ steps.version_info.outputs.build_version }}/g;' Ryujinx.Common/ReleaseInformations.cs
|
|
sed -r --in-place 's/\%\%RYUJINX_BUILD_GIT_HASH\%\%/${{ steps.version_info.outputs.git_short_hash }}/g;' Ryujinx.Common/ReleaseInformations.cs
|
|
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_NAME }}/g;' Ryujinx.Common/ReleaseInformations.cs
|
|
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}/g;' Ryujinx.Common/ReleaseInformations.cs
|
|
sed -r --in-place 's/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}/g;' Ryujinx.Common/ReleaseInformations.cs
|
|
shell: bash
|
|
- name: Create output dir
|
|
run: "mkdir release_output"
|
|
- name: Publish Windows
|
|
run: |
|
|
dotnet publish -c Release -r win-x64 -o ./publish_windows/publish /p:Version="${{ steps.version_info.outputs.build_version }}" /p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" /p:DebugType=embedded Ryujinx --self-contained
|
|
dotnet publish -c Release -r win-x64 -o ./publish_windows_sdl2_headless/publish /p:Version="${{ steps.version_info.outputs.build_version }}" /p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" /p:DebugType=embedded Ryujinx.Headless.SDL2 --self-contained
|
|
dotnet publish -c Release -r win-x64 -o ./publish_windows_ava/publish /p:Version="${{ steps.version_info.outputs.build_version }}" /p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" /p:DebugType=embedded Ryujinx.Ava --self-contained
|
|
- name: Packing Windows builds
|
|
run: |
|
|
pushd publish_windows
|
|
7z a ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-win_x64.zip publish
|
|
popd
|
|
|
|
pushd publish_windows_sdl2_headless
|
|
7z a ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-win_x64.zip publish
|
|
popd
|
|
|
|
pushd publish_windows_ava
|
|
7z a ../release_output/test-ava-ryujinx-${{ steps.version_info.outputs.build_version }}-win_x64.zip publish
|
|
popd
|
|
shell: bash
|
|
|
|
- name: Publish Linux
|
|
run: |
|
|
dotnet publish -c Release -r linux-x64 -o ./publish_linux/publish /p:Version="${{ steps.version_info.outputs.build_version }}" /p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" /p:DebugType=embedded Ryujinx --self-contained
|
|
dotnet publish -c Release -r linux-x64 -o ./publish_linux_sdl2_headless/publish /p:Version="${{ steps.version_info.outputs.build_version }}" /p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" /p:DebugType=embedded Ryujinx.Headless.SDL2 --self-contained
|
|
dotnet publish -c Release -r linux-x64 -o ./publish_linux_ava/publish /p:Version="${{ steps.version_info.outputs.build_version }}" /p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" /p:DebugType=embedded Ryujinx.Ava --self-contained
|
|
|
|
- name: Packing Linux builds
|
|
run: |
|
|
pushd publish_linux
|
|
tar -czvf ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-linux_x64.tar.gz publish
|
|
popd
|
|
|
|
pushd publish_linux_sdl2_headless
|
|
tar -czvf ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-linux_x64.tar.gz publish
|
|
popd
|
|
|
|
pushd publish_linux_ava
|
|
tar -czvf ../release_output/test-ava-ryujinx-${{ steps.version_info.outputs.build_version }}-linux_x64.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"
|
|
tag: ${{ steps.version_info.outputs.build_version }}
|
|
body: "For more informations about this release please check out the official [Changelog](https://github.com/Ryujinx/Ryujinx/wiki/Changelog)."
|
|
allowUpdates: true
|
|
removeArtifacts: true
|
|
replacesArtifacts: true
|
|
owner: ${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_OWNER }}
|
|
repo: ${{ env.RYUJINX_TARGET_RELEASE_CHANNEL_REPO }}
|
|
token: ${{ secrets.RELEASE_TOKEN }}
|