Closed Derpius closed 2 months ago
Yeah this is probably one of the most important things to do, anyways Vurv implemented GMA packing by writing his own GMA implementation, but that has a lot of issues like the blacklist being out of sync with Facepunch's blacklist...
Could either host gmad.exe ourselves or compile from source (and cache)
I would strongly suggest the former - Ideally not committed into the repo, but I can't think of any great alternatives
All blockers done, will start working on this
Nearly complete in branch 63-cd-ci, although I have yet to write logic for caching. It's a little difficult, every submodule is in wildly different places, not sure how to cache those. Although, it should be simple enough to cache previous builds.
Two options for caching submodules:
This is probably the fastest approach. You perform incremental updates whenever you update the submodule’s commit in the project. It probably doesn’t handle switching the branch of a submodule though.
This is robust to changing branches, and is marginally faster on cache hit (but much slower on cache miss in the case where the repo was previously cloned)
Caching for submodules is done, although not really done that well but it should do. Now I'm working on using sccache for caching, it's a "modern" ccache developed by Mozilla which has real nice plug-n-play support for everything (msvc, clang, gcc, etc).
Sccache plugged in, but further blockers remain to switching to ubuntu cross-compilation. Will make a ticket
All done in #70
Context
v*.*.*
scripts
folderScope
/release
directory in the root of the repositoryINSTALL.md
,gelly-bootstrap
, etc.)CMakeLists.txt
to set the binary output directory to/release/garrysmod/lua/bin
(see VisTrace for an example of this)CMakeLists.txt
to copy the flex dependencies (and any other dlls) to/release
.gitignore
to prevent staging the release binaries within the/release
foldermaster
branch onlysp-addon
branch to a temp foldergmad.exe
and output to/release/garrysmod/data/...
gmad.exe
from the repository and fetch it in the actionsteamcmd
. See what Vurv did for wiremod's workshop CI/CDAcceptance Criteria
master
branchOther
This will be harder to do without #61
This depends on #56 (probably easier to do in parallel)