Deploy experimental release #58
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: | |
calculate-version: | |
name: Calculate Version | |
uses: ./.github/workflows/determine_release_version.yml | |
call-release-build: | |
uses: ./.github/workflows/build.yml | |
needs: calculate-version | |
with: | |
next_version_major: ${{ needs.calculate-version.outputs.next_version_major }} | |
next_version_minor: ${{ needs.calculate-version.outputs.next_version_minor }} | |
deploy: | |
name: Deploy experimental release | |
runs-on: ubuntu-22.04 | |
needs: [call-release-build, calculate-version] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Generate changelog | |
id: generate_changelog | |
run: | | |
CHANGELOG="" | |
if [ -n "${{ github.event.inputs.changelog0 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog0 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog1 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog1 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog2 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog2 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog3 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog3 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog4 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog4 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog5 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog5 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog6 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog6 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog7 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog7 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog8 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog8 }}\n"; fi | |
if [ -n "${{ github.event.inputs.changelog9 }}" ]; then CHANGELOG="$CHANGELOG- ${{ github.event.inputs.changelog9 }}\n"; fi | |
echo -e "$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: Set version dependent vars | |
run: | | |
echo "Version: ${{ needs.calculate-version.outputs.next_version }}" | |
echo "CEMU_FOLDER_NAME=Cemu_${{ needs.calculate-version.outputs.next_version }}" | |
echo "CEMU_VERSION=${{ needs.calculate-version.outputs.next_version }}" | |
echo "CEMU_FOLDER_NAME=Cemu_${{ needs.calculate-version.outputs.next_version }}" >> $GITHUB_ENV | |
echo "CEMU_VERSION=${{ needs.calculate-version.outputs.next_version }}" >> $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 }}" | |
CHANGELOG_UNESCAPED=$(printf "%s\n" "${{ env.RELEASE_BODY }}" | sed 's/\\n/\n/g') | |
RELEASE_BODY=$(printf "%s\n%s" \ | |
"**Changelog:**" \ | |
"$CHANGELOG_UNESCAPED") | |
ghr_v0.15.0_linux_amd64/ghr -draft -t ${{ secrets.GITHUB_TOKEN }} -n "Cemu ${{ env.CEMU_VERSION }}" -b "$RELEASE_BODY" "v${{ env.CEMU_VERSION }}" ./upload |