Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
21da302
Fix base path so that existsSync works as intended (#551)
VioletXF Jul 27, 2023
f433356
Fix unity path (#552)
VioletXF Jul 27, 2023
b567eb9
Bump semver from 7.3.5 to 7.5.2 (#544)
dependabot[bot] Jul 27, 2023
5f78283
Bump word-wrap from 1.2.3 to 1.2.4 (#548)
dependabot[bot] Aug 15, 2023
43e1280
Removed checks for old unity versions (#558)
EliasVal Aug 20, 2023
ff551fe
Fix versions (#559)
EliasVal Aug 21, 2023
a073719
BREAKING (potentially) - Bump docker version (Ubuntu 22.04 LTS) (#556)
webbertakken Aug 22, 2023
2190fd5
Support multiple GitHub SSH deploy keys (#568)
eronnen Sep 6, 2023
a13443a
`manualExit` suppresses `-quit`, useful for buildMethods with async c…
tobyspark Sep 20, 2023
6419c87
fix android sdkmanager invocation (#582)
eronnen Oct 24, 2023
4c4611c
Feature/windows upgrades (#588)
AndrewKahr Oct 28, 2023
7afabe7
Additional Windows Image Updates (#589)
AndrewKahr Oct 31, 2023
caa0a81
License Activation fixes and Github Annotations (#590)
AndrewKahr Nov 12, 2023
2afd9cd
Additional Fixes and Improvements (#596)
AndrewKahr Nov 15, 2023
8da77ac
Ensure blank project files can be deleted by github runner (#599)
AndrewKahr Nov 16, 2023
8ca1282
Allow Running Container as Runner Host User (#600)
AndrewKahr Nov 25, 2023
96cfb84
Update CONTRIBUTING.md (#601)
webbertakken Nov 25, 2023
bbd713b
Fix pro activation (#602)
AndrewKahr Nov 28, 2023
9406bce
Search legacy path for android sdkmanager. Add 2023.2 to tests (#606)
AndrewKahr Dec 8, 2023
ff23166
Parity Fixes with Test Runner (QOL Changes) (#607)
AndrewKahr Dec 13, 2023
5ba8197
Fixed manualExit option on Mac machines (#619)
homapf Jan 13, 2024
2800d14
Fix Windows Arguments Passed to Unity (#623)
AndrewKahr Jan 21, 2024
e73b48f
Cloud runner develop - Stabilizes kubernetes provider (#531)
frostebite Feb 6, 2024
082ea39
Update cloud-runner-ci-pipeline.yml (#626)
frostebite Feb 7, 2024
4ae184c
Allow Skipping Activation (#629)
AndrewKahr Feb 19, 2024
f4d2cce
Hotfixes for 4.2.0 (#630)
AndrewKahr Feb 19, 2024
e820c9c
Fix test workflows (#632)
AndrewKahr Feb 19, 2024
fc0a52b
Add 'enableGpu' param, allowing running Unity w/o `-nographics` (#636)
codenamesimon Mar 7, 2024
0c16aab
Use capture group to find Unity version to support new 6000 versions …
AndrewKahr Mar 17, 2024
dd42746
Hotfix: Fix version checking in image-tag (#640)
AndrewKahr Mar 17, 2024
f2250e9
Enable unity licensing server for Windows (#638)
Latylus Mar 26, 2024
461ecf7
fix(windows): replacing of urls if gitPrivateToken is set (#648)
kijz May 17, 2024
b11b6a6
Fix getVersionDescription() to prioritize version tags over non-versi…
OctopBP Oct 7, 2024
83c8532
Removed all instances of interpolated strings from editor scripts so …
zdickinsonfugro Oct 10, 2024
3ae9ec8
Update @actions/cache and @actions/core to support actions/upload-art…
Egorrko Feb 8, 2025
9d6bdcb
feat: add `buildProfile` parameter (#685)
MichaelBuhler Feb 17, 2025
81ed299
Feat/migrate aws sdk v3 (#698)
MtMath Apr 10, 2025
819c251
Added install_llvmpipe script to replace -nographics in Windows build…
DoctorGester May 17, 2025
3b26780
Adds build support for tvOS in macos-latest (#709)
lupidan Jun 7, 2025
a1ebdb7
Adds support for VisionOS in UnityHub in macos (#710)
lupidan Jun 7, 2025
65607f9
Adds support for .upmconfig.toml in Windows Docker images (#705)
lupidan Jun 7, 2025
0b822c2
Update Unity version (#711)
davidmfinol Jun 8, 2025
9cd9f7e
fix: androidCreateSymbols has been deprecated (#701)
ExerciseBook Jun 9, 2025
9e91ca9
Update unity version for macOS (#712)
davidmfinol Jun 10, 2025
c6c8236
fix: mock github checks in tests (#724)
frostebite Aug 6, 2025
f7f3f70
Support activeBuildProfile parameter (#738)
ryo0ka Sep 30, 2025
88a89c9
Fix build profile name truncation on Windows (#745)
ryo0ka Oct 4, 2025
8ec161b
fix: `No changesets found` error occurs when installing Unity on MacO…
mob-sakai Oct 8, 2025
2822af5
fix: add graphql runtime dependency (#749)
ozankasikci Oct 8, 2025
6e0bf17
fix: upgrade `unity-changeset` to v3.0.1 for graphql dependency (#750)
mob-sakai Oct 9, 2025
d587557
fix: XLTS versions on MacOS are not supported (#751)
mob-sakai Oct 11, 2025
00fa0d3
fix: compile error on Unity 2021.2 or earlier (#753)
mob-sakai Oct 11, 2025
ab64768
Enable unity licensing server for macOS (#735)
cseteram Oct 14, 2025
cfdebb6
specify bee (incremental) build cache directory environment variable …
js-9 Oct 19, 2025
3a2abf9
Ensures Visual C++ Redistributables for 2013 is installed (#757)
lupidan Nov 2, 2025
1d4ee06
Simplify build profile loading logic (#762)
davidmfinol Nov 22, 2025
0c82a58
Fix bug with CloudRunner and K8s with Namespaces (#763)
harry8525 Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 28 additions & 6 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
"env": {
"node": true,
"es6": true,
"jest/globals": true
"jest/globals": true,
"es2020": true
},
"rules": {
// Error out for code formatting errors
Expand All @@ -38,9 +39,21 @@
// Mandatory spacing
"padding-line-between-statements": [
"error",
{ "blankLine": "always", "prev": "*", "next": "return" },
{ "blankLine": "always", "prev": "directive", "next": "*" },
{ "blankLine": "any", "prev": "directive", "next": "directive" }
{
"blankLine": "always",
"prev": "*",
"next": "return"
},
{
"blankLine": "always",
"prev": "directive",
"next": "*"
},
{
"blankLine": "any",
"prev": "directive",
"next": "directive"
}
],
// Enforce camelCase
"camelcase": "error",
Expand All @@ -53,8 +66,17 @@
// Unused vars are useful to keep method signatures consistent and documented
"@typescript-eslint/no-unused-vars": "off",
// For this project only use kebab-case
"unicorn/filename-case": ["error", { "cases": { "kebabCase": true } }],
"unicorn/filename-case": [
"error",
{
"cases": {
"kebabCase": true
}
}
],
// Allow Array.from(set) mitigate TS2569 which would require '--downlevelIteration'
"unicorn/prefer-spread": "off"
"unicorn/prefer-spread": "off",
// Temp disable to prevent mixing changes with other PRs
"i18n-text/no-en": "off"
}
}
19 changes: 17 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,28 @@

- ...

#### Related Issues

- ...

#### Related PRs

- ...

#### Successful Workflow Run Link

PRs don't have access to secrets so you will need to provide a link to a successful run of the workflows from your own
repo.

- ...

#### Checklist

<!-- please check all items and add your own -->

- [x] Read the contribution [guide](https://github.com/game-ci/unity-builder/blob/main/CONTRIBUTING.md) and accept the
[code](https://github.com/game-ci/unity-builder/blob/main/CODE_OF_CONDUCT.md) of conduct
- [ ] Docs (If new inputs or outputs have been added or changes to behavior that should be documented. Please make
a PR in the [documentation repo](https://github.com/game-ci/documentation))
- [ ] Docs (If new inputs or outputs have been added or changes to behavior that should be documented. Please make a PR
in the [documentation repo](https://github.com/game-ci/documentation))
- [ ] Readme (updated or not needed)
- [ ] Tests (added, updated or not needed)
2 changes: 1 addition & 1 deletion .github/workflows/activation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
id: requestActivationFile
uses: game-ci/unity-request-activation-file@v2.0-alpha-1
- name: Upload activation file
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: ${{ steps.requestActivationFile.outputs.filePath }}
path: ${{ steps.requestActivationFile.outputs.filePath }}
Expand Down
35 changes: 19 additions & 16 deletions .github/workflows/build-tests-mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@ name: Builds - MacOS
on:
workflow_dispatch:
push:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
buildForAllPlatformsWindows:
buildForAllPlatformsMacOS:
name: ${{ matrix.targetPlatform }} on ${{ matrix.unityVersion }}
runs-on: macos-latest
strategy:
Expand All @@ -20,30 +18,32 @@ jobs:
projectPath:
- test-project
unityVersion:
- 2019.4.40f1 # Minimum version for IL2CPP
- 2020.1.17f1
- 2020.2.7f1
- 2020.3.44f1
- 2021.1.28f1
- 2021.2.19f1
- 2021.3.18f1
- 2022.1.24f1
- 2022.2.6f1
- 2021.3.45f1
- 2022.3.13f1
- 2023.2.2f1
targetPlatform:
- StandaloneOSX # Build a MacOS executable
- iOS # Build an iOS executable
include:
# Additionally test enableGpu build for a standalone windows target
- unityVersion: 6000.0.36f1
targetPlatform: StandaloneOSX
- unityVersion: 6000.0.36f1
targetPlatform: StandaloneOSX
buildProfile: 'Assets/Settings/Build Profiles/Sample macOS Build Profile.asset'

steps:
###########################
# Checkout #
###########################
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
lfs: true

###########################
# Cache #
###########################
- uses: actions/cache@v3
- uses: actions/cache@v4
with:
path: ${{ matrix.projectPath }}/Library
key: Library-${{ matrix.projectPath }}-macos-${{ matrix.targetPlatform }}
Expand All @@ -66,19 +66,22 @@ jobs:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
buildName: 'GameCI Test Build'
projectPath: ${{ matrix.projectPath }}
unityVersion: ${{ matrix.unityVersion }}
targetPlatform: ${{ matrix.targetPlatform }}
buildProfile: ${{ matrix.buildProfile }}
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
# We use dirty build because we are replacing the default project settings file above
allowDirtyBuild: true

###########################
# Upload #
###########################
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: Build MacOS (${{ matrix.unityVersion }})
name: Build ${{ matrix.targetPlatform }} on MacOS (${{ matrix.unityVersion }})${{ matrix.buildProfile && ' With Build Profile' || '' }}
path: build
retention-days: 14
157 changes: 121 additions & 36 deletions .github/workflows/build-tests-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@ name: Builds - Ubuntu
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
paths-ignore:
- '.github/**'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand Down Expand Up @@ -41,81 +36,171 @@ env:

jobs:
buildForAllPlatformsUbuntu:
name: ${{ matrix.targetPlatform }} on ${{ matrix.unityVersion }}
name:
"${{ matrix.targetPlatform }} on ${{ matrix.unityVersion}}${{startsWith(matrix.buildProfile, 'Assets') && ' (via Build Profile)' || '' }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
exclude:
- targetPlatform: Android
unityVersion: 2022.2.7f1
providerStrategy:
# - local-docker
- local
projectPath:
- test-project
unityVersion:
- 2018.3.14f1
- 2018.4.36f1
- 2019.1.14f1
- 2019.2.21f1
- 2019.3.15f1
- 2019.4.40f1
- 2020.2.7f1
- 2020.3.45f1
- 2021.1.28f1
- 2021.2.19f1
- 2021.3.19f1
- 2022.1.24f1
- 2022.2.7f1
- 2021.3.32f1
- 2022.3.13f1
- 2023.2.2f1
targetPlatform:
- StandaloneOSX # Build a macOS standalone (Intel 64-bit) with mono backend.
- StandaloneWindows64 # Build a Windows 64-bit standalone with mono backend.
- StandaloneLinux64 # Build a Linux 64-bit standalone with mono backend.
- iOS # Build an iOS player.
- StandaloneLinux64 # Build a Linux 64-bit standalone with mono/il2cpp backend.
- iOS # Build an iOS project.
- Android # Build an Android .apk.
- WebGL # WebGL.
# - StandaloneWindows # Build a Windows standalone.
# - WSAPlayer # Build an Windows Store Apps player.
# - PS4 # Build a PS4 Standalone.
# - XboxOne # Build a Xbox One Standalone.
# - tvOS # Build to Apple's tvOS platform.
# - Switch # Build a Nintendo Switch player
buildWithIl2cpp:
- false
- true
additionalParameters:
- -param value
- -standaloneBuildSubtarget Server
# Skipping configurations that are not supported
exclude:
# No il2cpp support on Linux Host
- targetPlatform: StandaloneOSX
buildWithIl2cpp: true
- targetPlatform: StandaloneWindows64
buildWithIl2cpp: true
# Only builds with Il2cpp
- targetPlatform: iOS
buildWithIl2cpp: false
- targetPlatform: Android
buildWithIl2cpp: false
- targetPlatform: WebGL
buildWithIl2cpp: false
# No dedicated server support
- targetPlatform: WebGL
additionalParameters: -standaloneBuildSubtarget Server
- targetPlatform: Android
additionalParameters: -standaloneBuildSubtarget Server
- targetPlatform: iOS
additionalParameters: -standaloneBuildSubtarget Server
# No dedicated server support on Linux Host
- targetPlatform: StandaloneOSX
additionalParameters: -standaloneBuildSubtarget Server
# No il2cpp dedicated server support on Linux Host
- targetPlatform: StandaloneWindows64
additionalParameters: -standaloneBuildSubtarget Server
buildWithIl2cpp: true
include:
- unityVersion: 6000.0.36f1
targetPlatform: WebGL
- unityVersion: 6000.0.36f1
targetPlatform: WebGL
buildProfile: 'Assets/Settings/Build Profiles/Sample WebGL Build Profile.asset'

steps:
- name: Clear Space for Android Build
if: matrix.targetPlatform == 'Android'
uses: jlumbroso/free-disk-space@v1.3.1

###########################
# Checkout #
###########################
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
lfs: true

###########################
# Cache #
###########################
- uses: actions/cache@v3
- uses: actions/cache@v4
with:
path: ${{ matrix.projectPath }}/Library
key: Library-${{ matrix.projectPath }}-ubuntu-${{ matrix.targetPlatform }}
restore-keys: |
Library-${{ matrix.projectPath }}-ubuntu-
Library-

###########################
# Set Scripting Backend #
###########################
- name: Set Scripting Backend To il2cpp
if: matrix.buildWithIl2cpp == true
run: |
mv -f "./test-project/ProjectSettings/ProjectSettingsIl2cpp.asset" "./test-project/ProjectSettings/ProjectSettings.asset"

###########################
# Build #
###########################
- uses: ./
- name: Build
uses: ./
id: build-1
continue-on-error: true
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
buildName: 'GameCI Test Build'
projectPath: ${{ matrix.projectPath }}
buildProfile: ${{ matrix.buildProfile }}
unityVersion: ${{ matrix.unityVersion }}
targetPlatform: ${{ matrix.targetPlatform }}
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
providerStrategy: ${{ matrix.providerStrategy }}
allowDirtyBuild: true

- name: Sleep for Retry
if: ${{ steps.build-1.outcome == 'failure' }}
run: |
sleep 60

- name: Build (Retry 1)
uses: ./
id: build-2
if: ${{ steps.build-1.outcome == 'failure' }}
continue-on-error: true
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
buildName: 'GameCI Test Build'
projectPath: ${{ matrix.projectPath }}
buildProfile: ${{ matrix.buildProfile }}
unityVersion: ${{ matrix.unityVersion }}
targetPlatform: ${{ matrix.targetPlatform }}
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
providerStrategy: ${{ matrix.providerStrategy }}
allowDirtyBuild: true

- name: Sleep for Retry
if: ${{ steps.build-2.outcome == 'failure' }}
run: |
sleep 240

- name: Build (Retry 2)
uses: ./
id: build-3
if: ${{ steps.build-2.outcome == 'failure' }}
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
buildName: 'GameCI Test Build'
projectPath: ${{ matrix.projectPath }}
buildProfile: ${{ matrix.buildProfile }}
unityVersion: ${{ matrix.unityVersion }}
targetPlatform: ${{ matrix.targetPlatform }}
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue ${{ matrix.additionalParameters }}
providerStrategy: ${{ matrix.providerStrategy }}
allowDirtyBuild: true

###########################
# Upload #
###########################
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: Build Ubuntu (${{ matrix.unityVersion }})
name:
"Build ${{ matrix.targetPlatform }}${{ startsWith(matrix.buildProfile, 'Assets') && ' (via Build Profile)' || '' }} on Ubuntu (${{ matrix.unityVersion }}_il2cpp_${{ matrix.buildWithIl2cpp }}_params_${{ matrix.additionalParameters }})"
path: build
retention-days: 14
Loading