Skip to content

ci: keep the develop build-test workflow green - #911

Merged
HuiJun merged 1 commit into
developfrom
fix/circleci-develop-gates
Oct 4, 2026
Merged

HuiJun merged 1 commit into
developfrom
fix/circleci-develop-gates

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

What and why

The CircleCI build-test workflow has failed on every merge into develop since #899, and intermittently before that, for three unrelated reasons:

  • Go static checks (every run since feat(docs): draw the landing diagram from the engine, with ports #899): docs/project/third-party-notices.md links ../assets/landing/libavoid-js.LICENSE.txt, which npm run build:landing generates into the gitignored docs/assets/landing/. The GitHub PR workflow runs make docs-landing-assets before scripts/check-doc-links.py; the CircleCI go-static job did not. It now builds the bundle first (the Go executor already carries Node).
  • Go race tests (killed on 2 of the last 6 merges, signal: killed in internal/exec/runtime): the package peaks near 8.5 GB under -race on the 8 GB large node. The Go heap stays under 0.5 GB (GOMEMLIMIT changes nothing); the memory is the race detector's, per process, and TestExploreWithIsExploreOverTheConformanceCorpus alone accounts for about half. The runtime shard now runs that test in one process and the rest of the package in another (3.8 GB and 4.2 GB measured).
  • Go coverage profile (once): TestRunSweepWithStopsAtTheDeadline gave the sweep a 20 ms wall-clock deadline and counted a row as late if the deadline had passed when its body began. On the loaded coverage node a job took its row before the deadline and finished building its context after it (8 rows started (1 after the deadline)). The test now meets the deadline itself once every job has taken its first row, so nothing depends on the clock; the assertions are unchanged.

Only the CircleCI config and one test change; make test-shard on GitHub Actions (16 GB runners) is untouched.

How it was verified

  • make docs-landing-assets && python3 scripts/check-doc-links.py passes locally (fails without the build, as on CircleCI).
  • go test -race ./internal/exec/runtime with GOMAXPROCS=4, measured with /usr/bin/time -v: whole package 8.5 GB max RSS; -run '^TestExploreWithIsExploreOverTheConformanceCorpus$' 3.8 GB; -skip of the same 4.2 GB; GOMEMLIMIT=1536MiB/3GiB/5GiB all still 8.2–8.5 GB.
  • go test -race -count=20 -run TestRunSweepWith ./internal/exec/runtime passes; gofmt, go vet, circleci config validate clean.

Checklist

  • make test and make lint pass locally (lint; make test is the full suite, the touched package passes under -race)
  • Tests added or updated for the change
  • Documentation extended where it already covers the surface (none covers the CI layout)
  • Changelog entry added (CI and test-only change, nothing user-visible)
  • baselines regenerated and make docs-counts run if a gate count moved (none moved)
  • No internal work-item labels in the body, docs, or changelog

Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/663a6b7810c04e479fe34c62557cd605
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/663a6b7810c04e479fe34c62557cd605?variant=devin
Requested by: @HuiJun

- go-static builds the landing-page diagram before checking documentation
  links, as the PR workflow does: the third-party notices link the libavoid-js
  licence text that bundle generates into the gitignored docs/assets/landing.
- The runtime race shard runs internal/exec/runtime as two processes, the
  corpus-wide exploration apart from the rest: the race detector's memory is
  per process and the package alone peaks near 8.5 GB on the 8 GB node, which
  killed the shard on two of six recent merges.
- TestRunSweepWithStopsAtTheDeadline meets its deadline once every job has
  taken its first row rather than after 20 ms of wall clock, which a loaded
  coverage node overran while a job was still building its context.

Co-Authored-By: jason.han <hanhuijun@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration
devin-ai-integration Bot marked this pull request as ready for review October 4, 2026 22:35

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Devin Review: 1 flag

Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

@HuiJun
HuiJun merged commit 69c7ee2 into develop Oct 4, 2026
24 checks passed
@HuiJun
HuiJun deleted the fix/circleci-develop-gates branch October 4, 2026 23:38
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.

1 participant