Skip to content

CI: the four jobs of the TopLevel, mirrored in the parent repository - #52

Merged
Peng1104 merged 2 commits into
mainfrom
agent/ci-workflow
Nov 1, 2026
Merged

Peng1104 merged 2 commits into
mainfrom
agent/ci-workflow

Conversation

@peng1104-agent

@peng1104-agent peng1104-agent Bot commented Nov 1, 2026

Copy link
Copy Markdown

The parent repository is becoming the top level of the project, so its CI mirrors the one of the TopLevel (and of the other repositories): one workflow with four jobs whose names are fixed, so that a ruleset can require them as status checks.

Job What it runs
vhdl-syntax make paths and make check: the path check and the GHDL analysis of every repository (the TopLevel analyzes the sources of the others together in one library; the Core also elaborates each profile)
unit-tests make unit-tests (the per-entity cocotb tests of Core, Memory and Peripherals, and the memory map check and tests of the TopLevel) and make sim (the programs of the Tests repository in simulation)
formal make formal: every make target named formal* of each repository; a repository without proofs is skipped
python-static-analysis ruff, pycodestyle, pydocstyle, complexipy and semgrep on the Python of this repository (scripts/), with the settings of pyproject.toml copied from the Tools

Triggers: a pull request or a push to main. A new commit in a pull request cancels the run of the previous one and starts again. sim.yml and vhdl_syntax_check.yml are replaced, so no test runs twice for the same commit. The submodules are checked out recursively and sit side by side, which is how the Makefile and the configuration of each repository name the others (../Core).

The Makefile calls riscv-tools of the CI image instead of the Tests submodule, and the targets paths, check, unit-tests and formal run the target of each repository.

Checked in the ci-vhdl image on a layout of the current main of each repository: make check passes (46 s). It cannot pass end to end yet, for reasons outside this PR:

  • the submodule pointers are old (Core, Memory, Peripherals, TopLevel and Tests are pinned to commits from before the Final work), and Common-Components is not a submodule of this repository yet;
  • the Tests repository still has the Tools submodule in its main (its pull requests are open), so uv sync fails in it;
  • the root paths.yaml lists files that no longer exist (260 missing paths), so the root path check is replaced by the check of each repository; the file is not used any more.

The agent does not publish workflows, so the branch was pushed with git.

One workflow, run by a pull request (a new commit cancels the previous run) or a push to main, with four jobs of fixed names for a ruleset: vhdl-syntax, unit-tests, formal and python-static-analysis. The Makefile gets the matching targets: paths, check, unit-tests and formal run the target of each repository (the repositories sit side by side as submodules, which is how their Makefiles name each other), and riscv-tools comes from the CI image. The old sim.yml and vhdl_syntax_check.yml are replaced, so no test runs twice.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016kr8VNCHkZpPYMTWw5b2tY
@Peng1104
Peng1104 marked this pull request as ready for review November 1, 2026 04:21
@Peng1104
Peng1104 merged commit 56cc565 into main Nov 1, 2026
1 of 4 checks passed
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