2222 branches :
2323 - master
2424 - release/*
25+ - wokwi-embed-launchpad
2526 pull_request :
2627 paths :
2728 - " cores/**"
@@ -167,6 +168,25 @@ jobs:
167168 - name : Build selected sketches
168169 run : bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ needs.gen-chunks.outputs.chunk_count }} 1 ${{ env.LOG_LEVEL }} affected_sketches.txt
169170
171+ - name : Collect compiled binaries
172+ run : |
173+ mkdir -p compiled_binaries
174+ # Find and copy all compiled binaries (*.bin, *.elf files)
175+ find . -name "*.bin" -o -name "*.elf" | grep -E "(build|target)" | while read file; do
176+ # Create relative path structure in compiled_binaries
177+ rel_path=$(echo "$file" | sed 's|^\./||')
178+ target_dir="compiled_binaries/$(dirname "$rel_path")"
179+ mkdir -p "$target_dir"
180+ cp "$file" "$target_dir/"
181+ done
182+
183+ - name : Upload compiled binaries as artifact
184+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
185+ with :
186+ name : compiled-binaries-${{ matrix.chunk }}
187+ path : compiled_binaries
188+ retention-days : 1
189+
170190 # Upload cli compile json as artifact
171191 - name : Upload cli compile json
172192 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
@@ -175,6 +195,40 @@ jobs:
175195 path : cli_compile_${{ matrix.chunk }}.json
176196 overwrite : true
177197
198+ # Consolidate compiled binaries from all chunks
199+ consolidate-binaries :
200+ name : Consolidate compiled binaries
201+ needs : [gen-chunks, build-arduino-linux]
202+ if : ${{ needs.gen-chunks.outputs.should_build == '1' }}
203+ runs-on : ubuntu-latest
204+ steps :
205+ - name : Download all binary artifacts
206+ uses : actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
207+ with :
208+ pattern : compiled-binaries-*
209+ merge-multiple : true
210+ path : all_binaries
211+
212+ - name : List consolidated binaries
213+ run : |
214+ echo "Consolidating binaries from all chunks..."
215+ echo "Downloaded artifacts:"
216+ find all_binaries -type f -name "*.bin" -o -name "*.elf" | head -20 || echo "No binaries found in artifacts"
217+ echo "Total binary files: $(find all_binaries -type f \( -name "*.bin" -o -name "*.elf" \) | wc -l)"
218+
219+ - name : Create consolidated binary cache
220+ uses : actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
221+ with :
222+ key : compiled-binaries-consolidated-${{ github.sha }}
223+ path : all_binaries
224+
225+ - name : Upload consolidated binaries
226+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
227+ with :
228+ name : compiled-binaries-consolidated
229+ path : all_binaries
230+ retention-days : 7
231+
178232 # Windows and MacOS
179233 build-arduino-win-mac :
180234 name : Arduino on ${{ matrix.os }}
0 commit comments