Skip to content

Commit 4039ca9

Browse files
committed
CircleCI: optimize toolchain sharing across Dasharo boards
Reorganize CircleCI workflow to properly share toolchains: 1. Each toolchain version now has a dedicated first build that creates the crossgcc toolchain, which subsequent boards then reuse: - librem_14: 24.02.01 toolchain (purism) - novacustom-nv4x_adl: 24.12 toolchain (dasharo_nv4x, dasharo_msi_*) - novacustom-v560tu: 25.03 toolchain (dasharo_v56) - EOL_t480-hotp-maximized: 25.09 toolchain 2. Update cache paths to include all coreboot versions and Dasharo forks: - Added: coreboot-4.20.1, coreboot-4.22.01, coreboot-24.12, coreboot-25.03 - Replaced coreboot-dasharo with version-specific directories: coreboot-dasharo_v56, coreboot-dasharo_nv4x, coreboot-dasharo_msi_z790, coreboot-dasharo_msi_z690 3. Fixed dependency chain: - novacustom-v540tu now depends on novacustom-v560tu (25.03 toolchain) - UNTESTED_msi_z790p_ddr4 depends on novacustom-nv4x_adl (24.12 toolchain) - All 24.12-based boards now chain from novacustom-nv4x_adl This reduces build time by avoiding redundant toolchain rebuilds. Signed-off-by: Thierry Laurion <insurgo@riseup.net>
1 parent 88dd10a commit 4039ca9

File tree

1 file changed

+63
-33
lines changed

1 file changed

+63
-33
lines changed

.circleci/config.yml

