Deploy experimental release #15
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: | |
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: Get commit messages since last release | |
id: get_commits | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const { data: releases } = await github.rest.repos.listReleases({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
}); | |
if (!releases.length) { | |
console.log("No releases found."); | |
return "No previous release found."; | |
} | |
const latestRelease = releases[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 | |
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 }}" | |
ghr_v0.15.0_linux_amd64/ghr -prerelease -t ${{ secrets.GITHUB_TOKEN }} -n "Cemu ${{ env.CEMU_VERSION }} (Experimental)" -b "Cemu experimental release\n\nCommit messages since last release:\n${{ steps.get_commits.outputs.result }}" "v${{ env.CEMU_VERSION }}" ./upload |