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
34
.github/workflows/build_retrodeck.yml
vendored
34
.github/workflows/build_retrodeck.yml
vendored
|
@ -278,6 +278,21 @@ jobs:
|
||||||
- name: Create Bundle
|
- name: Create Bundle
|
||||||
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
|
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
|
# Upload artifacts for other jobs
|
||||||
- name: Upload Build Artifacts
|
- name: Upload Build Artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
@ -287,7 +302,8 @@ jobs:
|
||||||
path: |
|
path: |
|
||||||
RetroDECK*.flatpak
|
RetroDECK*.flatpak
|
||||||
RetroDECK*.flatpak.sha
|
RetroDECK*.flatpak.sha
|
||||||
RetroDECK*Artifact.tar.gz
|
RetroDECK-Artifact*.tar.gz
|
||||||
|
RetroDECK-Artifact*.sha
|
||||||
|
|
||||||
GitHub-publish:
|
GitHub-publish:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -304,7 +320,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
app-id: ${{ vars.REKKU_APP_ID }}
|
app-id: ${{ vars.REKKU_APP_ID }}
|
||||||
private-key: ${{ secrets.REKKU_PRIVATE_KEY }}
|
private-key: ${{ secrets.REKKU_PRIVATE_KEY }}
|
||||||
repositories: "RetroDECK,Cooker"
|
repositories: "RetroDECK,Cooker,Artifacts"
|
||||||
owner: "RetroDECK"
|
owner: "RetroDECK"
|
||||||
|
|
||||||
- name: Download all workflow run artifacts
|
- name: Download all workflow run artifacts
|
||||||
|
@ -334,6 +350,20 @@ jobs:
|
||||||
repo: ${{ env.REPO_NAME }}
|
repo: ${{ env.REPO_NAME }}
|
||||||
token: ${{ steps.generate-rekku-token.outputs.token }}
|
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
|
- name: Post PR comment with artifacts
|
||||||
if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request'
|
||||||
uses: marocchino/sticky-pull-request-comment@v2
|
uses: marocchino/sticky-pull-request-comment@v2
|
||||||
|
|
|
@ -1,51 +1,60 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# EDITABLES:
|
# Check if GITHUB_WORKSPACE is set, if not, set gits_folder to /tmp/gits
|
||||||
#rd_branch=${GITHUB_REF_NAME} # should be main
|
|
||||||
|
|
||||||
if [ -z "${GITHUB_WORKSPACE}" ]; then
|
if [ -z "${GITHUB_WORKSPACE}" ]; then
|
||||||
gits_folder="${GITHUB_WORKSPACE}/tmp/gits" # without last /
|
gits_folder="${GITHUB_WORKSPACE}/tmp/gits" # without last /
|
||||||
else
|
else
|
||||||
gits_folder="/tmp/gits" # without last /
|
gits_folder="/tmp/gits" # without last /
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
rd_branch="main"
|
rd_branch="main"
|
||||||
flathub_target_repo='flathub/net.retrodeck.retrodeck'
|
flathub_target_repo='flathub/net.retrodeck.retrodeck'
|
||||||
retrodeck_repo='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"
|
rm -rf "$gits_folder"
|
||||||
fi
|
fi
|
||||||
mkdir -vp "$gits_folder"
|
mkdir -vp "$gits_folder"
|
||||||
cd "$gits_folder" && echo "Moving in $gits_folder" || exit 1
|
cd "$gits_folder" && echo "Moving in $gits_folder" || exit 1
|
||||||
|
|
||||||
|
# Remove existing flathub and RetroDECK directories if they exist
|
||||||
if [ -d flathub ]; then
|
if [ -d flathub ]; then
|
||||||
rm -rf "$gits_folder/flathub"
|
rm -rf "$gits_folder/flathub"
|
||||||
fi
|
fi
|
||||||
if [ -d flathub ]; then
|
if [ -d flathub ]; then
|
||||||
rm -rf "$gits_folder/RetroDECK"
|
rm -rf "$gits_folder/RetroDECK"
|
||||||
fi
|
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/$flathub_target_repo.git" "$gits_folder/flathub"
|
||||||
git clone --depth=1 --recursive "https://github.com/$retrodeck_repo.git" "$gits_folder/RetroDECK"
|
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
|
if [ -z "$relname" ]; then
|
||||||
relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases/latest | jq -r .tag_name)
|
relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases/latest | jq -r .tag_name)
|
||||||
fi
|
fi
|
||||||
echo "Using release: $relname"
|
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"
|
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
|
cd "$gits_folder"/flathub && echo "Moving in $gits_folder/flathub" || exit 1
|
||||||
git checkout -b "$relname"
|
git checkout -b "$relname"
|
||||||
echo "Current directory: $(pwd)"
|
echo "Current directory: $(pwd)"
|
||||||
ls -lah
|
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')
|
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
|
for file in "${files_to_copy[@]}"; do
|
||||||
if ! cp -fv "$gits_folder/RetroDECK/$file" "$gits_folder/flathub"; then
|
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
|
cd "$gits_folder/flathub" && echo "Moving in $gits_folder/flathub" || exit 1
|
||||||
ls -lah
|
ls -lah
|
||||||
|
|
||||||
# Creating the manifest for flathub
|
# Create the manifest for flathub
|
||||||
manifest='net.retrodeck.retrodeck.yml'
|
manifest='net.retrodeck.retrodeck.yml'
|
||||||
sed -n '/cleanup:/q;p' $gits_folder/RetroDECK/net.retrodeck.retrodeck.yml > $manifest
|
sed -n '/cleanup:/q;p' $gits_folder/RetroDECK/net.retrodeck.retrodeck.yml > $manifest
|
||||||
sed -i '/^[[:space:]]*#/d' $manifest
|
sed -i '/^[[:space:]]*#/d' $manifest
|
||||||
|
@ -74,18 +83,20 @@ modules:
|
||||||
sha256: $(curl -sL "$artifacts_sha_link")
|
sha256: $(curl -sL "$artifacts_sha_link")
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# Create a flathub.json file specifying the architecture
|
||||||
cat << EOF >> flathub.json
|
cat << EOF >> flathub.json
|
||||||
{
|
{
|
||||||
"only-arches": ["x86_64"]
|
"only-arches": ["x86_64"]
|
||||||
}
|
}
|
||||||
EOF
|
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
|
if [ -n "${GITHUB_WORKFLOW}" ]; then
|
||||||
git config --global user.name "$GIT_NAME"
|
git config --global user.name "$GIT_NAME"
|
||||||
git config --global user.email "$GIT_MAIL"
|
git config --global user.email "$GIT_MAIL"
|
||||||
git config --global credential.helper store
|
git config --global credential.helper store
|
||||||
gh auth login
|
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
|
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
|
read -p "No git user.name set, please enter your name: " git_username
|
||||||
git config --local user.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"
|
git config --local user.email "$git_email"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Commit the changes and push to the new branch
|
||||||
git add .
|
git add .
|
||||||
git commit -m "Update RetroDECK to v$relname from RetroDECK/$rd_branch"
|
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
|
if [ -n "${GITHUB_WORKFLOW}" ]; then
|
||||||
git remote set-url origin https://x-access-token:${GH_TOKEN}@github.com/${flathub_target_repo}
|
git remote set-url origin https://x-access-token:${GH_TOKEN}@github.com/${flathub_target_repo}
|
||||||
git push --force origin "$relname"
|
git push --force origin "$relname"
|
||||||
|
|
|
@ -36,29 +36,22 @@
|
||||||
</screenshot>
|
</screenshot>
|
||||||
</screenshots>
|
</screenshots>
|
||||||
<description>
|
<description>
|
||||||
<p>What is Retrodeck?</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>RetroDECK is an emulation and retro gaming solution to catalog and play your game collection directly from Linux in one unified application.
|
<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>
|
||||||
It's inspired by other embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera.
|
<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>
|
||||||
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.
|
<p>What is it in detail?
|
||||||
No other software is needed as everything it's already included in one package!</p>
|
https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/</p>
|
||||||
<p>BETA NOTICE: RetroDECK is still in Beta and the team is actively developing and adding more features.
|
<p>How-to: Get Started using RetroDECK
|
||||||
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>
|
https://retrodeck.readthedocs.io/en/latest/wiki_general/retrodeck-start/</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>If you want to sponsor the project:
|
<p>If you want to sponsor the project:
|
||||||
https://www.patreon.com/RetroDECK</p>
|
https://www.patreon.com/RetroDECK</p>
|
||||||
<p>If you want to join the RetroDECK community check our:</p>
|
<p>The RetroDECK Community:</p>
|
||||||
<p>Reddit: https://www.reddit.com/r/RetroDECK/</p>
|
<p>Blog: https://retrodeck.readthedocs.io/en/latest/blog/</p>
|
||||||
<p>Discord: https://discord.gg/WDc5C9YWMx
|
<p>Discord: https://discord.gg/WDc5C9YWMx</p>
|
||||||
(If you want to help out with the project join the "i-want-to-help" channel)</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>
|
</description>
|
||||||
<branding>
|
<branding>
|
||||||
<color type="primary" scheme_preference="light">#94a6fb</color>
|
<color type="primary" scheme_preference="light">#94a6fb</color>
|
||||||
|
@ -73,7 +66,7 @@
|
||||||
<p>Welcome to RetroDECK cooker-0.9.1b</p>
|
<p>Welcome to RetroDECK cooker-0.9.1b</p>
|
||||||
</description>
|
</description>
|
||||||
</release>
|
</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>
|
<url>https://github.com/RetroDECK/RetroDECK/releases/tag/0.9.0b</url>
|
||||||
<description>
|
<description>
|
||||||
<p>New Additions:</p>
|
<p>New Additions:</p>
|
||||||
|
|
Loading…
Reference in a new issue