Deploy experimental release #22
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: | |
changelog: | |
description: 'Enter the changelog for this release' | |
required: true | |
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@v3 | |
- name: Use GitVersion to generate version | |
id: gitversion | |
uses: gittools/actions/gitversion/[email protected] | |
with: | |
useConfigFile: false | |
- name: Get commit messages since last release | |
id: get_commits | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const releases = await github.rest.repos.listReleases({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
}); | |
if (!releases.data.length) { | |
console.log("No releases found."); | |
return "No previous release found."; | |
} | |
const latestRelease = releases.data[0]; | |
console.log(`Latest release found: ${latestRelease.tag_name} published at ${latestRelease.published_at}`); | |
const { data: commits } = await github.rest.repos.listCommits({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
since: latestRelease.published_at, | |
}); | |
const commitTitles = commits.map(commit => `- ${commit.commit.message.split('\n')[0]}`).join('\n'); | |
return commitTitles; | |
result-encoding: string | |
- 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." \ | |
"" \ | |
"${{ github.event.inputs.changelog }}") | |
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 |