Kl automation scripts
Overview#
CLI is like git. It takes the form of [scriptname.py] options <group> options <subcommand>
ex: bcr -c debug -r iterate build bbr
TLDR:
After you run through [Setup] section, for a full proof Clean, Rebuild, & Cook:
bcr -c debug -r clean script fullbuild
bcr -c debug -r iterate script fullbuild
bcr -c debug -r iterate -t standalone cook bybook --maps=0-Lobby+U-Master-Goldfingers
bcr -c debug -r iterate -t server cook bybook --maps=0-Lobby+U-Master-Goldfingers
Setup#
- Installation: these libs on your machine from an admin console:
Python is packaged in ThirdParty folder
ftype Python.File="E:\GameDev\knl\src\Bebylon\ThirdParty\Python3\python.exe" "%1" %*
assoc .py=Python.File
Add PATHEXT system variable and append ".PY" extension to the list.
refreshenv
Optional: I have explorer set so that running launching a python script will automatically open it through the terminal.
Here are details how you can use assoc .py & ftype Python.File to set it up
https://stackoverflow.com/questions/1934675/how-to-execute-python-scripts-in-windows
After setting assoc and ftype via cmd verify it by launching regedit and checking this key
Computer\HKEY_CLASSES_ROOT\Python.File\shell\open\command
it should read :
"<path to Bebylon>\ThirdParty\Python3\python.exe" "%1" %*
with <path to Bebylon> replaced with the correct path for your drive.
- Configure Machine: Go to Bebylon\Devops\BuildAutomation\BuildAutomation\ in a terminal and execute:
setupmachine config_envars
setupmachine switch_engver
Help#
Just pass --help at the end of any command/subcommand string
bcr --help
bcr build --help
bcr build bbr -help
Build#
3 main targets to build.
-
tools (usually not necessary)
-
engine aka plain UE4Editor (this is actually what's used for cooking & building Game/Server/Client, not BBREditor. This is only needed to build if you make code changes in the base engine)
-
bbr (bebylon specific targets: BBR (standalone game), BBREditor (editor), BBRServer (server), BBRClient(client))
You can pass a configuration: debug, debuggame, development, test, shipping to build the corresponding variant
You can also choose the rebuild method: iterate (incremental), rebuild (clean+rebuild), clean (just deletes the files)\
The 'rebuild' option is still flakey because UAT sometimes deletes downstream dependencies but doesn't rebuild them. If you want to do a rebuild, do the command with -r clean and then again with -r iterate
Here are the main commands for building:#
bcr -c debug -r iterate -t server build tools
bcr -c debug -r iterate -t editor build engine
bcr -c debug -r iterate -t editor build bbr
bcr -c debug -r iterate -t standalone build bbr
bcr -c debug -r iterate -t server build bbr
Here's a script utility that does a full clean + build on all targets:#
bcr -c debug -r clean script fullbuild
bcr -c debug -r iterate script fullbuild
Cook#
Here's the command for cooking
bcr -c debug -r iterate -t standalone cook bybook --maps=0-Lobby+U-Master-Goldfingers
Run#
Notes#
When using tuple arguments in click, you must provide a default value for the option; otherwise, you will get an error if you do not specify the argument on the command line. It will not choose to pass None or a tuple of None.