You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/03-github-cloud-runner/01-introduction.md
+25-14
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,34 @@
1
1
# Introduction
2
+
2
3
## Concept - What Does Cloud Runner Do
3
4
4
-
**Cloud Runner enables you to run, build and test workflows in the cloud, right from GitHub actions. Builder will automatically provision an environment at a Cloud Provider such as GCP and AWS. It will then send the project to be built and/or tested depending on your workflow configuration.**
5
+
**Cloud Runner enables you to run, build and test workflows in the cloud, right from GitHub actions. Builder will automatically provision an environment at a Cloud Provider such as GCP and AWS. It will then send the project to be built and/or tested depending on your workflow configuration.**
5
6
6
7
**Cloud Runner is especially useful for game development because it supports large projects. Cloud Runner provides first class support for the Unity game engine.**
7
8
8
9
Cloud Runner uses git to track and transfer your projects and uses native cloud services such as AWS Fargate and Kubernetes to run your jobs. Other version control systems are not actively supported.
9
10
10
11
## Why cloud runner?
12
+
11
13
1. Extended options and more control over disk size, memory and CPU. You can build projects of almost any size.
12
14
2. Scale up to much larger numbers of builds easily and fully on demand.
13
15
3. Run custom jobs and extend the system for any workload.
14
16
4. Create resources on-demand, we have made an effort to make sure that it costs you nothing while there are no builds running (no guarantees).
15
17
16
18
## Why not cloud runner?
19
+
17
20
1. Your project is small in size. Below 5GB Cloud Runner should not be needed.
18
21
2. You already have servers running you can use for capacity.
19
-
3. You strongly prefer to avoid the addition of time to your pipeline, slowing down results.
22
+
3. You strongly prefer to avoid the addition of time to your pipeline, slowing down results.
20
23
21
-
Although the speed of a CI pipelines is an important metric to consider, there are real challenges for game development pipelines.
24
+
Although the speed of a CI pipelines is an important metric to consider, there are real challenges for game development pipelines.
22
25
23
-
This solution prefers convenience, ease of use, scalability, throughput and flexibility.
26
+
This solution prefers convenience, ease of use, scalability, throughput and flexibility.
24
27
25
28
Faster solutions exist, but would all involve self-hosted hardware with an immediate local cache of the large project files and working directory and a dedicated server.
26
29
27
30
## Cloud Runner Release Status
31
+
28
32
Cloud Runner is in "active development" β οΈπ¨
You must use a provider with Cloud Runner, each provider's release status is described below. This indicates the stability and support for cloud runner features and workflows.
36
40
37
41
### Development
42
+
38
43
_Cloud Runner is actively maintained and kept stable by the Game CI open source project contributors._
39
44
40
45
π¬suggestions, πbugs and βοΈMinor changes are tracked as GitHub issues:
41
-
-[Game CI Issues - GitHub](https://github.com/game-ci/unity-builder/labels/cloud-runner)
46
+
47
+
-[Game CI Issues - GitHub](https://github.com/game-ci/unity-builder/labels/cloud-runner)
42
48
43
49
You can also explore the [development roadmap page](development).
Copy file name to clipboardexpand all lines: docs/03-github-cloud-runner/02-getting-started/aws.md
+5
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ Setup the following as `env` variables for cloud runner to use:
14
14
-`AWS_DEFAULT_REGION` (should be the same AWS region as the base stack e.g `eu-west-2`)
15
15
16
16
If you're using GitHub you can use a GitHub Action:
17
+
17
18
```yaml
18
19
- name: Configure AWS Credentials
19
20
uses: aws-actions/configure-aws-credentials@v1
@@ -27,6 +28,7 @@ _Note:_
27
28
_This enables Cloud Runner access AWS._
28
29
29
30
## Configuration For AWS Cloud Runner Jobs
31
+
30
32
Refer to [Configuration page](../configuration) or the [example below](#example).
31
33
32
34
### Allowed CPU/Memory Combinations
@@ -35,6 +37,7 @@ There are some limitations to the CPU and Memory parameters. AWS will only accep
35
37
[AWS Fargate Documentation, Allowed CPU and memory values (Task Definitions)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size)
36
38
37
39
#### Summary Of Format
40
+
38
41
- Values are represented as 1024:1 GB or CPU.
39
42
- Do not include the vCPU or GB suffix.
40
43
- 1 CPU can go to a max of 6 GB of memory. 2 CPU's are required to go higher.
@@ -47,6 +50,7 @@ There are some limitations to the CPU and Memory parameters. AWS will only accep
@@ -79,6 +83,7 @@ There are some limitations to the CPU and Memory parameters. AWS will only accep
79
83
- name: awsDefaultRegion
80
84
value: eu-west-2
81
85
```
86
+
82
87
_[Custom Steps](../advanced-topics/custom-steps)_
83
88
84
89
A full workflow example can be seen in builder's [Cloud Runner GitHub sourcecode for AWS Pipeline](https://github.com/game-ci/unity-builder/blob/main/.github/workflows/cloud-runner-aws-pipeline.yml).
@@ -66,6 +69,7 @@ Do not include the vCPU or GB suffix.
66
69
- name: awsDefaultRegion
67
70
value: eu-west-2
68
71
```
72
+
69
73
_[Custom Steps](../advanced-topics/custom-steps)_
70
74
71
75
A full workflow example can be seen in builder's [Cloud Runner GitHub sourcecode for AWS Pipeline](https://github.com/game-ci/unity-builder/blob/main/.github/workflows/cloud-runner-k8s-pipeline.yml).
yarn run cli -m {mode parameter} --projectPath {Your project path} {... other command line parameters}
13
13
```
14
+
14
15
# Planned (does not work currently)
16
+
15
17
We plan to offer support for Game CI via Deno. This will enable fast, typescript native runtime and you will be able to access this via the following:
18
+
16
19
```bash
17
20
dpx game-ci build
18
21
```
19
22
20
23
# Help
24
+
21
25
_You can run `yarn run cli -h` or `yarn run cli --help` to List all modes and paramters with descriptions_
22
26
23
27
# Main Command Parameters
28
+
24
29
- Default: `cli` (runs a standard build workflow)
25
30
-[Garbage Collection Modes](#garbage-collection)
26
31
27
32
# Avoiding long parameters for commands
28
-
You can avoid specifying lots of command line input for credentials (e.g all unity authentication and cloud provider settings) by using environment variables or [the input override feature](advanced-topics/input-override#example) to shorten commands signficantly.
33
+
34
+
You can avoid specifying lots of command line input for credentials (e.g all unity authentication and cloud provider settings) by using environment variables or [the input override feature](advanced-topics/input-override#example) to shorten commands signficantly.
29
35
30
36
This enables you to provide a command to pull input, e.g you can pull from a file or from a secret manager.
By sending the build to a cloud resource we must accept some overhead in time to do this. Cloud Runner tries to manage and offer good solutions to cut down any overhead. As well as supporting you to use all options to speed up common workflows, such as incremental builds.
4
4
5
5
## Warm start
6
+
6
7
β οΈDevelopment roadmap for cloud runner feature: Will enable you to maintain a minimum number of active build resources to handle incoming jobs with shorter delay times to start a job.
7
8
8
9
## Push Hooks
10
+
9
11
β οΈDevelopment roadmap for cloud runner feature: Rather than starting a job from your CI process, you can initally start a Cloud Runner job from your local git push hooks, the CI process can then catch up and observe the logs as needed.
10
12
11
13
## Sidecar
14
+
12
15
β οΈDevelopment roadmap for cloud runner feature: Continually stream changes to game-ci workloads without needing to push or even commit explicitly (configurable).
13
16
14
17
## Caching
18
+
15
19
Caching is used to speed up git clones, Unity imports and builds and can be extended for custom scenarios.
16
20
17
21
See [Caching](caching).
18
22
19
23
## Provider Platform's impact
24
+
20
25
The different Cloud Runner providers all offer different guarenetees and performance for handling your workloads.
When running any unity workload you must provide valid unity credentials. In addition to any other credentials this is already quite a lot of input. For this reason, it is common to use the command line mode with input override (link here). This enables you to provide a command to pull input, with this approach you can create a file to store credentials or pull from a secret manager.
0 commit comments