aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorMary <mary@mary.zone>2022-01-22 17:56:09 +0100
committerMary <mary@mary.zone>2022-01-22 17:56:09 +0100
commit23000eeb9a021455e62cfe82c731d9a52f645e34 (patch)
tree976e998bed670fd87b8dd92637f7284868cf1dd5 /.github/workflows
parent646d4dd5c715492a192efa234741ae40b846593f (diff)
Add new release system
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.
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build.yml20
-rw-r--r--.github/workflows/release.yml95
2 files changed, 105 insertions, 10 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ca1e0f1d..3b922cf3 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -3,13 +3,13 @@ name: Build job
on:
workflow_dispatch:
inputs: {}
- push:
- branches: [ master ]
- paths-ignore:
- - '.github/*'
- - '.github/ISSUE_TEMPLATE/**'
- - '*.yml'
- - 'README.md'
+ #push:
+ # branches: [ master ]
+ # paths-ignore:
+ # - '.github/*'
+ # - '.github/ISSUE_TEMPLATE/**'
+ # - '*.yml'
+ # - 'README.md'
pull_request:
branches: [ master ]
paths-ignore:
@@ -59,14 +59,14 @@ jobs:
- name: Clear
run: dotnet clean && dotnet nuget locals all --clear
- name: Build
- run: dotnet build -c "${{ matrix.configuration }}" /p:Version="1.0.0" /p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" /p:ExtraDefineConstants=DISABLE_UPDATER
+ run: dotnet build -c "${{ matrix.configuration }}" /p:Version="1.1.0" /p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" /p:ExtraDefineConstants=DISABLE_UPDATER
- name: Test
run: dotnet test -c "${{ matrix.configuration }}"
- name: Publish Ryujinx
- run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.DOTNET_RUNTIME_IDENTIFIER }}" -o ./publish /p:Version="1.0.0" /p:DebugType=embedded /p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" /p:ExtraDefineConstants=DISABLE_UPDATER Ryujinx --self-contained
+ run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.DOTNET_RUNTIME_IDENTIFIER }}" -o ./publish /p:Version="1.1.0" /p:DebugType=embedded /p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" /p:ExtraDefineConstants=DISABLE_UPDATER Ryujinx --self-contained
if: github.event_name == 'pull_request'
- name: Publish Ryujinx.Headless.SDL2
- run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.DOTNET_RUNTIME_IDENTIFIER }}" -o ./publish_sdl2_headless /p:Version="1.0.0" /p:DebugType=embedded /p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" /p:ExtraDefineConstants=DISABLE_UPDATER Ryujinx.Headless.SDL2 --self-contained
+ run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.DOTNET_RUNTIME_IDENTIFIER }}" -o ./publish_sdl2_headless /p:Version="1.1.0" /p:DebugType=embedded /p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" /p:ExtraDefineConstants=DISABLE_UPDATER Ryujinx.Headless.SDL2 --self-contained
if: github.event_name == 'pull_request'
- name: Upload Ryujinx artifact
uses: actions/upload-artifact@v2
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 00000000..189a17cd
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,95 @@
+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 }}