Merge branch 'main' into cooker

This commit is contained in:
XargonWan 2025-02-05 09:23:42 +09:00
commit 46af970010
3 changed files with 74 additions and 38 deletions

View file

@ -278,6 +278,21 @@ jobs:
- name: Create Bundle
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
# TODO: Until we add support for Flathub-beta this is restricted to main
- name: Create Artifact for Flathub
if: github.ref == 'refs/heads/main'
run: |
if [[ "$GITHUB_REF" == "refs/heads/main" ]]; then
artifact_name="RetroDECK-Artifact"
artifact_folder="retrodeck-flatpak-main"
else
artifact_name="RetroDECK-Artifact-cooker"
artifact_folder="retrodeck-flatpak-cooker"
fi
tar -czf ${GITHUB_WORKSPACE}/${artifact_name}.tar.gz -C ${GITHUB_WORKSPACE}/"$artifact_folder" .
hash=($(sha256sum ${GITHUB_WORKSPACE}/${artifact_name}.tar.gz))
echo $hash > ${GITHUB_WORKSPACE}/${artifact_name}.sha
# Upload artifacts for other jobs
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
@ -287,7 +302,8 @@ jobs:
path: |
RetroDECK*.flatpak
RetroDECK*.flatpak.sha
RetroDECK*Artifact.tar.gz
RetroDECK-Artifact*.tar.gz
RetroDECK-Artifact*.sha
GitHub-publish:
runs-on: ubuntu-latest
@ -304,7 +320,7 @@ jobs:
with:
app-id: ${{ vars.REKKU_APP_ID }}
private-key: ${{ secrets.REKKU_PRIVATE_KEY }}
repositories: "RetroDECK,Cooker"
repositories: "RetroDECK,Cooker,Artifacts"
owner: "RetroDECK"
- name: Download all workflow run artifacts
@ -334,6 +350,20 @@ jobs:
repo: ${{ env.REPO_NAME }}
token: ${{ steps.generate-rekku-token.outputs.token }}
# Publish Artifacts
- name: Publish Artifacts
uses: ncipollo/release-action@v1
with:
tag: ${{ env.TAG }}
name: "RetroDECK Artifacts - ${{ env.TAG }}"
body: "Flathub artifacts for version ${{ env.TAG }}"
artifacts: "retrodeck-artifacts/RetroDECK-Artifact*.tar.gz,retrodeck-artifacts/RetroDECK-Artifact*.sha"
allowUpdates: true
omitBodyDuringUpdate: true
makeLatest: ${{ env.MAKE_LATEST }}
repo: Artifacts
token: ${{ steps.generate-rekku-token.outputs.token }}
- name: Post PR comment with artifacts
if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request'
uses: marocchino/sticky-pull-request-comment@v2
@ -434,4 +464,4 @@ jobs:
# Uninstall RetroDECK Flatpak - Not needed on a thorwaway ubuntu-latest
# - name: Uninstall RetroDECK Flatpak
# run: |
# flatpak remove --user --noninteractive -y net.retrodeck.retrodeck
# flatpak remove --user --noninteractive -y net.retrodeck.retrodeck

View file

