Skip to content

docker: make possible to only build the engine without committing it to Unvanquished #35

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 26, 2025

Conversation

illwieckz
Copy link
Member

One can only build the engine by doing:

./docker-build --engine-reference=<git_reference> --targets=<engine_target>

The reference for the game is now optional, the current master branch will be built if not set. The currently committed engine reference for the game reference will be built if the engine reference is not set.

The repository clone is now complete, instead of doing a shadow clone. This makes easier to checkout arbitrary commits, and in the future this will ensure the most recent tag is reachable, to compute the version string.

…to Unvanquished

One can only build the engine without committing it to Unvanquished by doing:

./docker-build --engine-reference=<git_reference> --targets=<engine_target>

The reference for the game is now optional, the current master branch
will be built if not set. The currently committed engine reference for
the game reference will be built if the engine reference is not set.

The repository clone is now complete, instead of doing a shadow clone.
This makes easier to checkout arbitrary commits, and in the future
this will ensure the most recent tag is reachable, to compute the
version string.
@illwieckz
Copy link
Member Author

For example I can build an arm64 static engine binary from this branch:

This way:

./docker-build --engine-reference=illwieckz/unpack --targets=linux-arm64

Meaning the only dependencies I need on the device to test the build is Xorg and Mesa.

With this change I don't need anymore to commit the engine submodule in some temporary Unvanquished branch to be able to build the engine in docker.

@illwieckz illwieckz changed the title docker: make possible to only build the engine docker: make possible to only build the engine without committing it to Unvanquished Mar 19, 2025
@illwieckz illwieckz force-pushed the illwieckz/docker-engine-build branch 2 times, most recently from c0ab12d to f3ed7cc Compare March 26, 2025 05:09
@slipher
Copy link
Contributor

slipher commented Mar 26, 2025

LGTM to nuking DAEMON_DIR from build-release

I guess the other files are your personal scripts that don't need review.

@illwieckz
Copy link
Member Author

Actually this proves to be very practical to me as it allowed me yesterday to bisect an engine build error that was only happening when building within docker. To proceed I opened two terminal, the one on the left with those docker scripts, one on the right with the dæmon repository, on a single branch pushed to upstream (here, master).

On every bisect step, I run the script on the left terminal using the reference given by the bisect step on the right terminal.

Without those changes, I would have to commit those engine reference for every bisect step into temporary branch/tag and push them to Unvanquished repository, and this would have been vert painful and noisy.

So I now consider this code battle tested.

@illwieckz illwieckz merged commit d9ebc48 into master Mar 26, 2025
@illwieckz illwieckz deleted the illwieckz/docker-engine-build branch March 26, 2025 14:33
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