mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-22 14:05:39 +00:00
Merge branch 'cooker' into feat/godot
This commit is contained in:
commit
24af607de1
30
.github/workflows/cooker-selfhosted.yml
vendored
30
.github/workflows/cooker-selfhosted.yml
vendored
|
@ -5,19 +5,17 @@ on:
|
|||
branches:
|
||||
- cooker*
|
||||
- feat*
|
||||
- branch/cooker*
|
||||
paths:
|
||||
- '.github/workflows/**'
|
||||
- 'automation_tools/**'
|
||||
- 'config/**'
|
||||
- 'config/es-de/**'
|
||||
- 'functions/**'
|
||||
- 'rd-submodules/**'
|
||||
- '*.sh'
|
||||
- 'net.retrodeck.retrodeck.yml'
|
||||
- 'net.retrodeck.retrodeck.appdata.xml'
|
||||
pull_request_target:
|
||||
branches:
|
||||
- cooker*
|
||||
pull_request:
|
||||
|
||||
# Italy (CET): 11:00 PM
|
||||
# Japan (JST): 7:00 AM
|
||||
|
@ -33,7 +31,7 @@ jobs:
|
|||
|
||||
Building_RetroDECK:
|
||||
runs-on: retrodeck
|
||||
steps:
|
||||
steps:
|
||||
|
||||
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
|
||||
- name: Remove stuck mounts
|
||||
|
@ -43,6 +41,7 @@ jobs:
|
|||
continue-on-error: true
|
||||
|
||||
- name: Generate a token for Rekku
|
||||
if: ${{ github.repository == 'RetroDECK/RetroDECK' }}
|
||||
id: generate-rekku-token
|
||||
uses: actions/create-github-app-token@v1
|
||||
with:
|
||||
|
@ -55,7 +54,7 @@ jobs:
|
|||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
|
||||
- name: "Install dependencies"
|
||||
run: "automation_tools/install_dependencies.sh"
|
||||
|
||||
|
@ -86,14 +85,20 @@ jobs:
|
|||
# Use GITHUB_HEAD_REF to get the source branch
|
||||
source_branch="${GITHUB_HEAD_REF}"
|
||||
|
||||
# Replace '/' with '-' in the branch name
|
||||
source_branch=${source_branch//\//-}
|
||||
# Use GITHUB_HEAD_REF to get the source branch
|
||||
source_branch="${GITHUB_HEAD_REF}"
|
||||
|
||||
# Replace '/' with '-' in the branch name
|
||||
source_branch=${source_branch//\//-}
|
||||
echo "[DEBUG] source branch is: $source_branch"
|
||||
|
||||
# Generate the tag for a pull request
|
||||
echo "TAG=PR-$GITHUB_RUN_ID-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
|
||||
echo "TAG=PR-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
|
||||
echo "MAKE_LATEST=false" >> $GITHUB_ENV # Not marked as the latest cooker version if it's a feature branch
|
||||
else
|
||||
# Generate the tag for non-pull request branches
|
||||
# Generate the tag for non-pull request branches
|
||||
TAG="$MANIFEST_VERSION-${{ env.buildid }}"
|
||||
echo "TAG=$TAG" >> $GITHUB_ENV
|
||||
|
@ -178,10 +183,11 @@ jobs:
|
|||
allowUpdates: true
|
||||
makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build
|
||||
token: ${{ steps.generate-rekku-token.outputs.token }}
|
||||
repo: Cooker
|
||||
repo: ${{ github.repository_owner == 'RetroDECK' && 'Cooker' || github.event.repository.name }} # "Cooker" if we are in RetroDECK Org, else "this repo"
|
||||
continue-on-error: true
|
||||
|
||||
- name: Rewrite Tag
|
||||
if: ${{ github.repository == 'RetroDECK/RetroDECK' }}
|
||||
run: |
|
||||
git submodule deinit -f --all
|
||||
git fetch --tags
|
||||
|
@ -204,14 +210,6 @@ jobs:
|
|||
path: RetroDECK-cooker.flatpak
|
||||
continue-on-error: true
|
||||
|
||||
- name: Create Artifact for flathub
|
||||
run: |
|
||||
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
|
||||
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
|
||||
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
|
||||
mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
|
||||
continue-on-error: true
|
||||
|
||||
# - name: Upload RetroDECK-cooker.flatpak to Gitea Release
|
||||
# run: |
|
||||
# # Set variables for Gitea host, organization, repository, access token, and release details
|
||||
|
|
16
config/ruffle/ruffle-rdwrapper.sh
Normal file
16
config/ruffle/ruffle-rdwrapper.sh
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
source /app/libexec/global.sh
|
||||
|
||||
create_dir "$saves_folder/ruffle"
|
||||
|
||||
static_invoke="--config /var/data/ruffle \
|
||||
--save-directory "$saves_folder/ruffle" \
|
||||
--fullscreen"
|
||||
|
||||
#Check if Steam Deck in Desktop Mode
|
||||
if [[ $(check_desktop_mode) == "true" ]]; then
|
||||
ruffle --graphics vulkan $static_invoke "$@"
|
||||
else
|
||||
ruffle --graphics gl --no-gui $static_invoke "$@"
|
||||
fi
|
|
@ -5,10 +5,6 @@ check_bios_files() {
|
|||
# There is a "basic" and "expert" mode which outputs different levels of data
|
||||
# USAGE: check_bios_files "mode"
|
||||
|
||||
if [[ -f "$godot_bios_files_checked" ]]; then
|
||||
rm -f "$godot_bios_files_checked" # Godot data transfer temp files
|
||||
fi
|
||||
touch "$godot_bios_files_checked"
|
||||
|
||||
while IFS="^" read -r bios_file bios_subdir bios_hash bios_system bios_desc || [[ -n "$bios_file" ]];
|
||||
do
|
||||
|
@ -25,10 +21,10 @@ check_bios_files() {
|
|||
fi
|
||||
if [[ "$1" == "basic" ]]; then
|
||||
bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc")
|
||||
echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc" >> "$godot_bios_files_checked" # Godot data transfer temp file
|
||||
echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc" # Godot data transfer
|
||||
else
|
||||
bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc" "$bios_subdir" "$bios_hash")
|
||||
echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc"^"$bios_subdir"^"$bios_hash" >> "$godot_bios_files_checked" # Godot data transfer temp file
|
||||
echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc"^"$bios_subdir"^"$bios_hash" # Godot data transfer
|
||||
fi
|
||||
fi
|
||||
done < $bios_checklist
|
||||
|
|
|
@ -45,7 +45,7 @@ remote_network_target_2="$rd_repo"
|
|||
remote_network_target_3="https://one.one.one.one" # The URL of a common internet target for testing network access
|
||||
helper_files_folder="$config/retrodeck/helper_files" # The parent folder of RetroDECK documentation files for deployment
|
||||
rd_appdata="/app/share/appdata/net.retrodeck.retrodeck.appdata.xml" # The shipped appdata XML file for this version
|
||||
rpcs3_firmware="http://dus01.ps3.update.playstation.net/update/ps3/image/us/2023_0228_05fe32f5dc8c78acbcd84d36ee7fdc5b/PS3UPDAT.PUP"
|
||||
rpcs3_firmware="http://dus01.ps3.update.playstation.net/update/ps3/image/us/2024_0227_3694eb3fb8d9915c112e6ab41a60c69f/PS3UPDAT.PUP"
|
||||
RA_API_URL="https://retroachievements.org/dorequest.php" # API URL for RetroAchievements.org
|
||||
presets_dir="$config/retrodeck/presets" # Repository for all system preset config files
|
||||
git_organization_name="RetroDECK" # The name of the organization in our git repository such as GitHub
|
||||
|
|
|
@ -374,10 +374,66 @@ post_update() {
|
|||
fi
|
||||
fi
|
||||
|
||||
# Check if the version is older than 0.8.4b
|
||||
if [[ $(check_version_is_older_than "0.8.4b") == "true" ]]; then
|
||||
# In version 0.8.4b, the following changes were made:
|
||||
# - Recovery from a failed move of the themes, downloaded_media and gamelists folder to their new ES-DE locations (AGAIN)
|
||||
|
||||
log d "Injecting the new retrodeck/ES-DE subdir into the retrodeck.cfg"
|
||||
# Check if ES-DE already exists in media_folder or themes_folder
|
||||
if grep -E '^(media_folder|themes_folder)=.*ES-DE' "$rd_conf"; then
|
||||
log d "ES-DE path already exists in media_folder or themes_folder"
|
||||
else
|
||||
# Update the paths if ES-DE does not exist
|
||||
sed -i -e '/media_folder=/s|retrodeck/|retrodeck/ES-DE/|g' -e '/themes_folder=/s|retrodeck/|retrodeck/ES-DE/|g' "$rd_conf" && log d "Injection successful"
|
||||
fi
|
||||
log d "$(grep media_folder "$rd_conf")"
|
||||
log d "$(grep themes_folder "$rd_conf")"
|
||||
conf_read
|
||||
conf_write
|
||||
|
||||
log i "Checking if ES-DE downloaded_media, gamelist, and themes folder must be migrated from \"$rdhome\" to \"$rdhome/ES-DE\" due to a RetroDECK Framework bug"
|
||||
|
||||
# Use rsync to merge directories and overwrite existing files
|
||||
if [[ -d "$rdhome/themes" ]]; then
|
||||
rsync -a "$rdhome/themes/" "$rdhome/ES-DE/themes/" && log d "Move of \"$rdhome/themes\" to \"$rdhome/ES-DE/themes\" completed"
|
||||
rm -rf "$rdhome/themes" # Remove the original directory after merging
|
||||
else
|
||||
log i "ES-DE themes appear to have already been migrated."
|
||||
fi
|
||||
|
||||
if [[ -d "$rdhome/downloaded_media" ]]; then
|
||||
rsync -a "$rdhome/downloaded_media/" "$rdhome/ES-DE/downloaded_media/" && log d "Move of \"$rdhome/downloaded_media\" to \"$rdhome/ES-DE/downloaded_media\" completed"
|
||||
rm -rf "$rdhome/downloaded_media" # Remove the original directory after merging
|
||||
else
|
||||
log i "ES-DE downloaded media appear to have already been migrated."
|
||||
fi
|
||||
|
||||
if [[ -d "$rdhome/gamelists" ]]; then
|
||||
rsync -a "$rdhome/gamelists/" "$rdhome/ES-DE/gamelists/" && log d "Move of \"$rdhome/gamelists\" to \"$rdhome/ES-DE/gamelists\" completed"
|
||||
rm -rf "$rdhome/gamelists" # Remove the original directory after merging
|
||||
else
|
||||
log i "ES-DE gamelists appear to have already been migrated."
|
||||
fi
|
||||
|
||||
if [[ -d "$rdhome/collections" ]]; then
|
||||
rsync -a "$rdhome/collections/" "$rdhome/ES-DE/collections/" && log d "Move of \"$rdhome/collections\" to \"$rdhome/ES-DE/collections\" completed"
|
||||
rm -rf "$rdhome/collections" # Remove the original directory after merging
|
||||
else
|
||||
log i "ES-DE collections appear to have already been migrated."
|
||||
fi
|
||||
|
||||
# Setting the correct variables once again
|
||||
set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings"
|
||||
set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings"
|
||||
|
||||
fi
|
||||
|
||||
if [[ $(check_version_is_older_than "0.9.0b") == "true" ]]; then
|
||||
# Placeholder for version 0.9.0b
|
||||
|
||||
set_setting_value "$raconf" "libretro_info_path" "/var/config/retroarch/cores" "retroarch"
|
||||
prepare_component "reset" "ruffle"
|
||||
|
||||
# TODO: check this
|
||||
# rm /var/config/emulationstation/.emulationstation # remving the old symlink to .emulationstation as it might be not needed anymore
|
||||
|
|
|
@ -857,6 +857,24 @@ prepare_component() {
|
|||
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
fi
|
||||
|
||||
if [[ "$component" =~ ^(ruffle|all)$ ]]; then
|
||||
component_found="true"
|
||||
log i "----------------------"
|
||||
log i "Prepearing Ruffle"
|
||||
log i "----------------------"
|
||||
|
||||
rm -rf "/var/config/ruffle"
|
||||
|
||||
# Ruffle creates a directory with the full rom paths in it, so this is necessary
|
||||
# TODO: be aware of this when multi user support will be integrated for this component
|
||||
dir_prep "$saves_folder/flash" "/var/data/ruffle/SharedObjects/localhost/$roms_folder/flash"
|
||||
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
dir_prep "$saves_folder/flash" "/var/data/ruffle/SharedObjects/localhost/$roms_folder/flash"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [[ $component_found == "false" ]]; then
|
||||
log e "Supplied component $component not found, not resetting"
|
||||
fi
|
||||
|
|
|
@ -549,6 +549,20 @@ modules:
|
|||
url: https://github.com/RetroDECK/RetroDECK-theme
|
||||
commit: 975c41cac99d150b6ae86a1dfd19988058c69aad
|
||||
|
||||
# RUFFLE - START
|
||||
# https://github.com/ruffle-rs/ruffle/releases
|
||||
- name: ruffle
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- |
|
||||
cp -p ruffle "${FLATPAK_DEST}/bin/"
|
||||
chmod +x "${FLATPAK_DEST}/bin/ruffle"
|
||||
sources:
|
||||
- type: archive
|
||||
strip-components: 0
|
||||
url: https://github.com/ruffle-rs/ruffle/releases/download/nightly-2024-08-09/ruffle-nightly-2024_08_09-linux-x86_64.tar.gz
|
||||
sha256: d2c4c77d8426da6df8dc8b2a57565c151146464a8eec605d5faa68a297d8cad6
|
||||
|
||||
- name: fetch-missing-libs
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
|
@ -644,6 +658,10 @@ modules:
|
|||
- cp config/gzdoom/gzdoom.sh ${FLATPAK_DEST}/bin/gzdoom.sh
|
||||
- chmod +x ${FLATPAK_DEST}/bin/gzdoom.sh
|
||||
|
||||
# RUFFLE wrapper
|
||||
- cp config/ruffle/ruffle-rdwrapper.sh "${FLATPAK_DEST}/bin/ruffle-rdwrapper.sh"
|
||||
- chmod +x "${FLATPAK_DEST}/bin/ruffle-rdwrapper.sh"
|
||||
|
||||
sources:
|
||||
- type: git
|
||||
url: THISREPO
|
||||
|
|
|
@ -405,4 +405,4 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue