-
Notifications
You must be signed in to change notification settings - Fork 0
Home
At its core, K9 is a powerful tool in simplifying numerous steps in the CI/CD space for game developers. It is a collection of functionality that has been used across the industry in indie pipelines to larger AAA deployments.
Each .NET project references K9.Core, providing it a common foundation, allowing each segmented project to specialize in its given area.
Each CLI application builds portable versions of itself which are cross-platform compatible via the DLL.
Bootstrapping and self-building of K9 are available via our companion B4 project.
Currently there is a minimum version requirement of .NET 5 (Core) being present on systems to utilize K9, however any newer version should work.
| Projects | Description |
|---|---|
| K9.Core | A shared library across all of the CLI applications provides much of the common interfaces to services like Perforce or Google APIs. |
| K9.SendSafely | Optimized functionality for communicating with secure transfer service Sendsafely. |
| K9.Setup | Useful functionality for setting up workspaces (generates p4config’s) or environment variables. |
| K9.TeamCity | Tooling to generate a change list from TeamCity historical build information as well as dynamically changing parameters of build from CLI. |
| K9.Unreal | Functionality to convert Unreal Gauntlet test results to readable data inside of TeamCity. |
| K9.Unity | Functionality to work with Unity. |
Each project uses an action verb system to invoke functionality contained within its library. Execution on Windows based systems can take advantage of simply using the executable:
> <project.exe> <verb> [arguments]
Or all system flavors can utilize:
$ dotnet <project.dll> <verb> [arguments]
There are two types of arguments that are used by K9, traditional arguments and the concept of override arguments. Traditional arguments are processed as normally expected and respect both starting with - and --.
Internally we always use
--for arguments
An example of one of our build steps might look like this:
dotnet %K9%\K9.TeamCity.dll SetParameter --file %teamcity.build.checkoutDir%\UNITY_VERSION
Note that the %vars% are replaced by our CI/CD (TeamCity).
These are a special type of argument that a very small subset of the projects use to define a custom replacement of some sort of value specific to them. They are formatted as key-value pairs and are represented as ---<key>=<value> when inputting via command-line arguments.