Skip to content

ci: stop the simulation workflow failing on repositories that do not exist - #80

Merged
srpatcha merged 2 commits into
embeddedos-org:masterfrom
Kartikey1306:fix/ci-missing-sibling-repos
Aug 29, 2026
Merged

srpatcha merged 2 commits into
embeddedos-org:masterfrom
Kartikey1306:fix/ci-missing-sibling-repos

Conversation

@Kartikey1306

@Kartikey1306 Kartikey1306 commented Aug 28, 2026 •

Copy link
Copy Markdown
Contributor

Twelve of the fourteen failing checks on a pull request here come from eos-simulation.yml, and none of them are about the code. They are about two sibling repositories that cannot be cloned, and a cache configured to be fatal.

embeddedos-org/eFab does not exist

$ gh api repos/embeddedos-org/eFab
{"message":"Not Found","status":"404"}
fatal: repository 'https://github.com/embeddedos-org/eFab/' not found

Two jobs check it out:

  • build-kernel clones it only to run cad_pipeline.py over eFab/samples/eos_reference_board.kicad_pcb. The failed checkout kills the job — which takes simulate-qemu and integration-summary with it, and the summary is the one job that hard-fails the whole workflow. Checkout and CAD step commented out; the artifact directory the upload step expects is created empty instead.
  • test-cad-pipeline exists only to exercise eFab. Its steps are commented out and replaced with one that says why.

embeddedos-org/eVera does not exist either

Same 404, from the test-middleware matrix. Removed from the matrix, and the job's display name updated to match. The other ten repositories in that matrix do exist.

cache: pip is a hard failure, not a fallback

No file in /home/runner/work/eos/eos matched to
[**/requirements.txt or **/pyproject.toml], make sure you have checked out
the target repository

setup-python errors when the repository it is caching for has neither file — true of this repository and of most of the middleware matrix. Eight matrix jobs died on this before running a single test. Dropped from both eos-simulation.yml and python-tests.yml: a dependency cache is an optimisation, and failing a job over a missing lockfile is not a trade worth making.

Two more of a defect this repo has elsewhere

Both in build-kernel, and both the same shape as things already fixed in #75:

-DBOARD=qemu_arm64 eBoot's option is EBLDR_BOARD. This set an unrelated cache variable, so the board silently defaulted to none — the ARM64 board port was never being built.
-DCMAKE_TOOLCHAIN_FILE=cmake/aarch64-linux-gnu.cmake cmake/ holds only cppcheck.cmake, deps.cmake, ebuild_layers.cmake. The toolchain file is in toolchains/. Identical to the ARM job defect fixed in #75.

Verification

Check Result
ctest --no-tests=error 26/26 pass
both workflow files parse

Everything removed is commented, not deleted — restoring it is a revert once the repositories are published.

What this does not fix

Stated plainly so the remaining red is not a surprise:

…exist

Twelve of the fourteen failing checks on a pull request here come from this
workflow, and none of them are about the code. They are about two sibling
repositories that cannot be cloned and a cache that is configured to be fatal.

**embeddedos-org/eFab does not exist.** `gh api repos/embeddedos-org/eFab`
returns 404. Two jobs check it out:

    fatal: repository 'https://github.com/embeddedos-org/eFab/' not found

- `build-kernel` clones it only to run `cad_pipeline.py` over
  `eFab/samples/eos_reference_board.kicad_pcb`. The checkout failure kills the
  job, which takes `simulate-qemu` and `integration-summary` with it -- and the
  summary is the one job that hard-fails the workflow. Checkout and CAD step
  commented out; the artifact directory the upload step expects is created
  empty instead.
- `test-cad-pipeline` exists only to exercise eFab. Its steps are commented out
  and replaced with one that says why.

**embeddedos-org/eVera does not exist either**, so its entry in the
`test-middleware` matrix 404s the same way. Removed from the matrix, and the
job's display name updated to match.

**`cache: pip` is a hard failure, not a fallback.** setup-python errors with

    No file in /home/runner/work/eos/eos matched to
    [**/requirements.txt or **/pyproject.toml]

when the repository it is caching for has neither -- which is true of this
repository and of most of the middleware matrix. Eight matrix jobs died on it
before running a test. Dropped from both eos-simulation.yml and
python-tests.yml; a dependency cache is an optimisation and is not worth
failing a job over.

Two more of the same defects this repo has elsewhere, both in `build-kernel`:

- eBoot is configured with `-DBOARD=qemu_arm64`. eBoot's option is
  `EBLDR_BOARD`, so this set an unrelated cache variable and the board silently
  defaulted to `none` -- the ARM64 board port was never being built.
- The kernel is configured with
  `-DCMAKE_TOOLCHAIN_FILE=cmake/aarch64-linux-gnu.cmake`. `cmake/` holds only
  cppcheck.cmake, deps.cmake and ebuild_layers.cmake; the toolchain file is in
  `toolchains/`. Same mistake as the ARM job in ci.yml, fixed in embeddedos-org#75.

Everything removed is commented rather than deleted, so restoring it is a
revert once the repositories are published.

Verified: ctest 26/26 pass; both workflow files parse.

Deliberately not fixed here: `Host Tests (x86_64)` and `Cross-compile ARM
Cortex-M4`, the other two failures. embeddedos-org#71 already fixes both and I have not
duplicated it. And `build-kernel` will still fail at its eBoot build step until
eBoot's master compiles again -- that is eBoot#55/embeddedos-org#57/embeddedos-org#58, not something this
repository can fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
With the eFab checkout out of the way, build-kernel now reaches its eBoot
configure and dies there instead:

    -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc - broken
    collect2: error: ld returned 1 exit status

gcc-aarch64-linux-gnu on Ubuntu ships the compiler but not the target C
library, so CMake's compiler check cannot link its test binary.
libc6-dev-arm64-cross provides it.

This failure was there all along; the eFab 404 happened first and hid it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Kartikey1306

Copy link
Copy Markdown
Contributor Author

Final state: 14 failing checks → 4, and every remaining one is accounted for.

Check Cause Fixed by
Cross-compile ARM Cortex-M4 hal/src/hal_rtos.c: eos/hal.h: No such file — missing -Ihal/include #71
Host Tests (x86_64) tests/test_e2e.c under -Werror (implicit eos_tick_get, misleading-indentation, sign-compare) #71
Cross-compile ARM64 kernel eBoot's master does not compile eBoot #55/#57/#58
Full-stack integration summary needs: build-kernel as above

I have not touched the first two: #71 is a maintainer's open PR that fixes exactly those files, and duplicating it would only create a conflict.

On the ARM64 job — worth reading, because this PR changed what it does. It used to die at the eFab checkout, which hid two further failures behind it. Removing that revealed them one at a time:

  1. -- Check for working C compiler: aarch64-linux-gnu-gcc - broken. Ubuntu's gcc-aarch64-linux-gnu ships the compiler but not the target C library, so CMake could not link its test binary. Fixed here by adding libc6-dev-arm64-cross.
  2. With that fixed the job now reaches the real work and fails on eBoot itself:
eBoot/core/image_verify.c:63:10: error: conflicting types for 'eos_crc32';
  have 'uint32_t(uint32_t, size_t)'

That is eBoot's master breakage, not anything in this repository. This job has been failing for it all along — the eFab 404 and the missing cross-libc were simply reached first.

So this workflow is now blocked on exactly two things, both already in flight and neither of them here: #71, and eBoot's build restore.

@srpatcha
srpatcha merged commit e103f28 into embeddedos-org:master Aug 29, 2026
18 of 22 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.

2 participants