mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2025-04-10 19:15:12 +00:00
Merge branch 'main' into cooker
This commit is contained in:
commit
46af970010
36
.github/workflows/build_retrodeck.yml
vendored
36
.github/workflows/build_retrodeck.yml
vendored
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue