-
-
Notifications
You must be signed in to change notification settings - Fork 65
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
A whole new builder. #31
base: main
Are you sure you want to change the base?
Conversation
Rewritten in python. Only replace `build.sh` (but can easily replace scons runners and `build-release.sh`). See `./cli.py -h` for help.
Draft, as it needs some testing, and I realize some |
CC @Xrayez who might be interested too :) |
Will likely need a more graceful |
Looks promising, I may give this a try once 3.3-stable is released. 🙂 I've had a problem of git synchronization from remote when using tags vs commits, so oftentimes I just had to skip this in current Another thing which can be added is custom modules support. I believe that's the reason why people like me would like to use official build scripts in the first place. Probably there may be no need to use But that's for another PR, I could possibly work on improving the usability behind using custom modules myself if the above makes sense. |
So right now the full git step will be
So you can fetch any ref with proper addressing, even tags. E.g.:
Or even different remotes (assuming you added it manually in the git folder beforehand):
I think an easy addition as soon as I port It could be even done without the porting, by just editing all the platforms |
Missing godot-uwp
Non-configurable image versionHad to modify
Git checkout issue
Missing
|
Is there a way to build a list of containers at once? Somehow my laptop rebooted tonight (crashed?) and I've only managed to compile for Windows, so I'd like to "resume" the build except for Windows. With the old script, I could just comment out those build steps to prevent them from building again. I know that it would be safe to re-run all builds for production, though. |
You can use the `run` command, and chain multiple `-k container` to specify
which container to build
…On Sun, Apr 11, 2021, 13:45 Andrii Doroshenko ***@***.***> wrote:
Is there a way to build a list of containers at once? Somehow my laptop
rebooted tonight (crashed?) and I've only managed to compile for Windows,
so I'd like to "resume" the build except for Windows. With the old script,
I could just comment out those build steps to prevent them from building
again.
I know that it would be safe to re-run all builds for production, though.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#31 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAM4C3TU3GJ66DO4SQOCHO3TIGDW5ANCNFSM42BTEW5A>
.
|
Ah, I didn't realize that the same argument can be specified multiple times. I've re-run the script and stumbled upon this error:
I have no idea if it's caused by using the new build script or it's simply LTO error or so, I literally haven't touched anything to cause Ctrl + C... |
@Xrayez did the python script terminate or just the container (if you where doing multiple run)? Is it possible it went out of memory? LTO can require quite a few GiB of RAM. |
This is likely an issue. I have 8 GB of RAM, but it wasn't enough even for compiling mono (see my newbie endeavors in godotengine/build-containers#74). I then configured/increased the swap file to 8 GB, but perhaps even that is not enough? But then it would also fail on classical Windows builds, but those completed just fine. It's mono which get crashed. So likely not an issue with the Python build script. |
So I investigated/tested the problem further, and I get my statements back. I think it's likely due to Python at the end of the day (literally). I think it would take me more than 24 hours to build everything with LTO on my Intel i3 laptop, and I got either "Terminated" or "Killed" messages occuring sporadically (either at LTO stage, or even compilation stages). Increasing the swap size to 16 GB seems to help and I've managed to build Linux, but then got "Killed" signal at Javascript build. Incidentally, this only happened at night time. I also disable sleep/hibernation so the builds don't get interrupted on idle time. I've tried building everything with the old
That said, you may not even experience the error yourself if you have a powerful machine. |
Rewritten in python (tested 3.8).
Only replace
build.sh
(but can easily replace scons runners andbuild-release.sh
).See
./cli.py -h
for help.Highlights
release
action for the oldbuild.sh
behaviour.json
config file, or cli arguments before theaction
.run
to only build containers from currentgodot.tar.gz
, can specific one or more (e.g.-k JavaScript
), default all, can also start the container in interactive mode.builder/images.py
. Add a new config for a new container, or edit their parametersbuilder/config.py
. Adding a variable to theConfig
class will automatically add it as a cli option.PodmanRunner
can run in non-block mode (not exposed), so it could be also used as part of a rocket chat bot.Note: Some config options are unused while I port
build-release.sh
(which will probably be actiondist
).Note2: I also want to add the action
build
which would run scons (and replacebuild-plat/build.sh
)Note3: There's quite a few things I couldn't test. So this is draft for now.
@akien-mga I hope this makes up for all my ranting about the build scripts ❤️
Usage: