@@ -52,12 +52,16 @@ runs:
5252 MODE_CHECKPOINT_DIR="packages/${PACKAGE_NAME}/build/${BUILD_MODE}/checkpoints"
5353 SHARED_CHECKPOINT_DIR="packages/${PACKAGE_NAME}/build/shared/checkpoints"
5454 OUTPUT_DIR="packages/${PACKAGE_NAME}/build/${BUILD_MODE}/out"
55+ SHARED_SOURCE_DIR="packages/${PACKAGE_NAME}/build/shared/source"
56+ MODE_SOURCE_DIR="packages/${PACKAGE_NAME}/build/${BUILD_MODE}/source"
5557
5658 echo "📦 Package: ${PACKAGE_NAME}"
5759 echo "🔧 Build mode: ${BUILD_MODE}"
5860 echo "📁 Mode checkpoint directory: ${MODE_CHECKPOINT_DIR}"
5961 echo "📁 Shared checkpoint directory: ${SHARED_CHECKPOINT_DIR}"
6062 echo "📤 Output directory: ${OUTPUT_DIR}"
63+ echo "📂 Shared source directory: ${SHARED_SOURCE_DIR}"
64+ echo "📂 Mode source directory: ${MODE_SOURCE_DIR}"
6165 echo ""
6266
6367 # Parse checkpoint chain into array (comma-separated)
@@ -149,10 +153,82 @@ runs:
149153 fi
150154 echo ""
151155
152- # Extract checkpoint
153- echo "📦 Extracting checkpoint to ${OUTPUT_DIR}..."
154- mkdir -p "${OUTPUT_DIR}"
155- tar -xzf "${CHECKPOINT_FILE}" -C "${OUTPUT_DIR}"
156+ # Extract checkpoint to correct directory based on checkpoint name
157+ # Checkpoint structure varies by package:
158+ #
159+ # node-smol-builder:
160+ # - finalized → build/{mode}/out/Final/
161+ # - binary-compressed → build/{mode}/out/Compressed/
162+ # - binary-stripped → build/{mode}/out/Stripped/
163+ # - binary-released → build/{mode}/out/Release/
164+ # - source-cloned → build/shared/source/
165+ # - source-patched → build/{mode}/source/
166+ #
167+ # onnxruntime-builder, yoga-layout-builder:
168+ # - finalized → build/{mode}/out/Final/
169+ # - wasm-synced → build/{mode}/out/Synced/
170+ # - wasm-released → build/{mode}/out/Released/
171+ # - wasm-optimized → build/{mode}/out/Optimized/
172+ # - wasm-compiled → build/{mode}/out/Compiled/
173+ # - source-configured → build/{mode}/source/ (yoga-layout only)
174+ # - source-cloned → build/shared/source/
175+ #
176+ # models:
177+ # - finalized → build/{mode}/out/Final/
178+ # - quantized → build/{mode}/models/
179+ # - converted → build/{mode}/models/
180+ # - downloaded → build/{mode}/models/
181+ EXTRACT_DIR="${OUTPUT_DIR}"
182+ case "${RESTORED_CHECKPOINT}" in
183+ finalized)
184+ EXTRACT_DIR="${OUTPUT_DIR}/Final"
185+ ;;
186+ # node-smol-builder checkpoints
187+ binary-compressed)
188+ EXTRACT_DIR="${OUTPUT_DIR}/Compressed"
189+ ;;
190+ binary-stripped)
191+ EXTRACT_DIR="${OUTPUT_DIR}/Stripped"
192+ ;;
193+ binary-released)
194+ EXTRACT_DIR="${OUTPUT_DIR}/Release"
195+ ;;
196+ # onnxruntime-builder, yoga-layout-builder checkpoints
197+ wasm-synced)
198+ EXTRACT_DIR="${OUTPUT_DIR}/Synced"
199+ ;;
200+ wasm-released)
201+ EXTRACT_DIR="${OUTPUT_DIR}/Released"
202+ ;;
203+ wasm-optimized)
204+ EXTRACT_DIR="${OUTPUT_DIR}/Optimized"
205+ ;;
206+ wasm-compiled)
207+ EXTRACT_DIR="${OUTPUT_DIR}/Compiled"
208+ ;;
209+ source-configured)
210+ # yoga-layout-builder specific: extract to mode source directory
211+ EXTRACT_DIR="${MODE_SOURCE_DIR}"
212+ ;;
213+ # models checkpoints
214+ quantized|converted|downloaded)
215+ # Models checkpoints extract to build/{mode}/models/
216+ EXTRACT_DIR="packages/${PACKAGE_NAME}/build/${BUILD_MODE}/models"
217+ ;;
218+ # Source checkpoints (shared across packages)
219+ source-cloned)
220+ # Shared checkpoint: extract to shared source directory
221+ EXTRACT_DIR="${SHARED_SOURCE_DIR}"
222+ ;;
223+ source-patched)
224+ # Mode-specific checkpoint: extract to mode source directory
225+ EXTRACT_DIR="${MODE_SOURCE_DIR}"
226+ ;;
227+ esac
228+
229+ echo "📦 Extracting checkpoint to ${EXTRACT_DIR}..."
230+ mkdir -p "${EXTRACT_DIR}"
231+ tar -xzf "${CHECKPOINT_FILE}" -C "${EXTRACT_DIR}"
156232 echo "✅ Checkpoint extracted successfully"
157233 echo ""
158234
0 commit comments