Repository navigation
ci: stop the simulation workflow failing on repositories that do not exist - #80
Merged
srpatcha merged 2 commits intoAug 29, 2026
Merged
Conversation
…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>
Kartikey1306
requested review from
hshanmug12,
maheshmunnangi and
srpatcha
as code owners
August 28, 2026 19:27
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>
Contributor
Author
|
Final state: 14 failing checks → 4, and every remaining one is accounted for.
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:
That is eBoot's 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
approved these changes
Aug 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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/eFabdoes not existTwo jobs check it out:
build-kernelclones it only to runcad_pipeline.pyovereFab/samples/eos_reference_board.kicad_pcb. The failed checkout kills the job — which takessimulate-qemuandintegration-summarywith 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-pipelineexists only to exercise eFab. Its steps are commented out and replaced with one that says why.embeddedos-org/eVeradoes not exist eitherSame 404, from the
test-middlewarematrix. Removed from the matrix, and the job's display name updated to match. The other ten repositories in that matrix do exist.cache: pipis a hard failure, not a fallbacksetup-pythonerrors 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 botheos-simulation.ymlandpython-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_arm64EBLDR_BOARD. This set an unrelated cache variable, so the board silently defaulted tonone— the ARM64 board port was never being built.-DCMAKE_TOOLCHAIN_FILE=cmake/aarch64-linux-gnu.cmakecmake/holds onlycppcheck.cmake,deps.cmake,ebuild_layers.cmake. The toolchain file is intoolchains/. Identical to the ARM job defect fixed in #75.Verification
ctest --no-tests=errorEverything 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:
Host Tests (x86_64)(tests/test_e2e.cunder-Werror) andCross-compile ARM Cortex-M4(missing-Ihal/include) are the other two failures. fix: restore a green build on master #71 already fixes both and I have deliberately not duplicated a maintainer's open PR.build-kernelwill still fail at its eBoot build step until eBoot'smastercompiles again. That is eBoot fix(kernel): restore mutex owner priority after waiter timeout #55/feat: transition package verification from stubs to production-grade crypto #57/fix(power): reject negative peripheral IDs #58 — nothing this repository can do about it. With-DEBLDR_BOARD=qemu_arm64now actually taking effect, that step will build more than it used to, so it may surface eBoot board-port errors that the silentnonefallback was hiding.