Lines changed: 63 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -196,13 +196,25 @@ jobs:
196196
# CircleCI removed their wildcard support, so we have to list precise versions to cache in directory names
197197
key: nix-docker-heads-coreboot-musl-cross-make-{{ checksum "./tmpDir/coreboot_musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
198198
paths:
199+
# ppc64
199200
- build/ppc64/coreboot-talos_2
200201
- build/ppc64/musl-cross-make-fd6be58297ee21fcba89216ccd0d4aca1e3f1c5c
202+
# x86
201203
- build/x86/coreboot-4.11
204+
- build/x86/coreboot-4.20.1
205+
- build/x86/coreboot-4.22.01
202206
- build/x86/coreboot-24.02.01
207+
- build/x86/coreboot-24.12
208+
- build/x86/coreboot-25.03
203209
- build/x86/coreboot-25.09
204-
- build/x86/coreboot-dasharo
210+
# Dasharo forks (coreboot git checkouts, not releases)
211+
- build/x86/coreboot-dasharo_v56
212+
- build/x86/coreboot-dasharo_nv4x
213+
- build/x86/coreboot-dasharo_msi_z790
214+
- build/x86/coreboot-dasharo_msi_z690
205215
- build/x86/coreboot-purism
216+
- build/x86/coreboot-talos_2
217+
# musl-cross-make
206218
- build/x86/musl-cross-make-fd6be58297ee21fcba89216ccd0d4aca1e3f1c5c
207219
- crossgcc
208220
- packages
@@ -239,34 +251,44 @@ workflows:
239251
requires:
240252
- prep_env
241253

242-
# Below, sequentially build one board for each coreboot version.
243-
# The last board in the sequence is the dependency for the parallel boards built at the end, and also save_cache.
254+
# Below, sequentially build one board for each coreboot version/toolchain.
255+
# The first board of each toolchain version builds the crossgcc toolchain.
256+
# Subsequent boards using the same toolchain depend on that first board.
244257

245-
# coreboot 24.02.01
258+
# Toolchain: 24.02.01 (used by purism)
259+
# coreboot purism: based on coreboot 24.02.01, reuse crossgcc from 24.02.01
260+
- build_and_persist:
261+
name: librem_14
262+
target: librem_14
263+
subcommand: ""
264+
requires:
265+
- x86-musl-cross-make
266+
267+
# Toolchain: 24.12 (used by dasharo_nv4x, dasharo_msi_z690, dasharo_msi_z790)
246268
- build_and_persist:
247269
name: novacustom-nv4x_adl
248270
target: novacustom-nv4x_adl
249271
subcommand: ""
250272
requires:
251273
- x86-musl-cross-make
252274

253-
# coreboot purism: based on coreboot 24.02.01, reuse dasharo 24.02.01 crossgcc
275+
# Toolchain: 25.03 (used by dasharo_v56)
254276
- build_and_persist:
255-
name: librem_14
256-
target: librem_14
277+
name: novacustom-v560tu
278+
target: novacustom-v560tu
257279
subcommand: ""
258280
requires:
259-
- novacustom-nv4x_adl
281+
- x86-musl-cross-make
260282

261-
# t480 is based on 25.09 coreboot release, not sharing any buildstack from now, depend on muscl-cross cache
283+
# Toolchain: 25.09 (used by t480)
262284
- build_and_persist:
263285
name: EOL_t480-hotp-maximized
264286
target: EOL_t480-hotp-maximized
265287
subcommand: ""
266288
requires:
267289
- x86-musl-cross-make
268290

269-
# coreboot talos_2
291+
# coreboot talos_2 (ppc64)
270292
- build_and_persist:
271293
name: UNTESTED_talos-2
272294
arch: ppc64
@@ -283,22 +305,20 @@ workflows:
283305
requires:
284306
- x86-musl-cross-make
285307

286-
# dasharo_msi
287-
- build_and_persist:
288-
name: UNTESTED_msi_z690a_ddr4
289-
target: UNTESTED_msi_z690a_ddr4
290-
subcommand: ""
291-
requires:
292-
- x86-musl-cross-make
293-
294308
# Cache one workspace per architecture
295309
# Make sure workspace caches are chainloaded and the last in chain for an arch is saved
296310
- save_cache:
297311
requires:
298312
- UNTESTED_talos-2
299313
- EOL_t480-hotp-maximized
300314

301-
# Those onboarding new boards should add their entries below.
315+
#======================================================================
316+
# Parallel board builds - depend on toolchain providers above
317+
#======================================================================
318+
319+
#----------------------------------------
320+
# Toolchain 25.09 (t480 and variants)
321+
#----------------------------------------
302322
# coreboot 25.09 boards
303323
- build:
304324
name: EOL_x220-hotp-maximized
@@ -562,47 +582,57 @@ workflows:
562582
requires:
563583
- EOL_t480-hotp-maximized
564584

565-
# dasharo release, share 24.02.01 utils/crossgcc
585+
#----------------------------------------
586+
# Toolchain 24.12 (dasharo_nv4x, dasharo_msi_z690, dasharo_msi_z790)
587+
#----------------------------------------
588+
# These boards share the 24.12 toolchain from novacustom-nv4x_adl
589+
590+
# dasharo_nv4x: NV4x ADL / NS50
566591
- build:
567592
name: UNTESTED_nitropad-ns50
568593
target: UNTESTED_nitropad-ns50
569594
subcommand: ""
570595
requires:
571596
- novacustom-nv4x_adl
572597

573-
#NovaCustom v56 boards are based on coreboot 24.02.01 fork, so depend on nv4x_adl
598+
# dasharo_msi_z690: MSI Z690 boards
574599
- build:
575-
name: novacustom-v560tu
576-
target: novacustom-v560tu
577-
subcommand: ""
578-
requires:
579-
- novacustom-nv4x_adl
580-
581-
- build:
582-
name: novacustom-v540tu
583-
target: novacustom-v540tu
600+
name: UNTESTED_msi_z690a_ddr4
601+
target: UNTESTED_msi_z690a_ddr4
584602
subcommand: ""
585603
requires:
586604
- novacustom-nv4x_adl
587605

588-
# dasharo_msi
589606
- build:
590607
name: UNTESTED_msi_z690a_ddr5
591608
target: UNTESTED_msi_z690a_ddr5
592609
subcommand: ""
593610
requires:
594611
- UNTESTED_msi_z690a_ddr4
595612

613+
# dasharo_msi_z790: MSI Z790 boards
596614
- build:
597615
name: UNTESTED_msi_z790p_ddr4
598616
target: UNTESTED_msi_z790p_ddr4
599617
subcommand: ""
600618
requires:
601-
- UNTESTED_msi_z690a_ddr4
619+
- novacustom-nv4x_adl
602620

603621
- build:
604622
name: msi_z790p_ddr5
605623
target: msi_z790p_ddr5
606624
subcommand: ""
607625
requires:
608-
- UNTESTED_msi_z690a_ddr4
626+
- UNTESTED_msi_z790p_ddr4
627+
628+
#----------------------------------------
629+
# Toolchain 25.03 (dasharo_v56)
630+
#----------------------------------------
631+
# These boards share the 25.03 toolchain from novacustom-v560tu
632+
633+
- build:
634+
name: novacustom-v540tu
635+
target: novacustom-v540tu
636+
subcommand: ""
637+
requires:
638+
- novacustom-v560tu

0 commit comments

Comments
 (0)