@@ -50,14 +50,14 @@ jobs:
5050 git clone https://github.com/PilotLightTech/pilotlight
5151 cd pilotlight-python
5252
53- - name : Prep 1
53+ - name : Build Python
5454 shell : cmd
5555 run : |
5656 cd scripts
5757 python gen_build.py
5858 build_python_for_win32.bat
5959
60- - name : Build Pilot Light Python
60+ - name : Build Binaries
6161 shell : cmd
6262 run : |
6363 set VULKAN_SDK=D:/a/VulkanSDK
@@ -100,30 +100,60 @@ jobs:
100100 git clone https://github.com/PilotLightTech/pilotlight
101101 cd pilotlight-python
102102
103- - name : Prep 1
103+ - name : Build Python
104104 run : |
105105 cd $GITHUB_WORKSPACE
106106 cd scripts
107107 python3 gen_build.py
108108 chmod +x build_python_for_mac.sh
109109 ./build_python_for_mac.sh
110110
111- - name : Build Pilot Light Python
111+ - name : Build Binaries
112112 run : |
113- cd $GITHUB_WORKSPACE
114- cd src
113+ set -Eeuo pipefail
114+
115+ # Build
116+ pushd "$GITHUB_WORKSPACE/src" >/dev/null
115117 chmod +x build.sh
116118 ./build.sh
117- cd ..
118- cd out
119- ls
120- cd ../pilotlight
121- ls
122- cd ..
123- test -f ./out/pilotlight_python || exit 1
124- test -f ./out/libgltfd.a || exit 1
125- test -f ./out/libpl_platform_ext.a || exit 1
126- test -f ./pilotlight/pilotlight.so || exit 1
119+ popd >/dev/null
120+
121+ echo "=== Directory snapshots for debugging ==="
122+ echo "::group::ls -al ./out"
123+ ls -al ./out || true
124+ echo "::endgroup::"
125+ echo "::group::ls -al ./pilotlight"
126+ ls -al ./pilotlight || true
127+ echo "::endgroup::"
128+
129+ # List of required files relative to repo root
130+ required_files=(
131+ "./out/pilotlight_python"
132+ "./out/libglfwd.a"
133+ "./out/libpl_platform_ext.a"
134+ "./pilotlight/pilotlight.so"
135+ )
136+
137+ # Check for missing files and collect all failures before exiting
138+ missing=()
139+ for f in "${required_files[@]}"; do
140+ if [[ -f "$f" ]]; then
141+ echo "✅ Found: $f"
142+ else
143+ echo "::error file=$f::Missing required file"
144+ missing+=("$f")
145+ fi
146+ done
147+
148+ if ((${#missing[@]})); then
149+ echo ""
150+ echo "❌ Missing ${#missing[@]} required file(s):"
151+ printf ' - %s\n' "${missing[@]}"
152+ exit 1
153+ else
154+ echo "🎉 All required files are present."
155+ fi
156+
127157
128158 Ubuntu :
129159
@@ -168,27 +198,56 @@ jobs:
168198 git clone https://github.com/PilotLightTech/pilotlight
169199 cd pilotlight-python
170200
171- - name : Prep 1
201+ - name : Build Python
172202 run : |
173203 cd $GITHUB_WORKSPACE
174204 cd scripts
175205 python3 gen_build.py
176206 chmod +x build_python_for_linux.sh
177207 ./build_python_for_linux.sh
178208
179- - name : Build Pilot Light Python
209+ - name : Build Binaries
180210 run : |
181- cd $GITHUB_WORKSPACE
182- cd src
211+ set -Eeuo pipefail
212+
213+ # Build
214+ pushd "$GITHUB_WORKSPACE/src" >/dev/null
183215 chmod +x build.sh
184216 ./build.sh
185- cd ..
186- cd out
187- ls
188- cd ../pilotlight
189- ls
190- cd ..
191- test -f ./out/pilotlight_python || exit 1
192- test -f ./out/gltfd.a || exit 1
193- test -f ./out/pl_platform_ext.a || exit 1
194- test -f ./pilotlight/pilotlight.so || exit 1
217+ popd >/dev/null
218+
219+ echo "=== Directory snapshots for debugging ==="
220+ echo "::group::ls -al ./out"
221+ ls -al ./out || true
222+ echo "::endgroup::"
223+ echo "::group::ls -al ./pilotlight"
224+ ls -al ./pilotlight || true
225+ echo "::endgroup::"
226+
227+ # List of required files relative to repo root
228+ required_files=(
229+ "./out/pilotlight_python"
230+ "./out/glfwd.a"
231+ "./out/pl_platform_ext.a"
232+ "./pilotlight/pilotlight.so"
233+ )
234+
235+ # Check for missing files and collect all failures before exiting
236+ missing=()
237+ for f in "${required_files[@]}"; do
238+ if [[ -f "$f" ]]; then
239+ echo "✅ Found: $f"
240+ else
241+ echo "::error file=$f::Missing required file"
242+ missing+=("$f")
243+ fi
244+ done
245+
246+ if ((${#missing[@]})); then
247+ echo ""
248+ echo "❌ Missing ${#missing[@]} required file(s):"
249+ printf ' - %s\n' "${missing[@]}"
250+ exit 1
251+ else
252+ echo "🎉 All required files are present."
253+ fi
0 commit comments