Skip to content

Commit 594c866

Browse files
JoeMattclaude
andcommitted
fix: point submodules to Provenance forks, skip Cores in CI checkout
Many submodules had local-only commits that CI couldn't fetch from upstream remotes. Updated .gitmodules to use Provenance-Emu forks for RetroArch and rcheevos. CI workflow now skips all Cores/* submodules (they use pre-built xcframeworks, not source compilation) and inits everything else with --depth 1 for speed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a78f117 commit 594c866

File tree

2 files changed

+19
-24
lines changed

2 files changed

+19
-24
lines changed

.github/workflows/build.yml

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -108,32 +108,27 @@ jobs:
108108
submodules: false
109109
fetch-depth: 0
110110

111-
- name: Initialize submodules (non-recursive, then selective deep init)
111+
- name: Initialize submodules (selective, skip Cores)
112112
if: steps.cache-git.outputs.cache-hit != 'true'
113113
run: |
114-
# First level: init all direct submodules (shallow where possible)
115-
git submodule update --init --depth 1
116-
117-
# Selectively recurse into submodules that actually need nested deps for building.
118-
# Skip deep recursion for cores that use pre-built xcframeworks (Dolphin, Play, PPSSPP, etc.)
119-
# Their nested Externals/ submodules are NOT needed for the Xcode workspace build.
120-
SKIP_RECURSIVE="Cores/Dolphin Cores/Play Cores/PPSSPP Cores/DuckStation Cores/Flycast Cores/Citra Cores/emuThree"
121-
for sub in $(git submodule status | awk '{print $2}'); do
122-
skip=false
123-
for s in $SKIP_RECURSIVE; do
124-
if [ "$sub" = "$s" ] || echo "$sub" | grep -q "^${s}/"; then
125-
skip=true
126-
break
127-
fi
128-
done
129-
if [ "$skip" = "false" ]; then
130-
echo "Recursing into $sub..."
131-
git submodule update --init --recursive --depth 1 "$sub" 2>/dev/null || true
132-
else
133-
echo "Skipping deep recursion for $sub (uses pre-built xcframework)"
134-
fi
114+
# Only init submodules actually needed for the Xcode workspace build.
115+
# Cores/* submodules are NOT compiled from source in CI — they use
116+
# pre-built xcframeworks or SPM packages. Skipping them saves minutes
117+
# and avoids failures from unpushed commits in nested submodules.
118+
119+
# Init all submodules EXCEPT Cores/* (which have many unpushed nested deps)
120+
for sub in $(git config --file .gitmodules --get-regexp 'submodule\..*\.path' | awk '{print $2}'); do
121+
case "$sub" in
122+
Cores/*) echo "Skipping $sub (pre-built xcframework)" ;;
123+
*)
124+
echo "Initializing $sub..."
125+
git submodule update --init --depth 1 "$sub" 2>&1 || echo "WARNING: Failed to init $sub (continuing)"
126+
;;
127+
esac
135128
done
136129
130+
echo "Submodule init complete."
131+
137132
- name: Setup Xcode
138133
uses: maxim-lobanov/setup-xcode@v1.6.0
139134
with:

.gitmodules

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
url = https://github.com/Provenance-Emu/TIC-80.git
137137
[submodule "CoresRetro/RetroArch/RetroArch"]
138138
path = CoresRetro/RetroArch/RetroArch
139-
url = https://github.com/libretro/RetroArch.git
139+
url = https://github.com/Provenance-Emu/RetroArch.git
140140
[submodule "CoresRetro/RetroArch/libretro-super"]
141141
path = CoresRetro/RetroArch/libretro-super
142142
url = https://github.com/libretro/libretro-super.git
@@ -201,4 +201,4 @@
201201
url = https://github.com/rtissera/libchdr
202202
[submodule "PVRcheevos/rcheevos"]
203203
path = PVRcheevos/rcheevos
204-
url = https://github.com/RetroAchievements/rcheevos.git
204+
url = https://github.com/Provenance-Emu/rcheevos.git

0 commit comments

Comments
 (0)