unity-builder/README.md

81 lines
3.3 KiB
Markdown

# Unity - Builder
(Not affiliated with Unity Technologies)
GitHub Action to [build Unity projects](https://github.com/marketplace/actions/unity-builder) for different platforms.
Part of the <a href="https://game.ci">GameCI</a> open source project. <br /> <br />
[![Builds - Ubuntu](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-ubuntu.yml/badge.svg)](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-ubuntu.yml)
[![Builds - Windows](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-windows.yml/badge.svg)](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-windows.yml)
[![Builds - MacOS](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-mac.yml/badge.svg)](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-mac.yml)
[![codecov - test coverage](https://codecov.io/gh/game-ci/unity-builder/branch/master/graph/badge.svg)](https://codecov.io/gh/game-ci/unity-builder)
<br /> <br />
## How to use
Find the [docs](https://game.ci/docs/github/builder) on the GameCI [documentation website](https://game.ci/docs).
## Related actions
Visit the GameCI <a href="https://github.com/game-ci/unity-actions">Unity Actions</a> status repository for related
Actions.
## AWS provider with local emulator
The AWS provider can target a local AWS emulator such as [LocalStack](https://github.com/localstack/localstack).
Configure the endpoint URLs through environment variables before running tests or the action:
```
AWS_ENDPOINT=http://localhost:4566
AWS_ACCESS_KEY_ID=test
AWS_SECRET_ACCESS_KEY=test
```
When these variables are set, Unity Builder will direct its CloudFormation, ECS, Kinesis, CloudWatch Logs and S3 clients
to the emulator instead of the real AWS services. See `.github/workflows/cloud-runner-integrity-localstack.yml` for an
example configuration.
## Rclone storage provider (experimental)
Unity Builder can use rclone as an alternative storage provider for cache and build artifacts in Cloud Runner.
- Inputs:
- `storageProvider`: set to `rclone` to enable rclone-backed storage (default is `s3`).
- `rcloneRemote`: rclone remote to use, e.g. `s3:my-bucket`, `gcs:my-bucket`, `local:./path`.
When `storageProvider=rclone`:
- Retained workspace locking uses rclone operations instead of S3 (touch/delete/ls).
- Built-in container hooks are available:
- `rclone-pull-cache`, `rclone-upload-cache`
- `rclone-pull-build`, `rclone-upload-build`
You must ensure the `rclone` CLI is available in the container runtime. The built-in hooks use the `rclone/rclone` image.
Example (local testing): set `RCLONE_REMOTE=local:./temp/rclone-remote` and include the rclone hooks via `containerHookFiles`.
## Community
Feel free to join us on
<a href="http://game.ci/discord"><img height="30" src="media/Discord-Logo.svg" alt="Discord" /></a> and engage with the
community.
## Contributing
To help improve the documentation, please find the docs [repository](https://github.com/game-ci/documentation).
To contribute to Unity Builder, kindly read the [contribution guide](./CONTRIBUTING.md).
## Support us
GameCI is free for everyone forever.
You can support us at [OpenCollective](https://opencollective.com/game-ci).
## Licence
This repository is [MIT](./LICENSE) licensed.
This includes all contributions from the community.