Deploy experimental release #26
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: Deploy experimental release | |
on: | |
workflow_dispatch: | |
inputs: | |
changelog0: | |
description: 'Enter the changelog lines for this release. Each line is a feature / bullet point. Do not use dash.' | |
required: true | |
type: string | |
changelog1: | |
description: 'Feature 2' | |
required: false | |
type: string | |
changelog2: | |
description: 'Feature 3' | |
required: false | |
type: string | |
changelog3: | |
description: 'Feature 4' | |
required: false | |
type: string | |
changelog4: | |
description: 'Feature 5' | |
required: false | |
type: string | |
changelog5: | |
description: 'Feature 6' | |
required: false | |
type: string | |
changelog6: | |
description: 'Feature 7' | |
required: false | |
type: string | |
changelog7: | |
description: 'Feature 8' | |
required: false | |
type: string | |
changelog8: | |
description: 'Feature 9' | |
required: false | |
type: string | |
changelog9: | |
description: 'Feature 10' | |
required: false | |
type: string | |
jobs: | |
call-release-build: | |
uses: ./.github/workflows/build.yml | |
with: | |
experimentalversion: ${{ github.run_number }} | |
deploy: | |
name: Deploy experimental release | |
runs-on: ubuntu-22.04 | |
needs: call-release-build | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Use GitVersion to generate version | |
id: gitversion | |
uses: gittools/actions/gitversion/[email protected] | |
with: | |
versionSpec: '6.x' | |
- name: Generate changelog | |
id: generate_changelog | |
run: | | |
CHANGELOG="" | |
for i in {0..9}; do | |
LINE_NAME = "INPUT_CHANGELOG$i" | |
LINE=$(eval echo \$$LINE_NAME) | |
if [ ! -z "$LINE" ]; then | |
CHANGELOG="$CHANGELOG - $LINE\n" | |
fi | |
done | |
echo "$CHANGELOG" | |
echo "RELEASE_BODY=$CHANGELOG" >> $GITHUB_ENV | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cemu-bin-linux-x64 | |
path: cemu-bin-linux-x64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cemu-appimage-x64 | |
path: cemu-appimage-x64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cemu-bin-windows-x64 | |
path: cemu-bin-windows-x64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cemu-bin-macos-x64 | |
path: cemu-bin-macos-x64 | |
- name: Initialize | |
run: | | |
mkdir upload | |
sudo apt install zip | |
- name: Get version (via gitversion) | |
run: | | |
echo "Version from GitVersion: ${{ steps.gitversion.outputs.fullsemver }}" | |
echo "Version from GitVersion (Major.Minor): ${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}" | |
echo "CEMU_FOLDER_NAME=Cemu_${{ steps.gitversion.outputs.fullsemver }}" >> $GITHUB_ENV | |
echo "CEMU_VERSION=${{ steps.gitversion.outputs.fullsemver }}" >> $GITHUB_ENV | |
- name: Get version | |
run: | | |
echo "Experimental version: ${{ github.run_number }}" | |
ls | |
gcc -o getversion .github/getversion.cpp | |
./getversion | |
echo "Cemu CI version: $(./getversion)" | |
echo "CEMU_FOLDER_NAME=Cemu_$(./getversion)-${{ github.run_number }}" >> $GITHUB_ENV | |
echo "CEMU_VERSION=$(./getversion)-${{ github.run_number }}" >> $GITHUB_ENV | |
- name: Create release from windows-bin | |
run: | | |
ls ./ | |
ls ./bin/ | |
cp -R ./bin ./${{ env.CEMU_FOLDER_NAME }} | |
mv cemu-bin-windows-x64/Cemu.exe ./${{ env.CEMU_FOLDER_NAME }}/Cemu.exe | |
zip -9 -r upload/cemu-${{ env.CEMU_VERSION }}-windows-x64.zip ${{ env.CEMU_FOLDER_NAME }} | |
rm -r ./${{ env.CEMU_FOLDER_NAME }} | |
- name: Create appimage | |
run: | | |
VERSION=${{ env.CEMU_VERSION }} | |
echo "Cemu Version is $VERSION" | |
ls cemu-appimage-x64 | |
mv cemu-appimage-x64/Cemu-*-x86_64.AppImage upload/Cemu-$VERSION-x86_64.AppImage | |
- name: Create release from linux-bin | |
run: | | |
ls ./ | |
ls ./bin/ | |
cp -R ./bin ./${{ env.CEMU_FOLDER_NAME }} | |
mv cemu-bin-linux-x64/Cemu ./${{ env.CEMU_FOLDER_NAME }}/Cemu | |
zip -9 -r upload/cemu-${{ env.CEMU_VERSION }}-ubuntu-22.04-x64.zip ${{ env.CEMU_FOLDER_NAME }} | |
rm -r ./${{ env.CEMU_FOLDER_NAME }} | |
- name: Create release from macos-bin | |
run: cp cemu-bin-macos-x64/Cemu.dmg upload/cemu-${{ env.CEMU_VERSION }}-macos-12-x64.dmg | |
- name: Create release | |
run: | | |
wget -O ghr.tar.gz https://github.com/tcnksm/ghr/releases/download/v0.15.0/ghr_v0.15.0_linux_amd64.tar.gz | |
tar xvzf ghr.tar.gz; rm ghr.tar.gz | |
echo "[INFO] Release tag: v${{ env.CEMU_VERSION }}" | |
RELEASE_BODY=$(printf "%s\n%s\n\n%s\n\n%s\n%s" \ | |
"Cemu ${{ env.CEMU_VERSION }} (Experimental)" \ | |
"" \ | |
"This is an experimental release." \ | |
"" \ | |
"${{ env.RELEASE_BODY }}") | |
ghr_v0.15.0_linux_amd64/ghr -prerelease -t ${{ secrets.GITHUB_TOKEN }} -n "Cemu ${{ env.CEMU_VERSION }} (Experimental)" -b "$RELEASE_BODY" "v${{ env.CEMU_VERSION }}" ./upload |