Build Script and Github CI Enhancements#60
Open
coolDudeRude wants to merge 11 commits into
Open
Conversation
- Add centralized build script (build.sh) - Optimize GitHub Actions using caching and partial clones - Update .gitignore and move output directory from 'compiled/' to 'build/' - Remove redundant daily.yml workflow - Remove update.sh and integrate gmqcc compilation into build.sh
- Add github workflow to test building the mod against xonotic master
- Add short-hand flags `-nf` and `-ni` for submodule control - Replace file-existence checks for submodules with `git submodule status` - Improve logging to include commit hashes during initialization - Update usage documentation
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.
This PR overhauls the build scripts and GitHub Actions workflows. It replaces the legacy update.sh with a unified build.sh with additional changes:
Build Script
--filter=blob:none(partial clone) flag for submodule initialization. This reduces the xonotic-data clone size from ~1GB to ~700MB, drastically speeding up local and CI setups.build/<branch-name>/directory.BUILD_MOD.Note
The
--filterflag is used to speed up setup and compilation for those who are only interested in using the mod. For development, the submodules must be initialized manually before running the build script or passing-nfor--no-filterflag to the build script to setup submodules automatically with full blob history.Important
By default, the build script now synchronizes all submodules to the specific commits tracked in the parent repository. This ensures build reproducibility across different environments.
Use the
-ni (--no-init)flag to skip this initialization and synchronization if you are testing local submodule changes or have different submodule commit checked out.CI Enhancements
blob:nonefilter into the actions/checkout step, significantly reducing CI runner disk usage and download time.progs-<branch>-<tag>.build.ymlintodaily.yml.Cleanup