Build Unity projects for different platforms
 
 
 
Go to file
Frostebite 464a9d1265
feat: Add dynamic provider loader with improved error handling (#734)
* feat: Add dynamic provider loader with improved error handling

- Create provider-loader.ts with function-based dynamic import functionality
- Update CloudRunner.setupSelectedBuildPlatform to use dynamic loader for unknown providers
- Add comprehensive error handling for missing packages and interface validation
- Include test coverage for successful loading and error scenarios
- Maintain backward compatibility with existing built-in providers
- Add ProviderLoader class wrapper for backward compatibility
- Support both built-in providers (via switch) and external providers (via dynamic import)

* fix: Resolve linting errors in provider loader

- Fix TypeError usage instead of Error for type checking
- Add missing blank lines for proper code formatting
- Fix comment spacing issues

* build: Update built artifacts after linting fixes

- Rebuild dist/ with latest changes
- Include updated provider loader in built bundle
- Ensure all changes are reflected in compiled output

* build: Update built artifacts after linting fixes

- Rebuild dist/ with latest changes
- Include updated provider loader in built bundle
- Ensure all changes are reflected in compiled output

* build: Update built artifacts after linting fixes

- Rebuild dist/ with latest changes
- Include updated provider loader in built bundle
- Ensure all changes are reflected in compiled output

* build: Update built artifacts after linting fixes

- Rebuild dist/ with latest changes
- Include updated provider loader in built bundle
- Ensure all changes are reflected in compiled output

* fix: Fix AWS job dependencies and remove duplicate localstack tests

- Update AWS job to depend on both k8s and localstack jobs
- Remove duplicate localstack tests from k8s job (now only runs k8s tests)
- Remove unused cloud-runner-localstack job from main integrity check
- Fix AWS SDK warnings by using Uint8Array(0) instead of empty string for S3 PutObject
- Rename localstack-and-k8s job to k8s job for clarity

* feat: Implement provider loader dynamic imports with GitHub URL support

- Add URL detection and parsing utilities for GitHub URLs, local paths, and NPM packages
- Implement git operations for cloning and updating repositories with local caching
- Add automatic update checking mechanism for GitHub repositories
- Update provider-loader.ts to support multiple source types with comprehensive error handling
- Add comprehensive test coverage for all new functionality
- Include complete documentation with usage examples
- Support GitHub URLs: https://github.com/user/repo, user/repo@branch
- Support local paths: ./path, /absolute/path
- Support NPM packages: package-name, @scope/package
- Maintain backward compatibility with existing providers
- Add fallback mechanisms and interface validation

* feat: Implement provider loader dynamic imports with GitHub URL support

- Add URL detection and parsing utilities for GitHub URLs, local paths, and NPM packages
- Implement git operations for cloning and updating repositories with local caching
- Add automatic update checking mechanism for GitHub repositories
- Update provider-loader.ts to support multiple source types with comprehensive error handling
- Add comprehensive test coverage for all new functionality
- Include complete documentation with usage examples
- Support GitHub URLs: https://github.com/user/repo, user/repo@branch
- Support local paths: ./path, /absolute/path
- Support NPM packages: package-name, @scope/package
- Maintain backward compatibility with existing providers
- Add fallback mechanisms and interface validation

* feat: Fix provider-loader tests and URL parser consistency

- Fixed provider-loader test failures (constructor validation, module imports)
- Fixed provider-url-parser to return consistent base URLs for GitHub sources
- Updated error handling to use TypeError consistently
- All provider-loader and provider-url-parser tests now pass
- Fixed prettier and eslint formatting issues

* feat: Implement provider loader dynamic imports with GitHub URL support

- Add URL detection and parsing utilities for GitHub URLs, local paths, and NPM packages
- Implement git operations for cloning and updating repositories with local caching
- Add automatic update checking mechanism for GitHub repositories
- Update provider-loader.ts to support multiple source types with comprehensive error handling
- Add comprehensive test coverage for all new functionality
- Include complete documentation with usage examples
- Support GitHub URLs: https://github.com/user/repo, user/repo@branch
- Support local paths: ./path, /absolute/path
- Support NPM packages: package-name, @scope/package
- Maintain backward compatibility with existing providers
- Add fallback mechanisms and interface validation

* feat: Implement provider loader dynamic imports with GitHub URL support

- Add URL detection and parsing utilities for GitHub URLs, local paths, and NPM packages
- Implement git operations for cloning and updating repositories with local caching
- Add automatic update checking mechanism for GitHub repositories
- Update provider-loader.ts to support multiple source types with comprehensive error handling
- Add comprehensive test coverage for all new functionality
- Include complete documentation with usage examples
- Support GitHub URLs: https://github.com/user/repo, user/repo@branch
- Support local paths: ./path, /absolute/path
- Support NPM packages: package-name, @scope/package
- Maintain backward compatibility with existing providers
- Add fallback mechanisms and interface validation

* m

* m
2025-09-13 00:54:21 +01:00
.cursor feat: Add dynamic provider loader with improved error handling (#734) 2025-09-13 00:54:21 +01:00
.github feat: Add dynamic provider loader with improved error handling (#734) 2025-09-13 00:54:21 +01:00
.vscode Feature/windows upgrades (#588) 2023-10-28 12:21:10 -07:00
dist feat: Add dynamic provider loader with improved error handling (#734) 2025-09-13 00:54:21 +01:00
game-ci Cloud runner develop - latest fixes (#524) 2023-03-27 12:14:23 +01:00
media remove anything recognizable as Unity (#184) 2020-12-06 17:57:57 +01:00
scripts Cloud runner develop - Stabilizes kubernetes provider (#531) 2024-02-06 23:46:31 +00:00
src feat: Add dynamic provider loader with improved error handling (#734) 2025-09-13 00:54:21 +01:00
test-project Update Unity version (#711) 2025-06-08 11:00:16 -04:00
.dockerignore Refactor action to typescript (#226) 2021-03-14 00:44:01 +01:00
.editorconfig Refactor action to typescript (#226) 2021-03-14 00:44:01 +01:00
.eslintignore Refactor action to typescript (#226) 2021-03-14 00:44:01 +01:00
.eslintrc.json fix 2025-06-11 15:56:27 +01:00
.gitattributes fix: ensure line endings (#366) 2022-03-30 23:27:10 +02:00
.gitignore fix: ensure line endings (#366) 2022-03-30 23:27:10 +02:00
.npmrc Misc QOL Updates and bug fixes (#505) 2023-02-13 23:07:10 -06:00
.prettierignore Refactor action to typescript (#226) 2021-03-14 00:44:01 +01:00
.prettierrc.json fix: make v character in version tags optional (#423) 2022-08-04 02:09:32 +02:00
.yarnrc Refactor action to typescript (#226) 2021-03-14 00:44:01 +01:00
CODE_OF_CONDUCT.md Add code of conduct 2020-01-19 01:54:56 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md (#601) 2023-11-25 19:33:36 +01:00
LICENSE Add license (MIT) 2019-11-30 19:02:47 +01:00
README.md Update README.md 2025-09-10 02:48:46 +01:00
action.yml feat: add `buildProfile` parameter (#685) 2025-02-17 11:41:38 -06:00
codecov.yml Stop hammering patches 🔨 2020-05-01 17:55:27 +02:00
jest.ci.config.js ci(jest): add jest.ci.config with forceExit/detectOpenHandles and test:ci script; fix(windows): skip grep-based version regex tests; logs: echo CACHE_KEY/retained markers; hooks: include AWS hooks on aws provider 2025-09-04 21:14:53 +01:00
jest.config.js fix: mock github checks in tests (#724) 2025-08-06 06:07:52 +01:00
jest.setup.js fix 2025-06-11 15:56:27 +01:00
lefthook.yml chore: remove audit pre push (#422) 2022-08-03 00:57:22 +02:00
package.json ci(jest): add jest.ci.config with forceExit/detectOpenHandles and test:ci script; fix(windows): skip grep-based version regex tests; logs: echo CACHE_KEY/retained markers; hooks: include AWS hooks on aws provider 2025-09-04 21:14:53 +01:00
tsconfig.json Code cleanup (#511) 2023-03-03 16:25:40 -08:00
yarn.lock fix 2025-06-11 15:56:27 +01:00

README.md

Unity - Builder

(Not affiliated with Unity Technologies)

GitHub Action to build Unity projects for different platforms.

Part of the GameCI open source project.

Builds - Ubuntu Builds - Windows Builds - MacOS codecov - test coverage

How to use

Find the docs on the GameCI documentation website.

Visit the GameCI Unity Actions status repository for related Actions.

Community

Feel free to join us on Discord and engage with the community.

Contributing

To help improve the documentation, please find the docs repository.

To contribute to Unity Builder, kindly read the contribution guide.

Support us

GameCI is free for everyone forever.

You can support us at OpenCollective.

Licence

This repository is MIT licensed.

This includes all contributions from the community.