ci: rearchitect build pipeline to use elb + ci-base #14

Closed
will.anderson wants to merge 0 commits from fix/ci-elb into dev
Owner

Summary

  • Replace manual elb/elc concatenation approach (build-stage.sh) with proper elb build using ci-base image from Artifact Registry
  • CI extracts the El SDK from ci-base (elb + elc + runtime) and runs elb build, which compiles each .el source independently — no combined mega-file, no OOM
  • Output is dist/neuron-landing (pre-compiled linux/amd64 binary), copied directly by Dockerfile.stage
  • PR build fallback: uses committed bin/elb-linux-amd64 + bin/elc-linux-amd64 + runtime/ (secrets not available on pull_request events)
  • build-stage.sh replaced with thin elb wrapper (for local dev use)

Test plan

  • Push to fix/ci-elb triggers PR CI (pull_request event, uses committed bin/)
  • Merge to dev triggers dev.yaml (push event, uses ci-base)
  • Stage and prod workflows use same elb approach
## Summary - Replace manual `elb`/`elc` concatenation approach (build-stage.sh) with proper `elb build` using ci-base image from Artifact Registry - CI extracts the El SDK from ci-base (elb + elc + runtime) and runs `elb build`, which compiles each .el source independently — no combined mega-file, no OOM - Output is `dist/neuron-landing` (pre-compiled linux/amd64 binary), copied directly by Dockerfile.stage - PR build fallback: uses committed `bin/elb-linux-amd64` + `bin/elc-linux-amd64` + `runtime/` (secrets not available on pull_request events) - build-stage.sh replaced with thin elb wrapper (for local dev use) ## Test plan - [ ] Push to `fix/ci-elb` triggers PR CI (pull_request event, uses committed bin/) - [ ] Merge to dev triggers dev.yaml (push event, uses ci-base) - [ ] Stage and prod workflows use same elb approach
will.anderson added 1 commit 2026-05-07 06:55:22 +00:00
- stage.yaml and deploy.yaml now extract El SDK from ci-base (docker cp /opt/el) and run elb build to produce dist/neuron-landing
- JS El sources compiled via elc --target=js in a dedicated step, matching dev.yaml exactly
- build-stage.sh replaced with thin elb wrapper for local dev use
- Removes the broken "Set up El SDK" stub (echo EL_HOME) and old build-stage.sh invocation from both workflows
will.anderson added 2 commits 2026-05-07 07:35:07 +00:00
will.anderson added 1 commit 2026-05-07 07:35:32 +00:00
feat(demo): server-side 8000-char (~2000 token) input limit on /api/demo
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 45s
7c4c0d9963
will.anderson added 1 commit 2026-05-07 07:36:13 +00:00
fix(demo): remove 'launch night' from opening greeting — no longer accurate
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 44s
e6d10fc3d5
will.anderson added 1 commit 2026-05-07 07:49:18 +00:00
feat(demo): header countdown switches to reset timer when questions exhausted
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 8s
5f35ddde39
When a user hits the 10-question limit, the header countdown flips from
'0 questions left' to a live 'resets in HH:MM:SS' ticker counting to
midnight UTC. Clears automatically when the session resets.
will.anderson added 1 commit 2026-05-07 14:32:50 +00:00
ci: retrigger — ci-base:latest rebuilt with fresh El SDK
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 24s
067c83f8ff
will.anderson added 1 commit 2026-05-07 14:34:37 +00:00
ci: commit El SDK binaries for PR build fallback
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 8s
0ace906823
PR builds can't pull ci-base (no GCP secrets on pull_request events).
dev.yaml falls back to committed bin/ + runtime/ instead.
Extracted from ci-base:latest (sdk-release.yaml run 1411).
will.anderson added 1 commit 2026-05-07 14:36:24 +00:00
fix(ci): use --key=value form for elb flags
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 16m8s
4ec5558517
elb's flag_val only matches --key=value, not --key value.
All three workflows were passing flags space-separated which
elb silently ignored, causing 'cannot locate el_runtime.c'.
will.anderson added 1 commit 2026-05-07 14:58:11 +00:00
ci: add debug output to elb build step
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 15m50s
f7034c990a
will.anderson added 1 commit 2026-05-07 15:19:35 +00:00
fix: correct author email in manifest
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 12m34s
bb2be6398b
will.anderson added 1 commit 2026-05-07 15:31:53 +00:00
ci: force line-buffered stdout on elb to prevent output loss on failure
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 12m34s
6928a33685
will.anderson added 1 commit 2026-05-07 15:58:53 +00:00
ci: tee elb output to file; dump on failure in separate step
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 13m48s
032be3a058
will.anderson added 1 commit 2026-05-07 18:06:32 +00:00
fix: handle {#if} template conditionals and raw-text style/script in elc
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 51s
5a8783ff0c
Parser now supports {#if cond}...{#else}...{/if} blocks as HtmlIf AST nodes.
Style and script elements collect content as raw text, bypassing El expression
parsing entirely — eliminating O(n²) CSS parse time on large style blocks.
will.anderson added 1 commit 2026-05-07 18:10:57 +00:00
fix: move script/style inside their parent elements in nav.el and enterprise.el
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 18s
e3e6ec7ade
will.anderson added 1 commit 2026-05-07 20:51:34 +00:00
pin dev/stage CI to tier-matched ci-base image
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 50s
da669c67a1
will.anderson added 1 commit 2026-05-07 21:00:58 +00:00
fix(checkout): split checkout_page into helpers to avoid single-function OOM in elc --emit-header
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 11m34s
96fca7ebf7
Extract nav and style blocks into checkout_nav_html() and checkout_style_html()
so the compiler processes each template in isolation rather than one 490-line
function with mixed HTML template AST and BinOp string concat.
will.anderson added 1 commit 2026-05-07 22:59:06 +00:00
fix(build): c_source stubs, manifest directives, gallery module-level global
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 13m24s
2a3f998827
Add window/neuronCheckoutFree stubs to web_stubs.c — needed to link
without undefined symbol errors on macOS (vessel stubs were already
handled, web platform stubs were not).

Add c_source directives to manifest.el so elb includes web_stubs.c and
vessel_stubs.c in the link — requires the matching elb update in
foundation/el PR #46.

Move gallery_share_allowlist from module scope into gallery_page() to
prevent elc from emitting a second main() for the gallery module, which
caused a duplicate-symbol link error when combined with main.el.

Update elc-linux-amd64 binary (rebuilt with RBrace fix from PR #46).
will.anderson added 1 commit 2026-05-08 17:46:11 +00:00
chore: update El SDK to dev@8212e12 (OOM fix, precompile opt, gcloud fix)
Dev — Build & local smoke test / build-smoke (pull_request) Failing after 43s
2447310367
will.anderson closed this pull request 2026-05-09 17:41:27 +00:00

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: neuron-technologies/neuron-web#14