@ -1,51 +1,60 @@
#!/bin/bash
# EDITABLES:
#rd_branch=${GITHUB_REF_NAME} # should be main
# Check if GITHUB_WORKSPACE is set, if not, set gits_folder to /tmp/gits
if [ -z "${GITHUB_WORKSPACE}" ]; then
gits_folder="${GITHUB_WORKSPACE}/tmp/gits" # without last /
else
gits_folder="/tmp/gits" # without last /
fi
rd_branch="main"
flathub_target_repo='flathub/net.retrodeck.retrodeck'
retrodeck_repo='RetroDECK/RetroDECK'
artifacts_sha_link="https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.sha"
artifacts_link="https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.tar.gz"
if -d "$gits_folder"; then
# Get the latest artifact SHA and download URL from the RetroDECK Artifacts repository
artifacts_sha_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifact.sha").browser_download_url')
artifacts_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifact.tar.gz").browser_download_url')
# Remove existing gits_folder if it exists and create a new one
if [ -d "$gits_folder" ] ; then
rm -rf "$gits_folder"
fi
mkdir -vp "$gits_folder"
cd "$gits_folder" && echo "Moving in $gits_folder" || exit 1
# Remove existing flathub and RetroDECK directories if they exist
if [ -d flathub ]; then
rm -rf "$gits_folder/flathub"
fi
if [ -d flathub ]; then
rm -rf "$gits_folder/RetroDECK"
fi
# Clone the flathub and RetroDECK repositories
git clone --depth=1 --recursive "https://github.com/$flathub_target_repo.git" "$gits_folder/flathub"
git clone --depth=1 --recursive "https://github.com/$retrodeck_repo.git" "$gits_folder/RetroDECK"
relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases | jq -r '[.[] | select(.prerelease == true)][0].tag_name // empty')
# Get the latest release name, preferring prereleases if available and published after 2025-01-01
relname=$(curl -s "https://api.github.com/repos/$retrodeck_repo/releases" | jq -r '[.[] | select(.prerelease == true and (.published_at | fromdateiso8601) > 1735689600)][0].tag_name // empty')
if [ -z "$relname" ]; then
relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases/latest | jq -r .tag_name)
fi
echo "Using release: $relname"
# Checkout the main branch in the RetroDECK repository
cd "$gits_folder/RetroDECK" && echo "Moving in $gits_folder/RetroDECK" && git checkout "$rd_branch"
# Create a new branch in the flathub repository with the release name
cd "$gits_folder"/flathub && echo "Moving in $gits_folder/flathub" || exit 1
git checkout -b "$relname"
echo "Current directory: $(pwd)"
ls -lah
git rm -rf *
git clean -fxd # restroing git index
# Copying only a few files as the others are cloned by git in retrodeck.sh
# Remove all files in the flathub repository and clean the git index
git rm -rf *
git clean -fxd # restoring git index
# Copy specific files from the RetroDECK repository to the flathub repository
files_to_copy=('LICENSE' 'README.md' 'other_licenses.txt' 'net.retrodeck.retrodeck.yml' 'net.retrodeck.retrodeck.metainfo.xml')
for file in "${files_to_copy[@]}"; do
if ! cp -fv "$gits_folder/RetroDECK/$file" "$gits_folder/flathub"; then
@ -56,7 +65,7 @@ done
cd "$gits_folder/flathub" && echo "Moving in $gits_folder/flathub" || exit 1
ls -lah
# Creating the manifest for flathub
# Create the manifest for flathub
manifest='net.retrodeck.retrodeck.yml'
sed -n '/cleanup:/q;p' $gits_folder/RetroDECK/net.retrodeck.retrodeck.yml > $manifest
sed -i '/^[[:space:]]*#/d' $manifest
@ -74,18 +83,20 @@ modules:
sha256: $(curl -sL "$artifacts_sha_link")
EOF
# Create a flathub.json file specifying the architecture
cat << EOF >> flathub.json
{
"only-arches": ["x86_64"]
}
EOF
# If we are in a GitHub workflow...
# If running in a GitHub workflow, configure git and authenticate with GitHub
if [ -n "${GITHUB_WORKFLOW}" ]; then
git config --global user.name "$GIT_NAME"
git config --global user.email "$GIT_MAIL"
git config --global credential.helper store
gh auth login
# If not in a GitHub workflow, prompt the user for git configuration if not already set
elif [[ -z $(git config --get user.name) || -z $(git config --get user.email) ]]; then
read -p "No git user.name set, please enter your name: " git_username
git config --local user.name "$git_username"
@ -93,9 +104,11 @@ elif [[ -z $(git config --get user.name) || -z $(git config --get user.email) ]]
git config --local user.email "$git_email"
fi
# Commit the changes and push to the new branch
git add .
git commit -m "Update RetroDECK to v$relname from RetroDECK/$rd_branch"
# Push the changes to the remote repository, using authentication if in a GitHub workflow
if [ -n "${GITHUB_WORKFLOW}" ]; then
git remote set-url origin https://x-access-token:${GH_TOKEN}@github.com/${flathub_target_repo}
git push --force origin "$relname"

