mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-08-19 21:52:22 +00:00
As AppVeyor took our project down and deleted it without any comments, we are switching to GitHub Releases earlier than anticipated. This isn't the most elegant design (and I would have prefered having a release manifest in place) but this will do for now. The concept of release channel was also defined with this change. The new base version is now 1.1.x to avoid confusion with older system. Standard test CI was disabled temporarly and may be chained later as a CI job after the release job. Users are expected to redownload the emulator to be sure to be up to date. PS: If someone from AppVeyor read this, thanks again for ruining my week-end, I will be sure to NEVER recommend you to anyone. Best Regards, Mary.
96 lines
4.7 KiB
YAML
96 lines
4.7 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 }} + 7181))"
|
|
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
|
|
- 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/ryujinx-headless-sdl2-${{ 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
|
|
|
|
- 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/ryujinx-headless-sdl2-${{ 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 }}
|