From eb9bb685c39cbc578f07d2cb78dd9b9738bbf1ec Mon Sep 17 00:00:00 2001 From: euler Date: Mon, 24 Aug 2026 07:45:02 -0500 Subject: [PATCH] ci: run the tutorial notebooks on gdstk Two notebooks sit on the 180s per-cell limit and cross it depending on which runner the job lands on, so the check passes or fails on identical content. `lvs-pin-filter` has four green runs and two red ones. GLayout_Cells 290s pass (#112) / 372s error (#113) glayout_opamp 136s pass (#112) / 198s error (#113) The native backend builds these cells several times faster, which moves them off the limit instead of raising it. Measured on this fork's CI -- same container, same runners -- with #102, #104 and #113 applied on both sides, the only difference being this line: gdsfactory gdstk GLayout_Cells 187.8s ERROR 14.2s pass glayout_opamp 126.4s pass 19.2s pass 5T_OTA_part2 90.8s pass 16.2s pass test_bjt_custom_pattern 68.2s pass 11.4s pass whole suite 660s 13/14 158s 14/14 Note the baseline already carries all three PRs and still fails: they are what lets the notebooks run on gdstk at all, not what fixes the timeouts. Depends on #102, #104 and #113. Without #113 `GLayout_Cells` raises in `mimcap.py`; without #102 it raises in `Component.add`; without #104's `add_ref(columns=)` the BJT notebook raises. This check stays red until all three land. --- .github/workflows/notebooks.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/notebooks.yml b/.github/workflows/notebooks.yml index c718264a..20fe16c5 100644 --- a/.github/workflows/notebooks.yml +++ b/.github/workflows/notebooks.yml @@ -30,6 +30,11 @@ jobs: # Both sky130A and gf180mcuD live here; glayout's gf180 module reads # this at import time even when a notebook only touches sky130, so # it has to be set globally. + # The tutorials build several times faster on the native backend, + # which takes the heaviest notebooks off the 180s per-cell limit + # rather than raising it. Measured on the fork's own CI: + # GLayout_Cells 187.8s (timeout) -> 14.2s, whole suite 660s -> 158s. + GLAYOUT_BACKEND: gdstk PDK_ROOT: /foss/pdks # FVF / INV / BJT tutorials default to gf180; the bootstrap cell in # each notebook derives PDKPATH from PDK_ROOT/PDK if unset.