View file

@ -36,29 +36,22 @@
</screenshot>
</screenshots>
<description>
<p>What is Retrodeck?</p>
<p>RetroDECK is an emulation and retro gaming solution to catalog and play your game collection directly from Linux in one unified application.
It's inspired by other embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera.
RetroDECK is powered by EmulationStation Desktop Edition, that uses RetroArch and other standalone emulators to allow you to import and play your favorite games in a tidy environment.
No other software is needed as everything it's already included in one package!</p>
<p>BETA NOTICE: RetroDECK is still in Beta and the team is actively developing and adding more features.
The primary focus during the beta period is on SteamOS and the Steam Deck but we hope to expand to more devices and general Linux desktop in the future</p>
<p>NOTE: It can be run on Linux desktop right now but there will be some manual configurations needed for input, storage location and other tiny hickups.</p>
<p>
INSTALLATION INSTRUCTIONS FOR THE STEAM DECK:
1. Start RetroDECK from the Desktop mode (only needed for the initial first time configuration)
2. Add RetroDECK to your Steam Library by pressing "Add a non-steam game to my library"
3. Download the offical RetroDECK controller profile from Steam
4. [OPTIONAL] Download Steam Grids graphics for RetroDECK with BoilR
</p>
<p>For more detailed information check our wiki:
https://github.com/RetroDECK/RetroDECK/wiki</p>
<p>RetroDECK is an emulation and retro gaming application powered by the ES-DE Frontend that allows you to catalog and play your game collection directly on Linux in one unified experience. It's inspired by other embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera. The goal is to have everything you need included in one package, so no other software is required.</p>
<p>Currently in Beta, RetroDECK focuses on SteamOS, Steam Deck, and Linux Desktop. It uses Steam Input for controller inputs and hotkeys. For the best experience, play and launch RetroDECK via Steam, though manual tweaks via RetroDECK Configurator may be needed if played without it.</p>
<p>Thanks to the built-in RetroENGINE, RetroDECK can be used as a headless engine, and with Steam Sync, you can synchronize your favorites as non-Steam games (powered by Steam ROM Manager).</p>
<p>What is it in detail?
https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/</p>
<p>How-to: Get Started using RetroDECK
https://retrodeck.readthedocs.io/en/latest/wiki_general/retrodeck-start/</p>
<p>If you want to sponsor the project:
https://www.patreon.com/RetroDECK</p>
<p>If you want to join the RetroDECK community check our:</p>
<p>Reddit: https://www.reddit.com/r/RetroDECK/</p>
<p>Discord: https://discord.gg/WDc5C9YWMx
(If you want to help out with the project join the "i-want-to-help" channel)</p>
<p>The RetroDECK Community:</p>
<p>Blog: https://retrodeck.readthedocs.io/en/latest/blog/</p>
<p>Discord: https://discord.gg/WDc5C9YWMx</p>
<p>Matrix: https://matrix.to/#/#retrodeck:matrix.org</p>
<p>Lemmy Community: https://lemmy.zip/c/retrodeck</p>
<p>Subreddit: https://www.reddit.com/r/retrodeck</p>
<p>Bluesky: https://bsky.app/profile/retrodeck.net</p>
</description>
<branding>
<color type="primary" scheme_preference="light">#94a6fb</color>
@ -73,7 +66,7 @@
<p>Welcome to RetroDECK cooker-0.9.1b</p>
</description>
</release>
<release version="0.9.0b" date="2025-01-31">
<release version="0.9.0b" date="2025-02-04">
<url>https://github.com/RetroDECK/RetroDECK/releases/tag/0.9.0b</url>
<description>
<p>New Additions:</p>