Skip to content

CI: add bounded retry loop for KiCad package install in schematic export workflow#2

Open
electricalhog wants to merge 7 commits into
rust-mainfrom
hardware-analog-frontend
Open

CI: add bounded retry loop for KiCad package install in schematic export workflow#2
electricalhog wants to merge 7 commits into
rust-mainfrom
hardware-analog-frontend

Conversation

@electricalhog

@electricalhog electricalhog commented Jul 7, 2026

Copy link
Copy Markdown
Owner

The schematic export workflow was fragile on transient apt/network failures while installing KiCad. This change makes the install step self-retrying so the job can recover automatically without manual reruns.

  • What changed

    • Replaced the single-shot KiCad install with a bounded retry loop in export-schematic.yml.
    • Each attempt runs apt-get update + apt-get install kicad kicad-symbols atomically.
    • Workflow now fails explicitly only after the final retry attempt.
  • Retry behavior

    • 3 total attempts.
    • Progressive backoff between attempts (10s, 20s).
    • Clear terminal message on terminal failure.
for attempt in 1 2 3; do
  echo "KiCad install attempt ${attempt}/3"
  if sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends kicad kicad-symbols; then
    exit 0
  fi
  if [ "${attempt}" -eq 3 ]; then
    echo "KiCad installation failed after 3 attempts."
    exit 1
  fi
  sleep "$((attempt * 10))"
done

electricalhog and others added 2 commits July 7, 2026 16:11
…sheets

Schematic (both gate-buffer variants, as simulated in hardware/sim/):
- Shared setpoint DAC: GATE_PWM -> 2-pole RC -> VSET
- Ch A: OPA192 integrator -> discrete class-AB (BD139/BD140, 1N4148 bias)
  -> 4R7 -> IXFN360N10T -> 2 mOhm Ohmite TGHG shunt (both SOT-227,
  shared heatsink, short bus bars) -> INA185 sense
- Ch B: OPA192 -> BUF634A -> 4R7 -> IXFN360N10T -> TGHG -> INA185
- J5 DUT_BUS drain connector, +15V analog rail
- Tests extended to 11 (analog nets, VDUT bus, both variants present);
  SYMLIB now resolved by glob instead of hardcoded flatpak hash

Simulation workspace (LTspice via wine, validated headless):
- VDMOS model anchored to IXYS DS100088: gfs=160S@60A (Kp=213, Vto=3.8),
  Ciss=36n, Crss=330p, Qg=505n
- AC loop-gain bench (DC-closed/AC-open break): fc=32.6 kHz, PM=81 deg,
  GM=26 dB at 40 A with TGHG 2m + INA185A1
- ltraw.py raw-file parser, make_figs.py figure generator, 4 design figures

Datasheets vendored for cross-reference (IXFN360N10T is the real DS100088,
recovered via Wayback Machine).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- gitignore KiCad autosave, rescue, fp-info-cache and .kicad_prl files
- untrack electronic_load.kicad_prl (per-user session state)
- commit initial pcbnew board file + populated project board defaults

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI changed the title Hardware: analog frontend — per-FET linear loops, LTspice workspace, datasheets Harden export-pdf against KiCad symbol package drift on GitHub runners Jul 13, 2026
Copilot AI changed the title Harden export-pdf against KiCad symbol package drift on GitHub runners CI: add bounded retry loop for KiCad package install in schematic export workflow Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants