Skip to content

Fix Build CI: fetch libilbc submodule before Docker build#158

Merged
tinpotnick merged 2 commits into
babblevoice:mainfrom
PierreFouquet:fix-buildimage-submodule-checkout
Jun 9, 2026
Merged

Fix Build CI: fetch libilbc submodule before Docker build#158
tinpotnick merged 2 commits into
babblevoice:mainfrom
PierreFouquet:fix-buildimage-submodule-checkout

Conversation

@PierreFouquet

Copy link
Copy Markdown
Contributor

Problem

The Build workflow (buildimage.yaml) has been failing on every push to main for weeks. The Docker build dies at the cmake step:

CMake Error: The source directory "/src/libilbc" does not appear to contain CMakeLists.txt.
...
ld: cannot find -l:libilbc.so.3: No such file or directory
error: could not compile `projectrtp` (lib) due to 1 previous error

Root cause

libilbc is a git submodule (.gitmodules: path = libilbc, url = https://github.com/TimothyGu/libilbc). The Dockerfile does COPY libilbc/ /src/libilbc/ and runs cmake on it to build libilbc.so.3.

The checkout step used actions/checkout@v5 with no submodules: setting. actions/checkout does not fetch submodules by default (any version), so libilbc/ is empty in the build context → cmake finds no CMakeLists.txtlibilbc.so.3 is never built → the Rust cdylib fails to link.

Fix

Add submodules: recursive to the checkout step so the build context contains the libilbc source. rust.yml already does this. The submodule is a public repo, so no extra token is needed.

This is independent of the rustfmt drift failing the Rust CI job (handled in a separate PR), and is not related to the action-version-bump PRs — checkout@v5 and @v6 both skip submodules by default.

🤖 Generated with Claude Code

The Build workflow checks out without `submodules: recursive`, so
`libilbc/` is empty in the Docker build context. The Dockerfile's
`COPY libilbc/ /src/libilbc/` copies an empty dir, cmake finds no
CMakeLists.txt, libilbc.so.3 is never built, and the Rust cdylib
fails to link (`ld: cannot find -l:libilbc.so.3`).

Fetch the submodule at checkout so the build context contains the
libilbc source. rust.yml already does this.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ule-checkout

# Conflicts:
#	.github/workflows/buildimage.yaml
@tinpotnick tinpotnick merged commit 4af612e into babblevoice:main Jun 9, 2026
0 of 2 checks passed
@PierreFouquet PierreFouquet deleted the fix-buildimage-submodule-checkout branch June 9, 2026 10:14
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