mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00
Compare commits
No commits in common. "main" and "v2.0.0-alpha-14" have entirely different histories.
main
...
v2.0.0-alp
@ -1,15 +1,10 @@
|
|||||||
{
|
{
|
||||||
"plugins": ["jest", "@typescript-eslint", "prettier", "unicorn"],
|
"plugins": ["jest", "@typescript-eslint", "prettier", "unicorn"],
|
||||||
"extends": ["plugin:unicorn/recommended", "plugin:github/recommended", "plugin:prettier/recommended"],
|
"extends": ["plugin:unicorn/recommended", "plugin:github/recommended", "prettier"],
|
||||||
"parser": "@typescript-eslint/parser",
|
"parser": "@typescript-eslint/parser",
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 2020,
|
"ecmaVersion": 9,
|
||||||
"sourceType": "module",
|
"sourceType": "module"
|
||||||
"extraFileExtensions": [".mjs"],
|
|
||||||
"ecmaFeatures": {
|
|
||||||
"impliedStrict": true
|
|
||||||
},
|
|
||||||
"project": "./tsconfig.json"
|
|
||||||
},
|
},
|
||||||
"env": {
|
"env": {
|
||||||
"node": true,
|
"node": true,
|
||||||
@ -17,65 +12,8 @@
|
|||||||
"jest/globals": true
|
"jest/globals": true
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
// Error out for code formatting errors
|
|
||||||
"prettier/prettier": "error",
|
"prettier/prettier": "error",
|
||||||
// Namespaces or sometimes needed
|
"import/no-extraneous-dependencies": 0,
|
||||||
"import/no-namespace": "off",
|
"import/no-namespace": "off"
|
||||||
// Properly format comments
|
|
||||||
"spaced-comment": ["error", "always"],
|
|
||||||
"lines-around-comment": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"beforeBlockComment": true,
|
|
||||||
"beforeLineComment": true,
|
|
||||||
"allowBlockStart": true,
|
|
||||||
"allowObjectStart": true,
|
|
||||||
"allowArrayStart": true,
|
|
||||||
"allowClassStart": true,
|
|
||||||
"ignorePattern": "pragma|ts-ignore"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
// Mandatory spacing
|
|
||||||
"padding-line-between-statements": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"blankLine": "always",
|
|
||||||
"prev": "*",
|
|
||||||
"next": "return"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"blankLine": "always",
|
|
||||||
"prev": "directive",
|
|
||||||
"next": "*"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"blankLine": "any",
|
|
||||||
"prev": "directive",
|
|
||||||
"next": "directive"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
// Enforce camelCase
|
|
||||||
"camelcase": "error",
|
|
||||||
// Allow forOfStatements
|
|
||||||
"no-restricted-syntax": ["error", "ForInStatement", "LabeledStatement", "WithStatement"],
|
|
||||||
// Continue is viable in forOf loops in generators
|
|
||||||
"no-continue": "off",
|
|
||||||
// From experience, named exports are almost always desired. I got tired of this rule
|
|
||||||
"import/prefer-default-export": "off",
|
|
||||||
// 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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
// Allow Array.from(set) mitigate TS2569 which would require '--downlevelIteration'
|
|
||||||
"unicorn/prefer-spread": "off",
|
|
||||||
// Temp disable to prevent mixing changes with other PRs
|
|
||||||
"i18n-text/no-en": "off"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
9
.gitattributes
vendored
9
.gitattributes
vendored
@ -1,6 +1,3 @@
|
|||||||
[attr]generated-code-file text eol=lf -diff linguist-generated=true
|
dist/index* -diff linguist-generated=true
|
||||||
[attr]generated-binary-file -text -diff linguist-generated=true
|
dist/licenses* -diff linguist-generated=true
|
||||||
|
dist/sourcemap* -diff linguist-generated=true
|
||||||
dist/index* generated-code-file
|
|
||||||
dist/licenses* generated-code-file
|
|
||||||
dist/sourcemap* generated-code-file
|
|
||||||
|
4
.github/FUNDING.yml
vendored
4
.github/FUNDING.yml
vendored
@ -1,8 +1,8 @@
|
|||||||
# These are supported funding model platforms
|
# These are supported funding model platforms
|
||||||
|
|
||||||
github: game-ci
|
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||||
patreon: # Replace with a single Patreon username
|
patreon: # Replace with a single Patreon username
|
||||||
open_collective: # replace with a single OpenCollective username
|
open_collective: game-ci
|
||||||
ko_fi: # Replace with a single Ko-fi username
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
|
20
.github/pull_request_template.md
vendored
20
.github/pull_request_template.md
vendored
@ -2,28 +2,10 @@
|
|||||||
|
|
||||||
- ...
|
- ...
|
||||||
|
|
||||||
#### 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
|
#### Checklist
|
||||||
|
|
||||||
<!-- please check all items and add your own -->
|
<!-- 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
|
- [x] Read the contribution [guide](../CONTRIBUTING.md) and accept the [code](../CODE_OF_CONDUCT.md) of conduct
|
||||||
[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))
|
|
||||||
- [ ] Readme (updated or not needed)
|
- [ ] Readme (updated or not needed)
|
||||||
- [ ] Tests (added, updated or not needed)
|
- [ ] Tests (added, updated or not needed)
|
||||||
|
2
.github/workflows/activation.yml
vendored
2
.github/workflows/activation.yml
vendored
@ -13,7 +13,7 @@ jobs:
|
|||||||
id: requestActivationFile
|
id: requestActivationFile
|
||||||
uses: game-ci/unity-request-activation-file@v2.0-alpha-1
|
uses: game-ci/unity-request-activation-file@v2.0-alpha-1
|
||||||
- name: Upload activation file
|
- name: Upload activation file
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.requestActivationFile.outputs.filePath }}
|
name: ${{ steps.requestActivationFile.outputs.filePath }}
|
||||||
path: ${{ steps.requestActivationFile.outputs.filePath }}
|
path: ${{ steps.requestActivationFile.outputs.filePath }}
|
||||||
|
60
.github/workflows/aws-tests.yml
vendored
Normal file
60
.github/workflows/aws-tests.yml
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
name: AWS
|
||||||
|
|
||||||
|
on:
|
||||||
|
push: { branches: [aws, remote-builder/refactor] }
|
||||||
|
|
||||||
|
env:
|
||||||
|
AWS_REGION: 'eu-west-1'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buildForAllPlatforms:
|
||||||
|
name: AWS Fargate Build
|
||||||
|
if: github.event.pull_request.draft == false
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
projectPath:
|
||||||
|
- test-project
|
||||||
|
unityVersion:
|
||||||
|
# - 2019.2.11f1
|
||||||
|
- 2019.3.15f1
|
||||||
|
targetPlatform:
|
||||||
|
#- StandaloneOSX # Build a macOS standalone (Intel 64-bit).
|
||||||
|
#- StandaloneWindows64 # Build a Windows 64-bit standalone.
|
||||||
|
- StandaloneLinux64 # Build a Linux 64-bit standalone.
|
||||||
|
#- iOS # Build an iOS player.
|
||||||
|
#- 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
|
||||||
|
# steps
|
||||||
|
steps:
|
||||||
|
- name: Checkout (default)
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
if: github.event.event_type != 'pull_request_target'
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
- name: Configure AWS Credentials
|
||||||
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: eu-west-2
|
||||||
|
- uses: ./
|
||||||
|
id: aws-fargate-unity-build
|
||||||
|
env:
|
||||||
|
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
AWS_DEFAULT_REGION: eu-west-2
|
||||||
|
with:
|
||||||
|
remoteBuildCluster: aws
|
||||||
|
projectPath: ${{ matrix.projectPath }}
|
||||||
|
unityVersion: ${{ matrix.unityVersion }}
|
||||||
|
targetPlatform: ${{ matrix.targetPlatform }}
|
||||||
|
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
79
.github/workflows/build-tests-mac.yml
vendored
79
.github/workflows/build-tests-mac.yml
vendored
@ -1,79 +0,0 @@
|
|||||||
name: Builds - MacOS
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildForAllPlatformsMacOS:
|
|
||||||
name: ${{ matrix.targetPlatform }} on ${{ matrix.unityVersion }}
|
|
||||||
runs-on: macos-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
projectPath:
|
|
||||||
- test-project
|
|
||||||
unityVersion:
|
|
||||||
- 2021.3.45f1
|
|
||||||
- 2022.3.13f1
|
|
||||||
- 2023.2.2f1
|
|
||||||
targetPlatform:
|
|
||||||
- StandaloneOSX # Build a MacOS executable
|
|
||||||
- iOS # Build an iOS executable
|
|
||||||
|
|
||||||
steps:
|
|
||||||
###########################
|
|
||||||
# Checkout #
|
|
||||||
###########################
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
lfs: true
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Cache #
|
|
||||||
###########################
|
|
||||||
- uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ${{ matrix.projectPath }}/Library
|
|
||||||
key: Library-${{ matrix.projectPath }}-macos-${{ matrix.targetPlatform }}
|
|
||||||
restore-keys: |
|
|
||||||
Library-${{ matrix.projectPath }}-macos-
|
|
||||||
Library-
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Set Scripting Backend #
|
|
||||||
###########################
|
|
||||||
- name: Set Scripting Backend To il2cpp
|
|
||||||
run: |
|
|
||||||
mv -f "./test-project/ProjectSettings/ProjectSettingsIl2cpp.asset" "./test-project/ProjectSettings/ProjectSettings.asset"
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Build #
|
|
||||||
###########################
|
|
||||||
- uses: ./
|
|
||||||
env:
|
|
||||||
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 }}
|
|
||||||
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@v4
|
|
||||||
with:
|
|
||||||
name: Build ${{ matrix.targetPlatform }} on MacOS (${{ matrix.unityVersion }})
|
|
||||||
path: build
|
|
||||||
retention-days: 14
|
|
206
.github/workflows/build-tests-ubuntu.yml
vendored
206
.github/workflows/build-tests-ubuntu.yml
vendored
@ -1,206 +0,0 @@
|
|||||||
name: Builds - Ubuntu
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
env:
|
|
||||||
UNITY_LICENSE:
|
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>\n <License
|
|
||||||
id=\"Terms\">\n <MachineBindings>\n <Binding Key=\"1\"
|
|
||||||
Value=\"576562626572264761624c65526f7578\"/>\n <Binding Key=\"2\"
|
|
||||||
Value=\"576562626572264761624c65526f7578\"/>\n </MachineBindings>\n <MachineID
|
|
||||||
Value=\"D7nTUnjNAmtsUMcnoyrqkgIbYdM=\"/>\n <SerialHash
|
|
||||||
Value=\"2033b8ac3e6faa3742ca9f0bfae44d18f2a96b80\"/>\n <Features>\n <Feature
|
|
||||||
Value=\"33\"/>\n <Feature Value=\"1\"/>\n <Feature Value=\"12\"/>\n <Feature
|
|
||||||
Value=\"2\"/>\n <Feature Value=\"24\"/>\n <Feature Value=\"3\"/>\n <Feature
|
|
||||||
Value=\"36\"/>\n <Feature Value=\"17\"/>\n <Feature Value=\"19\"/>\n <Feature
|
|
||||||
Value=\"62\"/>\n </Features>\n <DeveloperData
|
|
||||||
Value=\"AQAAAEY0LUJHUlgtWEQ0RS1aQ1dWLUM1SlctR0RIQg==\"/>\n <SerialMasked
|
|
||||||
Value=\"F4-BGRX-XD4E-ZCWV-C5JW-XXXX\"/>\n <StartDate Value=\"2021-02-08T00:00:00\"/>\n <UpdateDate
|
|
||||||
Value=\"2021-02-09T00:34:57\"/>\n <InitialActivationDate
|
|
||||||
Value=\"2021-02-08T00:34:56\"/>\n <LicenseVersion Value=\"6.x\"/>\n <ClientProvidedVersion
|
|
||||||
Value=\"2018.4.30f1\"/>\n <AlwaysOnline Value=\"false\"/>\n <Entitlements>\n <Entitlement
|
|
||||||
Ns=\"unity_editor\" Tag=\"UnityPersonal\" Type=\"EDITOR\"
|
|
||||||
ValidTo=\"9999-12-31T00:00:00\"/>\n <Entitlement Ns=\"unity_editor\" Tag=\"DarkSkin\"
|
|
||||||
Type=\"EDITOR_FEATURE\" ValidTo=\"9999-12-31T00:00:00\"/>\n </Entitlements>\n </License>\n<Signature
|
|
||||||
xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><SignedInfo><CanonicalizationMethod
|
|
||||||
Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/><SignatureMethod
|
|
||||||
Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/><Reference URI=\"#Terms\"><Transforms><Transform
|
|
||||||
Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/></Transforms><DigestMethod
|
|
||||||
Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/><DigestValue>m0Db8UK+ktnOLJBtHybkfetpcKo=</DigestValue></Reference></SignedInfo><SignatureValue>o/pUbSQAukz7+ZYAWhnA0AJbIlyyCPL7bKVEM2lVqbrXt7cyey+umkCXamuOgsWPVUKBMkXtMH8L\n5etLmD0getWIhTGhzOnDCk+gtIPfL4jMo9tkEuOCROQAXCci23VFscKcrkB+3X6h4wEOtA2APhOY\nB+wvC794o8/82ffjP79aVAi57rp3Wmzx+9pe9yMwoJuljAy2sc2tIMgdQGWVmOGBpQm3JqsidyzI\nJWG2kjnc7pDXK9pwYzXoKiqUqqrut90d+kQqRyv7MSZXR50HFqD/LI69h68b7P8Bjo3bPXOhNXGR\n9YCoemH6EkfCJxp2gIjzjWW+l2Hj2EsFQi8YXw==</SignatureValue></Signature></root>"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildForAllPlatformsUbuntu:
|
|
||||||
name:
|
|
||||||
"${{ matrix.targetPlatform }} on ${{ matrix.unityVersion}}${{startsWith(matrix.buildProfile, 'Assets') && ' (via Build Profile)' || '' }}"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
providerStrategy:
|
|
||||||
# - local-docker
|
|
||||||
- local
|
|
||||||
projectPath:
|
|
||||||
- test-project
|
|
||||||
unityVersion:
|
|
||||||
- 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/il2cpp backend.
|
|
||||||
- iOS # Build an iOS project.
|
|
||||||
- Android # Build an Android .apk.
|
|
||||||
- WebGL # WebGL.
|
|
||||||
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@v4
|
|
||||||
with:
|
|
||||||
lfs: true
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Cache #
|
|
||||||
###########################
|
|
||||||
- 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 #
|
|
||||||
###########################
|
|
||||||
- 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 ${{ matrix.additionalParameters }}
|
|
||||||
providerStrategy: ${{ matrix.providerStrategy }}
|
|
||||||
allowDirtyBuild: true
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Upload #
|
|
||||||
###########################
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
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
|
|
145
.github/workflows/build-tests-windows.yml
vendored
145
.github/workflows/build-tests-windows.yml
vendored
@ -1,145 +0,0 @@
|
|||||||
name: Builds - Windows
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildForAllPlatformsWindows:
|
|
||||||
name: ${{ matrix.targetPlatform }} on ${{ matrix.unityVersion }}
|
|
||||||
runs-on: windows-2022
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
projectPath:
|
|
||||||
- test-project
|
|
||||||
unityVersion:
|
|
||||||
- 2021.3.32f1
|
|
||||||
- 2022.3.13f1
|
|
||||||
- 2023.2.2f1
|
|
||||||
targetPlatform:
|
|
||||||
- Android # Build an Android apk.
|
|
||||||
- StandaloneWindows64 # Build a Windows 64-bit standalone.
|
|
||||||
- WSAPlayer # Build a UWP App
|
|
||||||
- tvOS # Build an Apple TV XCode project
|
|
||||||
enableGpu:
|
|
||||||
- false
|
|
||||||
include:
|
|
||||||
# Additionally test enableGpu build for a standalone windows target
|
|
||||||
- projectPath: test-project
|
|
||||||
unityVersion: 2023.2.2f1
|
|
||||||
targetPlatform: StandaloneWindows64
|
|
||||||
enableGpu: true
|
|
||||||
|
|
||||||
steps:
|
|
||||||
###########################
|
|
||||||
# Checkout #
|
|
||||||
###########################
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
lfs: true
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Cache #
|
|
||||||
###########################
|
|
||||||
- uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ${{ matrix.projectPath }}/Library
|
|
||||||
key: Library-${{ matrix.projectPath }}-windows-${{ matrix.targetPlatform }}
|
|
||||||
restore-keys: |
|
|
||||||
Library-${{ matrix.projectPath }}-windows-
|
|
||||||
Library-
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Set Scripting Backend #
|
|
||||||
###########################
|
|
||||||
- name: Set Scripting Backend To il2cpp
|
|
||||||
run: |
|
|
||||||
Move-Item -Path "./test-project/ProjectSettings/ProjectSettingsIl2cpp.asset" -Destination "./test-project/ProjectSettings/ProjectSettings.asset" -Force
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Build #
|
|
||||||
###########################
|
|
||||||
- name: Build
|
|
||||||
uses: ./
|
|
||||||
id: build-1
|
|
||||||
continue-on-error: true
|
|
||||||
timeout-minutes: 30
|
|
||||||
env:
|
|
||||||
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 }}
|
|
||||||
enableGpu: ${{ matrix.enableGpu }}
|
|
||||||
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
|
||||||
allowDirtyBuild: true
|
|
||||||
# We use dirty build because we are replacing the default project settings file above
|
|
||||||
|
|
||||||
- name: Sleep for Retry
|
|
||||||
if: ${{ steps.build-1.outcome == 'failure' }}
|
|
||||||
run: |
|
|
||||||
Start-Sleep -s 120
|
|
||||||
|
|
||||||
- name: Build Retry 1
|
|
||||||
uses: ./
|
|
||||||
id: build-2
|
|
||||||
continue-on-error: true
|
|
||||||
timeout-minutes: 30
|
|
||||||
if: steps.build-1.outcome == 'failure'
|
|
||||||
env:
|
|
||||||
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 }}
|
|
||||||
enableGpu: ${{ matrix.enableGpu }}
|
|
||||||
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
|
||||||
allowDirtyBuild: true
|
|
||||||
# We use dirty build because we are replacing the default project settings file above
|
|
||||||
|
|
||||||
- name: Sleep for Retry
|
|
||||||
if: ${{ steps.build-1.outcome == 'failure' && steps.build-2.outcome == 'failure' }}
|
|
||||||
run: |
|
|
||||||
Start-Sleep -s 240
|
|
||||||
|
|
||||||
- name: Build Retry 2
|
|
||||||
uses: ./
|
|
||||||
id: build-3
|
|
||||||
timeout-minutes: 30
|
|
||||||
if: ${{ steps.build-1.outcome == 'failure' && steps.build-2.outcome == 'failure' }}
|
|
||||||
env:
|
|
||||||
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 }}
|
|
||||||
enableGpu: ${{ matrix.enableGpu }}
|
|
||||||
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
|
||||||
allowDirtyBuild: true
|
|
||||||
# We use dirty build because we are replacing the default project settings file above
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Upload #
|
|
||||||
###########################
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: Build ${{ matrix.targetPlatform }} on Windows (${{ matrix.unityVersion }})${{ matrix.enableGpu && ' With GPU' || '' }}
|
|
||||||
path: build
|
|
||||||
retention-days: 14
|
|
73
.github/workflows/build-tests.yml
vendored
Normal file
73
.github/workflows/build-tests.yml
vendored
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
name: Builds
|
||||||
|
|
||||||
|
on:
|
||||||
|
push: { branches: [main] }
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- '.github/**'
|
||||||
|
|
||||||
|
env:
|
||||||
|
UNITY_LICENSE: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>\n <License id=\"Terms\">\n <MachineBindings>\n <Binding Key=\"1\" Value=\"576562626572264761624c65526f7578\"/>\n <Binding Key=\"2\" Value=\"576562626572264761624c65526f7578\"/>\n </MachineBindings>\n <MachineID Value=\"D7nTUnjNAmtsUMcnoyrqkgIbYdM=\"/>\n <SerialHash Value=\"2033b8ac3e6faa3742ca9f0bfae44d18f2a96b80\"/>\n <Features>\n <Feature Value=\"33\"/>\n <Feature Value=\"1\"/>\n <Feature Value=\"12\"/>\n <Feature Value=\"2\"/>\n <Feature Value=\"24\"/>\n <Feature Value=\"3\"/>\n <Feature Value=\"36\"/>\n <Feature Value=\"17\"/>\n <Feature Value=\"19\"/>\n <Feature Value=\"62\"/>\n </Features>\n <DeveloperData Value=\"AQAAAEY0LUJHUlgtWEQ0RS1aQ1dWLUM1SlctR0RIQg==\"/>\n <SerialMasked Value=\"F4-BGRX-XD4E-ZCWV-C5JW-XXXX\"/>\n <StartDate Value=\"2021-02-08T00:00:00\"/>\n <UpdateDate Value=\"2021-02-09T00:34:57\"/>\n <InitialActivationDate Value=\"2021-02-08T00:34:56\"/>\n <LicenseVersion Value=\"6.x\"/>\n <ClientProvidedVersion Value=\"2018.4.30f1\"/>\n <AlwaysOnline Value=\"false\"/>\n <Entitlements>\n <Entitlement Ns=\"unity_editor\" Tag=\"UnityPersonal\" Type=\"EDITOR\" ValidTo=\"9999-12-31T00:00:00\"/>\n <Entitlement Ns=\"unity_editor\" Tag=\"DarkSkin\" Type=\"EDITOR_FEATURE\" ValidTo=\"9999-12-31T00:00:00\"/>\n </Entitlements>\n </License>\n<Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><SignedInfo><CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/><SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/><Reference URI=\"#Terms\"><Transforms><Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/></Transforms><DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/><DigestValue>m0Db8UK+ktnOLJBtHybkfetpcKo=</DigestValue></Reference></SignedInfo><SignatureValue>o/pUbSQAukz7+ZYAWhnA0AJbIlyyCPL7bKVEM2lVqbrXt7cyey+umkCXamuOgsWPVUKBMkXtMH8L\n5etLmD0getWIhTGhzOnDCk+gtIPfL4jMo9tkEuOCROQAXCci23VFscKcrkB+3X6h4wEOtA2APhOY\nB+wvC794o8/82ffjP79aVAi57rp3Wmzx+9pe9yMwoJuljAy2sc2tIMgdQGWVmOGBpQm3JqsidyzI\nJWG2kjnc7pDXK9pwYzXoKiqUqqrut90d+kQqRyv7MSZXR50HFqD/LI69h68b7P8Bjo3bPXOhNXGR\n9YCoemH6EkfCJxp2gIjzjWW+l2Hj2EsFQi8YXw==</SignatureValue></Signature></root>"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buildForAllPlatformsUbuntu:
|
||||||
|
name: Build for ${{ matrix.targetPlatform }} on version ${{ matrix.unityVersion }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
projectPath:
|
||||||
|
- test-project
|
||||||
|
unityVersion:
|
||||||
|
- 2019.2.11f1
|
||||||
|
- 2019.3.15f1
|
||||||
|
targetPlatform:
|
||||||
|
- StandaloneOSX # Build a macOS standalone (Intel 64-bit).
|
||||||
|
- StandaloneWindows64 # Build a Windows 64-bit standalone.
|
||||||
|
- StandaloneLinux64 # Build a Linux 64-bit standalone.
|
||||||
|
- iOS # Build an iOS player.
|
||||||
|
- 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
|
||||||
|
steps:
|
||||||
|
###########################
|
||||||
|
# Checkout #
|
||||||
|
###########################
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Cache #
|
||||||
|
###########################
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ matrix.projectPath }}/Library
|
||||||
|
key: Library-${{ matrix.projectPath }}-ubuntu-${{ matrix.targetPlatform }}
|
||||||
|
restore-keys: |
|
||||||
|
Library-${{ matrix.projectPath }}-ubuntu-
|
||||||
|
Library-
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Build #
|
||||||
|
###########################
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
projectPath: ${{ matrix.projectPath }}
|
||||||
|
unityVersion: ${{ matrix.unityVersion }}
|
||||||
|
targetPlatform: ${{ matrix.targetPlatform }}
|
||||||
|
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Upload #
|
||||||
|
###########################
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Build Ubuntu (${{ matrix.unityVersion }})
|
||||||
|
path: build
|
||||||
|
retention-days: 14
|
2
.github/workflows/cats.yml
vendored
2
.github/workflows/cats.yml
vendored
@ -11,6 +11,6 @@ jobs:
|
|||||||
name: A cat for your effort!
|
name: A cat for your effort!
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: ruairidhwm/action-cats@1.0.2
|
- uses: ruairidhwm/action-cats@1.0.1
|
||||||
with:
|
with:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
23
.github/workflows/cleanup.yml
vendored
23
.github/workflows/cleanup.yml
vendored
@ -12,26 +12,3 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
expire-in: 21 days
|
expire-in: 21 days
|
||||||
cleanupCloudRunner:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
if: github.event.event_type != 'pull_request_target'
|
|
||||||
with:
|
|
||||||
lfs: true
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: '18'
|
|
||||||
- run: yarn
|
|
||||||
- run: yarn run cli --help
|
|
||||||
env:
|
|
||||||
AWS_REGION: eu-west-2
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
AWS_DEFAULT_REGION: eu-west-2
|
|
||||||
- run: yarn run cli -m list-resources
|
|
||||||
env:
|
|
||||||
AWS_REGION: eu-west-2
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
AWS_DEFAULT_REGION: eu-west-2
|
|
||||||
|
59
.github/workflows/cloud-runner-async-checks.yml
vendored
59
.github/workflows/cloud-runner-async-checks.yml
vendored
@ -1,59 +0,0 @@
|
|||||||
name: Async Checks API
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
checksObject:
|
|
||||||
description: ''
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
checks: write
|
|
||||||
|
|
||||||
env:
|
|
||||||
GKE_ZONE: 'us-central1'
|
|
||||||
GKE_REGION: 'us-central1'
|
|
||||||
GKE_PROJECT: 'unitykubernetesbuilder'
|
|
||||||
GKE_CLUSTER: 'game-ci-github-pipelines'
|
|
||||||
GCP_LOGGING: true
|
|
||||||
GCP_PROJECT: unitykubernetesbuilder
|
|
||||||
GCP_LOG_FILE: ${{ github.workspace }}/cloud-runner-logs.txt
|
|
||||||
AWS_REGION: eu-west-2
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
AWS_DEFAULT_REGION: eu-west-2
|
|
||||||
AWS_STACK_NAME: game-ci-github-pipelines
|
|
||||||
CLOUD_RUNNER_BRANCH: ${{ github.ref }}
|
|
||||||
CLOUD_RUNNER_DEBUG: true
|
|
||||||
CLOUD_RUNNER_DEBUG_TREE: true
|
|
||||||
DEBUG: true
|
|
||||||
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
|
|
||||||
PROJECT_PATH: test-project
|
|
||||||
UNITY_VERSION: 2019.3.15f1
|
|
||||||
USE_IL2CPP: false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
asyncChecks:
|
|
||||||
name: Async Checks
|
|
||||||
if: github.event.event_type != 'pull_request_target'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- timeout-minutes: 180
|
|
||||||
env:
|
|
||||||
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
|
|
||||||
PROJECT_PATH: test-project
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
GIT_PRIVATE_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
TARGET_PLATFORM: StandaloneWindows64
|
|
||||||
cloudRunnerTests: true
|
|
||||||
versioning: None
|
|
||||||
CLOUD_RUNNER_CLUSTER: local-docker
|
|
||||||
AWS_STACK_NAME: game-ci-github-pipelines
|
|
||||||
CHECKS_UPDATE: ${{ github.event.inputs.checksObject }}
|
|
||||||
run: |
|
|
||||||
git clone -b cloud-runner-develop https://github.com/game-ci/unity-builder
|
|
||||||
cd unity-builder
|
|
||||||
yarn
|
|
||||||
ls
|
|
||||||
yarn run cli -m checks-update
|
|
209
.github/workflows/cloud-runner-ci-pipeline.yml
vendored
209
.github/workflows/cloud-runner-ci-pipeline.yml
vendored
@ -1,209 +0,0 @@
|
|||||||
name: Cloud Runner CI Pipeline
|
|
||||||
|
|
||||||
on:
|
|
||||||
push: { branches: [cloud-runner-develop, cloud-runner-preview, main] }
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
checks: write
|
|
||||||
contents: read
|
|
||||||
actions: write
|
|
||||||
|
|
||||||
env:
|
|
||||||
GKE_ZONE: 'us-central1'
|
|
||||||
GKE_REGION: 'us-central1'
|
|
||||||
GKE_PROJECT: 'unitykubernetesbuilder'
|
|
||||||
GKE_CLUSTER: 'game-ci-github-pipelines'
|
|
||||||
GCP_LOGGING: true
|
|
||||||
GCP_PROJECT: unitykubernetesbuilder
|
|
||||||
GCP_LOG_FILE: ${{ github.workspace }}/cloud-runner-logs.txt
|
|
||||||
AWS_REGION: eu-west-2
|
|
||||||
AWS_DEFAULT_REGION: eu-west-2
|
|
||||||
AWS_STACK_NAME: game-ci-team-pipelines
|
|
||||||
CLOUD_RUNNER_BRANCH: ${{ github.ref }}
|
|
||||||
DEBUG: true
|
|
||||||
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
|
|
||||||
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
|
|
||||||
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
|
|
||||||
PROJECT_PATH: test-project
|
|
||||||
UNITY_VERSION: 2019.3.15f1
|
|
||||||
USE_IL2CPP: false
|
|
||||||
USE_GKE_GCLOUD_AUTH_PLUGIN: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
tests:
|
|
||||||
name: Tests
|
|
||||||
if: github.event.event_type != 'pull_request_target'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
test:
|
|
||||||
- 'cloud-runner-end2end-locking'
|
|
||||||
- 'cloud-runner-end2end-caching'
|
|
||||||
- 'cloud-runner-end2end-retaining'
|
|
||||||
- 'cloud-runner-caching'
|
|
||||||
- 'cloud-runner-environment'
|
|
||||||
- 'cloud-runner-image'
|
|
||||||
- 'cloud-runner-hooks'
|
|
||||||
- 'cloud-runner-local-persistence'
|
|
||||||
- 'cloud-runner-locking-core'
|
|
||||||
- 'cloud-runner-locking-get-locked'
|
|
||||||
steps:
|
|
||||||
- name: Checkout (default)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
lfs: false
|
|
||||||
- name: Configure AWS Credentials
|
|
||||||
uses: aws-actions/configure-aws-credentials@v1
|
|
||||||
with:
|
|
||||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
aws-region: eu-west-2
|
|
||||||
- run: yarn
|
|
||||||
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand
|
|
||||||
timeout-minutes: 60
|
|
||||||
env:
|
|
||||||
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
|
|
||||||
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
|
|
||||||
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
|
|
||||||
PROJECT_PATH: test-project
|
|
||||||
TARGET_PLATFORM: StandaloneWindows64
|
|
||||||
cloudRunnerTests: true
|
|
||||||
versioning: None
|
|
||||||
KUBE_STORAGE_CLASS: local-path
|
|
||||||
PROVIDER_STRATEGY: local-docker
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
k8sTests:
|
|
||||||
name: K8s Tests
|
|
||||||
if: github.event.event_type != 'pull_request_target'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
test:
|
|
||||||
# - 'cloud-runner-async-workflow'
|
|
||||||
- 'cloud-runner-end2end-locking'
|
|
||||||
- 'cloud-runner-end2end-caching'
|
|
||||||
- 'cloud-runner-end2end-retaining'
|
|
||||||
- 'cloud-runner-kubernetes'
|
|
||||||
- 'cloud-runner-environment'
|
|
||||||
- 'cloud-runner-github-checks'
|
|
||||||
steps:
|
|
||||||
- name: Checkout (default)
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
lfs: false
|
|
||||||
- run: yarn
|
|
||||||
- name: actions-k3s
|
|
||||||
uses: debianmaster/actions-k3s@v1.0.5
|
|
||||||
with:
|
|
||||||
version: 'latest'
|
|
||||||
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand
|
|
||||||
timeout-minutes: 60
|
|
||||||
env:
|
|
||||||
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
|
|
||||||
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
|
|
||||||
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
|
|
||||||
PROJECT_PATH: test-project
|
|
||||||
TARGET_PLATFORM: StandaloneWindows64
|
|
||||||
cloudRunnerTests: true
|
|
||||||
versioning: None
|
|
||||||
KUBE_STORAGE_CLASS: local-path
|
|
||||||
PROVIDER_STRATEGY: k8s
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
awsTests:
|
|
||||||
name: AWS Tests
|
|
||||||
if: github.event.event_type != 'pull_request_target'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
test:
|
|
||||||
- 'cloud-runner-end2end-locking'
|
|
||||||
- 'cloud-runner-end2end-caching'
|
|
||||||
- 'cloud-runner-end2end-retaining'
|
|
||||||
- 'cloud-runner-environment'
|
|
||||||
- 'cloud-runner-s3-steps'
|
|
||||||
steps:
|
|
||||||
- name: Checkout (default)
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
lfs: false
|
|
||||||
- name: Configure AWS Credentials
|
|
||||||
uses: aws-actions/configure-aws-credentials@v1
|
|
||||||
with:
|
|
||||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
aws-region: eu-west-2
|
|
||||||
- run: yarn
|
|
||||||
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand
|
|
||||||
timeout-minutes: 60
|
|
||||||
env:
|
|
||||||
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
|
|
||||||
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
|
|
||||||
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
|
|
||||||
PROJECT_PATH: test-project
|
|
||||||
TARGET_PLATFORM: StandaloneWindows64
|
|
||||||
cloudRunnerTests: true
|
|
||||||
versioning: None
|
|
||||||
KUBE_STORAGE_CLASS: local-path
|
|
||||||
PROVIDER_STRATEGY: aws
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
buildTargetTests:
|
|
||||||
name: Local Build Target Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
providerStrategy:
|
|
||||||
#- aws
|
|
||||||
- local-docker
|
|
||||||
#- k8s
|
|
||||||
targetPlatform:
|
|
||||||
- StandaloneOSX # Build a macOS standalone (Intel 64-bit).
|
|
||||||
- StandaloneWindows64 # Build a Windows 64-bit standalone.
|
|
||||||
- StandaloneLinux64 # Build a Linux 64-bit standalone.
|
|
||||||
- WebGL # WebGL.
|
|
||||||
- iOS # Build an iOS player.
|
|
||||||
# - Android # Build an Android .apk.
|
|
||||||
steps:
|
|
||||||
- name: Checkout (default)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
lfs: false
|
|
||||||
- run: yarn
|
|
||||||
- uses: ./
|
|
||||||
id: unity-build
|
|
||||||
timeout-minutes: 30
|
|
||||||
env:
|
|
||||||
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
|
|
||||||
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
|
|
||||||
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
cloudRunnerTests: true
|
|
||||||
versioning: None
|
|
||||||
targetPlatform: ${{ matrix.targetPlatform }}
|
|
||||||
providerStrategy: ${{ matrix.providerStrategy }}
|
|
||||||
- run: |
|
|
||||||
cp ./cloud-runner-cache/cache/${{ steps.unity-build.outputs.CACHE_KEY }}/build/${{ steps.unity-build.outputs.BUILD_ARTIFACT }} ${{ steps.unity-build.outputs.BUILD_ARTIFACT }}
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.providerStrategy }} Build (${{ matrix.targetPlatform }})
|
|
||||||
path: ${{ steps.unity-build.outputs.BUILD_ARTIFACT }}
|
|
||||||
retention-days: 14
|
|
10
.github/workflows/integrity-check.yml
vendored
10
.github/workflows/integrity-check.yml
vendored
@ -7,19 +7,15 @@ on:
|
|||||||
env:
|
env:
|
||||||
CODECOV_TOKEN: '2f2eb890-30e2-4724-83eb-7633832cf0de'
|
CODECOV_TOKEN: '2f2eb890-30e2-4724-83eb-7633832cf0de'
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tests:
|
tests:
|
||||||
name: Tests
|
name: Tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
node-version: '18'
|
node-version: 12.x
|
||||||
- run: yarn
|
- run: yarn
|
||||||
- run: yarn lint
|
- run: yarn lint
|
||||||
- run: yarn test --coverage
|
- run: yarn test --coverage
|
||||||
|
80
.github/workflows/kubernetes-tests.yml
vendored
Normal file
80
.github/workflows/kubernetes-tests.yml
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
name: Kubernetes
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch: {}
|
||||||
|
# push: { branches: [main] }
|
||||||
|
# pull_request:
|
||||||
|
# paths-ignore:
|
||||||
|
# - '.github/**'
|
||||||
|
|
||||||
|
env:
|
||||||
|
GKE_ZONE: 'us-central1-c'
|
||||||
|
GKE_REGION: 'us-central1'
|
||||||
|
GKE_PROJECT: 'unitykubernetesbuilder'
|
||||||
|
GKE_CLUSTER: 'unity-builder-cluster'
|
||||||
|
UNITY_LICENSE: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>\n <License id=\"Terms\">\n <MachineBindings>\n <Binding Key=\"1\" Value=\"576562626572264761624c65526f7578\"/>\n <Binding Key=\"2\" Value=\"576562626572264761624c65526f7578\"/>\n </MachineBindings>\n <MachineID Value=\"D7nTUnjNAmtsUMcnoyrqkgIbYdM=\"/>\n <SerialHash Value=\"2033b8ac3e6faa3742ca9f0bfae44d18f2a96b80\"/>\n <Features>\n <Feature Value=\"33\"/>\n <Feature Value=\"1\"/>\n <Feature Value=\"12\"/>\n <Feature Value=\"2\"/>\n <Feature Value=\"24\"/>\n <Feature Value=\"3\"/>\n <Feature Value=\"36\"/>\n <Feature Value=\"17\"/>\n <Feature Value=\"19\"/>\n <Feature Value=\"62\"/>\n </Features>\n <DeveloperData Value=\"AQAAAEY0LUJHUlgtWEQ0RS1aQ1dWLUM1SlctR0RIQg==\"/>\n <SerialMasked Value=\"F4-BGRX-XD4E-ZCWV-C5JW-XXXX\"/>\n <StartDate Value=\"2021-02-08T00:00:00\"/>\n <UpdateDate Value=\"2021-02-09T00:34:57\"/>\n <InitialActivationDate Value=\"2021-02-08T00:34:56\"/>\n <LicenseVersion Value=\"6.x\"/>\n <ClientProvidedVersion Value=\"2018.4.30f1\"/>\n <AlwaysOnline Value=\"false\"/>\n <Entitlements>\n <Entitlement Ns=\"unity_editor\" Tag=\"UnityPersonal\" Type=\"EDITOR\" ValidTo=\"9999-12-31T00:00:00\"/>\n <Entitlement Ns=\"unity_editor\" Tag=\"DarkSkin\" Type=\"EDITOR_FEATURE\" ValidTo=\"9999-12-31T00:00:00\"/>\n </Entitlements>\n </License>\n<Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><SignedInfo><CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/><SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/><Reference URI=\"#Terms\"><Transforms><Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/></Transforms><DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/><DigestValue>m0Db8UK+ktnOLJBtHybkfetpcKo=</DigestValue></Reference></SignedInfo><SignatureValue>o/pUbSQAukz7+ZYAWhnA0AJbIlyyCPL7bKVEM2lVqbrXt7cyey+umkCXamuOgsWPVUKBMkXtMH8L\n5etLmD0getWIhTGhzOnDCk+gtIPfL4jMo9tkEuOCROQAXCci23VFscKcrkB+3X6h4wEOtA2APhOY\nB+wvC794o8/82ffjP79aVAi57rp3Wmzx+9pe9yMwoJuljAy2sc2tIMgdQGWVmOGBpQm3JqsidyzI\nJWG2kjnc7pDXK9pwYzXoKiqUqqrut90d+kQqRyv7MSZXR50HFqD/LI69h68b7P8Bjo3bPXOhNXGR\n9YCoemH6EkfCJxp2gIjzjWW+l2Hj2EsFQi8YXw==</SignatureValue></Signature></root>"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
k8sBuilds:
|
||||||
|
name: K8s build for ${{ matrix.targetPlatform }} on version ${{ matrix.unityVersion }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
continue-on-error: true
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
targetPlatform:
|
||||||
|
- StandaloneLinux64
|
||||||
|
- StandaloneWindows64
|
||||||
|
steps:
|
||||||
|
###########################
|
||||||
|
# Checkout #
|
||||||
|
###########################
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Spin up #
|
||||||
|
###########################
|
||||||
|
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
|
||||||
|
with:
|
||||||
|
version: '288.0.0'
|
||||||
|
service_account_email: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}
|
||||||
|
service_account_key: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }}
|
||||||
|
- run: ./dist/bootstrapper/ApplyClusterAndAcquireLock.sh ${{ env.GKE_PROJECT }} ${{ env.GKE_CLUSTER }} ${{ env.GKE_ZONE }}
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Build #
|
||||||
|
###########################
|
||||||
|
- uses: frostebite/File-To-Base64@master
|
||||||
|
id: read-base64
|
||||||
|
with:
|
||||||
|
filePath: ~/.kube/config
|
||||||
|
- uses: ./
|
||||||
|
id: k8s-unity-build
|
||||||
|
with:
|
||||||
|
targetPlatform: ${{ matrix.targetPlatform }}
|
||||||
|
kubeConfig: ${{ steps.read-base64.outputs.base64 }}
|
||||||
|
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
projectPath: test-project
|
||||||
|
unityVersion: 2019.3.15f1
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Upload #
|
||||||
|
###########################
|
||||||
|
- uses: frostebite/K8s-Download-Volume@master
|
||||||
|
with:
|
||||||
|
kubeConfig: ${{ steps.read-base64.outputs.base64 }}
|
||||||
|
volume: ${{ steps.k8s-unity-build.outputs.volume }}
|
||||||
|
sourcePath: repo/build/
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Kubernetes Build (${{ matrix.targetPlatform }})
|
||||||
|
path: k8s-volume-download
|
||||||
|
retention-days: 14
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Spin down #
|
||||||
|
###########################
|
||||||
|
- run: ./dist/bootstrapper/ReleaseLockAndAttemptShutdown.sh ${{ env.GKE_PROJECT }} ${{ env.GKE_CLUSTER }} ${{ env.GKE_ZONE }}
|
||||||
|
if: ${{ always() }}
|
77
.github/workflows/windows-build-tests.yml
vendored
Normal file
77
.github/workflows/windows-build-tests.yml
vendored
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
name: Windows Builds
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
env:
|
||||||
|
UNITY_LICENSE: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>\n <License id=\"Terms\">\n <MachineBindings>\n <Binding Key=\"1\" Value=\"576562626572264761624c65526f7578\"/>\n <Binding Key=\"2\" Value=\"576562626572264761624c65526f7578\"/>\n </MachineBindings>\n <MachineID Value=\"D7nTUnjNAmtsUMcnoyrqkgIbYdM=\"/>\n <SerialHash Value=\"2033b8ac3e6faa3742ca9f0bfae44d18f2a96b80\"/>\n <Features>\n <Feature Value=\"33\"/>\n <Feature Value=\"1\"/>\n <Feature Value=\"12\"/>\n <Feature Value=\"2\"/>\n <Feature Value=\"24\"/>\n <Feature Value=\"3\"/>\n <Feature Value=\"36\"/>\n <Feature Value=\"17\"/>\n <Feature Value=\"19\"/>\n <Feature Value=\"62\"/>\n </Features>\n <DeveloperData Value=\"AQAAAEY0LUJHUlgtWEQ0RS1aQ1dWLUM1SlctR0RIQg==\"/>\n <SerialMasked Value=\"F4-BGRX-XD4E-ZCWV-C5JW-XXXX\"/>\n <StartDate Value=\"2021-02-08T00:00:00\"/>\n <UpdateDate Value=\"2021-02-09T00:34:57\"/>\n <InitialActivationDate Value=\"2021-02-08T00:34:56\"/>\n <LicenseVersion Value=\"6.x\"/>\n <ClientProvidedVersion Value=\"2018.4.30f1\"/>\n <AlwaysOnline Value=\"false\"/>\n <Entitlements>\n <Entitlement Ns=\"unity_editor\" Tag=\"UnityPersonal\" Type=\"EDITOR\" ValidTo=\"9999-12-31T00:00:00\"/>\n <Entitlement Ns=\"unity_editor\" Tag=\"DarkSkin\" Type=\"EDITOR_FEATURE\" ValidTo=\"9999-12-31T00:00:00\"/>\n </Entitlements>\n </License>\n<Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><SignedInfo><CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/><SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/><Reference URI=\"#Terms\"><Transforms><Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/></Transforms><DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/><DigestValue>m0Db8UK+ktnOLJBtHybkfetpcKo=</DigestValue></Reference></SignedInfo><SignatureValue>o/pUbSQAukz7+ZYAWhnA0AJbIlyyCPL7bKVEM2lVqbrXt7cyey+umkCXamuOgsWPVUKBMkXtMH8L\n5etLmD0getWIhTGhzOnDCk+gtIPfL4jMo9tkEuOCROQAXCci23VFscKcrkB+3X6h4wEOtA2APhOY\nB+wvC794o8/82ffjP79aVAi57rp3Wmzx+9pe9yMwoJuljAy2sc2tIMgdQGWVmOGBpQm3JqsidyzI\nJWG2kjnc7pDXK9pwYzXoKiqUqqrut90d+kQqRyv7MSZXR50HFqD/LI69h68b7P8Bjo3bPXOhNXGR\n9YCoemH6EkfCJxp2gIjzjWW+l2Hj2EsFQi8YXw==</SignatureValue></Signature></root>"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buildForAllPlatformsWindows:
|
||||||
|
name: Build for ${{ matrix.targetPlatform }} on version ${{ matrix.unityVersion }}
|
||||||
|
runs-on: windows-2019
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
projectPath:
|
||||||
|
- test-project
|
||||||
|
unityVersion:
|
||||||
|
- 2020.3.24f1
|
||||||
|
targetPlatform:
|
||||||
|
- StandaloneWindows64 # Build a Windows 64-bit standalone.
|
||||||
|
- StandaloneWindows # Build a Windows 32-bit standalone.
|
||||||
|
- WSAPlayer # Build a UWP App
|
||||||
|
- tvOS # Build an Apple TV XCode project
|
||||||
|
|
||||||
|
steps:
|
||||||
|
###########################
|
||||||
|
# Checkout #
|
||||||
|
###########################
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Cache #
|
||||||
|
###########################
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ matrix.projectPath }}/Library
|
||||||
|
key: Library-${{ matrix.projectPath }}-windows-${{ matrix.targetPlatform }}
|
||||||
|
restore-keys: |
|
||||||
|
Library-${{ matrix.projectPath }}-windows-
|
||||||
|
Library-
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Set Scripting Backend #
|
||||||
|
###########################
|
||||||
|
- name: Set Scripting Backend To il2cpp
|
||||||
|
run: |
|
||||||
|
Move-Item -Path "./test-project/ProjectSettings/ProjectSettingsWindows.asset" -Destination "./test-project/ProjectSettings/ProjectSettings.asset" -Force
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Build #
|
||||||
|
###########################
|
||||||
|
- uses: ./
|
||||||
|
env:
|
||||||
|
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
|
||||||
|
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
|
||||||
|
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
|
||||||
|
with:
|
||||||
|
projectPath: ${{ matrix.projectPath }}
|
||||||
|
unityVersion: ${{ matrix.unityVersion }}
|
||||||
|
targetPlatform: ${{ matrix.targetPlatform }}
|
||||||
|
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
||||||
|
allowDirtyBuild: true
|
||||||
|
# We use dirty build because we are replacing the default project settings file above
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Upload #
|
||||||
|
###########################
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Build Windows (${{ matrix.unityVersion }})
|
||||||
|
path: build
|
||||||
|
retention-days: 14
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,5 +3,3 @@ node_modules
|
|||||||
coverage/
|
coverage/
|
||||||
lib/
|
lib/
|
||||||
.vsconfig
|
.vsconfig
|
||||||
yarn-error.log
|
|
||||||
.orig
|
|
||||||
|
1
.husky/.gitignore
vendored
Normal file
1
.husky/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
_
|
7
.husky/pre-commit
Normal file
7
.husky/pre-commit
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
npx lint-staged
|
||||||
|
yarn test
|
||||||
|
yarn build
|
||||||
|
git add dist/index.*
|
@ -2,6 +2,5 @@
|
|||||||
"semi": true,
|
"semi": true,
|
||||||
"singleQuote": true,
|
"singleQuote": true,
|
||||||
"trailingComma": "all",
|
"trailingComma": "all",
|
||||||
"printWidth": 120,
|
"printWidth": 120
|
||||||
"proseWrap": "always"
|
|
||||||
}
|
}
|
||||||
|
32
.vscode/launch.json
vendored
32
.vscode/launch.json
vendored
@ -1,32 +0,0 @@
|
|||||||
{
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "PowerShell Launch Current File",
|
|
||||||
"type": "PowerShell",
|
|
||||||
"request": "launch",
|
|
||||||
"script": "${file}",
|
|
||||||
"cwd": "${cwd}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "node",
|
|
||||||
"request": "launch",
|
|
||||||
"name": "Debug Jest Test",
|
|
||||||
"program": "${workspaceRoot}/node_modules/jest/bin/jest.js",
|
|
||||||
"args": [
|
|
||||||
"--collectCoverage=false",
|
|
||||||
"--colors",
|
|
||||||
"--config",
|
|
||||||
"${workspaceRoot}/jest.config.js",
|
|
||||||
"--runInBand",
|
|
||||||
"--runTestsByPath",
|
|
||||||
"${relativeFile}",
|
|
||||||
"--testPathPattern=${fileDirname}",
|
|
||||||
"--testTimeout=10000000"
|
|
||||||
],
|
|
||||||
"outputCapture": "std",
|
|
||||||
"internalConsoleOptions": "openOnSessionStart",
|
|
||||||
"envFile": "${workspaceRoot}/.env",
|
|
||||||
"skipFiles": ["${workspaceRoot}/../../node_modules/**/*", "<node_internals>/**/*"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
33
.vscode/settings.json
vendored
33
.vscode/settings.json
vendored
@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
"files.eol": "\n",
|
|
||||||
"god.tsconfig": "./tsconfig.json",
|
|
||||||
"yaml.customTags": [
|
|
||||||
"!And",
|
|
||||||
"!And sequence",
|
|
||||||
"!If",
|
|
||||||
"!If sequence",
|
|
||||||
"!Not",
|
|
||||||
"!Not sequence",
|
|
||||||
"!Equals",
|
|
||||||
"!Equals sequence",
|
|
||||||
"!Or",
|
|
||||||
"!Or sequence",
|
|
||||||
"!FindInMap",
|
|
||||||
"!FindInMap sequence",
|
|
||||||
"!Base64",
|
|
||||||
"!Join",
|
|
||||||
"!Join sequence",
|
|
||||||
"!Cidr",
|
|
||||||
"!Ref",
|
|
||||||
"!Sub",
|
|
||||||
"!Sub sequence",
|
|
||||||
"!GetAtt",
|
|
||||||
"!GetAZs",
|
|
||||||
"!ImportValue",
|
|
||||||
"!ImportValue sequence",
|
|
||||||
"!Select",
|
|
||||||
"!Select sequence",
|
|
||||||
"!Split",
|
|
||||||
"!Split sequence"
|
|
||||||
]
|
|
||||||
}
|
|
@ -4,12 +4,13 @@
|
|||||||
|
|
||||||
#### Code of Conduct
|
#### Code of Conduct
|
||||||
|
|
||||||
This repository has adopted the Contributor Covenant as it's Code of Conduct. It is expected that participants adhere to
|
This repository has adopted the Contributor Covenant as it's
|
||||||
it.
|
Code of Conduct. It is expected that participants adhere to it.
|
||||||
|
|
||||||
#### Proposing a Change
|
#### Proposing a Change
|
||||||
|
|
||||||
If you are unsure about whether or not a change is desired, you can create an issue. This is useful because it creates
|
If you are unsure about whether or not a change is desired,
|
||||||
|
you can create an issue. This is useful because it creates
|
||||||
the possibility for a discussion that's visible to everyone.
|
the possibility for a discussion that's visible to everyone.
|
||||||
|
|
||||||
When fixing a bug it is fine to submit a pull request right away.
|
When fixing a bug it is fine to submit a pull request right away.
|
||||||
@ -25,7 +26,7 @@ Steps to be performed to submit a pull request:
|
|||||||
|
|
||||||
#### Pull Request Prerequisites
|
#### Pull Request Prerequisites
|
||||||
|
|
||||||
You have [Node](https://nodejs.org/) installed at v18+ and [Yarn](https://yarnpkg.com/) at v1.22.0+.
|
You have [Node](https://nodejs.org/) installed at v12.2.0+ and [Yarn](https://yarnpkg.com/) at v1.18.0+.
|
||||||
|
|
||||||
Please note that commit hooks will run automatically to perform some tasks;
|
Please note that commit hooks will run automatically to perform some tasks;
|
||||||
|
|
||||||
@ -33,12 +34,6 @@ Please note that commit hooks will run automatically to perform some tasks;
|
|||||||
- run tests
|
- run tests
|
||||||
- build distributable files
|
- build distributable files
|
||||||
|
|
||||||
#### Windows users
|
|
||||||
|
|
||||||
Make sure your editor and terminal that run the tests are set to `Powershell 7` or above with
|
|
||||||
`Git's Unix tools for Windows` installed. This is because some tests require you to be able to run `sh` and other
|
|
||||||
unix commands.
|
|
||||||
|
|
||||||
#### License
|
#### License
|
||||||
|
|
||||||
By contributing to this repository, you agree that your contributions will be licensed under its MIT license.
|
By contributing to this repository, you agree that your contributions will be licensed under its MIT license.
|
||||||
|
@ -10,9 +10,8 @@ Part of the <a href="https://game.ci">GameCI</a> open source project.
|
|||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
[](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-ubuntu.yml)
|
[](https://github.com/game-ci/unity-builder/actions?query=branch%3Amain+event%3Apush+workflow%3A%22Builds)
|
||||||
[](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-windows.yml)
|
[](https://lgtm.com/projects/g/webbertakken/unity-builder/context:javascript)
|
||||||
[](https://github.com/game-ci/unity-builder/actions/workflows/build-tests-mac.yml)
|
|
||||||
[](https://codecov.io/gh/game-ci/unity-builder)
|
[](https://codecov.io/gh/game-ci/unity-builder)
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
247
action.yml
247
action.yml
@ -2,31 +2,26 @@ name: 'Unity - Builder'
|
|||||||
author: Webber Takken <webber@takken.io>
|
author: Webber Takken <webber@takken.io>
|
||||||
description: 'Build Unity projects for different platforms.'
|
description: 'Build Unity projects for different platforms.'
|
||||||
inputs:
|
inputs:
|
||||||
targetPlatform:
|
|
||||||
required: true
|
|
||||||
default: ''
|
|
||||||
description: 'Platform that the build should target.'
|
|
||||||
unityVersion:
|
unityVersion:
|
||||||
required: false
|
required: false
|
||||||
default: 'auto'
|
default: 'auto'
|
||||||
description:
|
description: 'Version of unity to use for building the project. Use "auto" to get from your ProjectSettings/ProjectVersion.txt'
|
||||||
'Version of unity to use for building the project. Use "auto" to get from your ProjectSettings/ProjectVersion.txt'
|
|
||||||
customImage:
|
customImage:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: 'Specific docker image that should be used for building the project'
|
description: 'Specific docker image that should be used for building the project'
|
||||||
|
targetPlatform:
|
||||||
|
required: false
|
||||||
|
default: ''
|
||||||
|
description: 'Platform that the build should target.'
|
||||||
projectPath:
|
projectPath:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: 'Path to the project to be built, relative to the repository root.'
|
description: 'Relative path to the project to be built.'
|
||||||
buildProfile:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description: 'Path to the build profile to activate, relative to the project root.'
|
|
||||||
buildName:
|
buildName:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: 'Name of the build. Should not include a file extension.'
|
description: 'Name of the build.'
|
||||||
buildsPath:
|
buildsPath:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
@ -35,18 +30,38 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: 'Path to a Namespace.Class.StaticMethod to run to perform the build.'
|
description: 'Path to a Namespace.Class.StaticMethod to run to perform the build.'
|
||||||
manualExit:
|
remoteBuildCluster:
|
||||||
|
default: 'local'
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
description: 'Either local, k8s or aws can be used to run builds on a remote cluster. Additional parameters must be configured.'
|
||||||
description: 'Suppresses `-quit`. Exit your build method using `EditorApplication.Exit(0)` instead.'
|
awsStackName:
|
||||||
enableGpu:
|
default: 'game-ci'
|
||||||
required: false
|
required: false
|
||||||
|
description: 'The Cloud Formation stack name that must be setup before using this option.'
|
||||||
|
kubeConfig:
|
||||||
default: ''
|
default: ''
|
||||||
description: 'Launches unity without specifying `-nographics`.'
|
|
||||||
customParameters:
|
|
||||||
required: false
|
required: false
|
||||||
|
description: 'Supply a base64 encoded kubernetes config to run builds on kubernetes and stream logs until completion.'
|
||||||
|
kubeVolume:
|
||||||
default: ''
|
default: ''
|
||||||
description: 'Custom parameters to configure the build.'
|
required: false
|
||||||
|
description: 'Supply a Persistent Volume Claim name to use for the Unity build.'
|
||||||
|
remoteBuildMemory:
|
||||||
|
default: '800M'
|
||||||
|
required: false
|
||||||
|
description: 'Amount of memory to assign the remote build container'
|
||||||
|
remoteBuildCpu:
|
||||||
|
default: '0.25'
|
||||||
|
required: false
|
||||||
|
description: 'Amount of CPU time to assign the remote build container'
|
||||||
|
kubeVolumeSize:
|
||||||
|
default: '5Gi'
|
||||||
|
required: false
|
||||||
|
description: 'Amount of disc space to assign the Kubernetes Persistent Volume'
|
||||||
|
githubToken:
|
||||||
|
default: ''
|
||||||
|
required: false
|
||||||
|
description: 'GitHub token for cloning, only needed when kubeconfig is used.'
|
||||||
versioning:
|
versioning:
|
||||||
required: false
|
required: false
|
||||||
default: 'Semantic'
|
default: 'Semantic'
|
||||||
@ -59,12 +74,10 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: 'The android versionCode'
|
description: 'The android versionCode'
|
||||||
androidExportType:
|
androidAppBundle:
|
||||||
required: false
|
required: false
|
||||||
default: 'androidPackage'
|
default: 'false'
|
||||||
description:
|
description: 'Whether to build .aab instead of .apk'
|
||||||
'The android export type. Should be androidPackage for apk, androidAppBundle for aab, or androidStudioProject for
|
|
||||||
an android studio project.'
|
|
||||||
androidKeystoreName:
|
androidKeystoreName:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
@ -89,198 +102,44 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: 'The android target API level.'
|
description: 'The android target API level.'
|
||||||
androidSymbolType:
|
customParameters:
|
||||||
required: false
|
required: false
|
||||||
default: 'none'
|
default: ''
|
||||||
description: 'The android symbol type to export. Should be "none", "public" or "debugging".'
|
description: >
|
||||||
|
Custom parameters to configure the build.
|
||||||
|
|
||||||
|
Parameters must start with a hyphen (-) and may be followed by a value (without hyphen).
|
||||||
|
Parameters without a value will be considered booleans (with a value of true).
|
||||||
sshAgent:
|
sshAgent:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: 'SSH Agent path to forward to the container'
|
description: 'SSH Agent path to forward to the container'
|
||||||
sshPublicKeysDirectoryPath:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description: 'Path to a directory containing SSH public keys to forward to the container.'
|
|
||||||
gitPrivateToken:
|
gitPrivateToken:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: '[CloudRunner] Github private token to pull from github'
|
description: >
|
||||||
githubOwner:
|
Github private token to pull from github
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description: '[CloudRunner] GitHub owner name or organization/team name'
|
|
||||||
runAsHostUser:
|
|
||||||
required: false
|
|
||||||
default: 'false'
|
|
||||||
description:
|
|
||||||
'Whether to run as a user that matches the host system or the default root container user. Only applicable to
|
|
||||||
Linux hosts and containers. This is useful for fixing permission errors on Self-Hosted runners.'
|
|
||||||
chownFilesTo:
|
chownFilesTo:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description:
|
description: 'User and optionally group (user or user:group or uid:gid) to give ownership of the resulting build artifacts'
|
||||||
'User and optionally group (user or user:group or uid:gid) to give ownership of the resulting build artifacts'
|
|
||||||
dockerCpuLimit:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description: 'Number of CPU cores to assign the docker container. Defaults to all available cores on all platforms.'
|
|
||||||
dockerMemoryLimit:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description:
|
|
||||||
'Amount of memory to assign the docker container. Defaults to 95% of total system memory rounded down to the
|
|
||||||
nearest megabyte on Linux and 80% on Windows. On unrecognized platforms, defaults to 75% of total system memory.
|
|
||||||
To manually specify a value, use the format <number><unit>, where unit is either m or g. ie: 512m = 512 megabytes'
|
|
||||||
dockerIsolationMode:
|
|
||||||
required: false
|
|
||||||
default: 'default'
|
|
||||||
description:
|
|
||||||
'Isolation mode to use for the docker container. Can be one of process, hyperv, or default. Default will pick the
|
|
||||||
default mode as described by Microsoft where server versions use process and desktop versions use hyperv. Only
|
|
||||||
applicable on Windows'
|
|
||||||
containerRegistryRepository:
|
|
||||||
required: false
|
|
||||||
default: 'unityci/editor'
|
|
||||||
description: 'Container registry and repository to pull image from. Only applicable if customImage is not set.'
|
|
||||||
containerRegistryImageVersion:
|
|
||||||
required: false
|
|
||||||
default: '3'
|
|
||||||
description: 'Container registry image version. Only applicable if customImage is not set.'
|
|
||||||
allowDirtyBuild:
|
allowDirtyBuild:
|
||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
description: '[CloudRunner] Allows the branch of the build to be dirty, and still generate the build.'
|
description: >
|
||||||
postBuildSteps:
|
Allows the branch of the build to be dirty, and still generate the build.
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description:
|
|
||||||
'[CloudRunner] run a post build job in yaml format with the keys image, secrets (name, value object array),
|
|
||||||
command string'
|
|
||||||
preBuildSteps:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Run a pre build job after the repository setup but before the build job (in yaml format with the
|
|
||||||
keys image, secrets (name, value object array), command line string)'
|
|
||||||
containerHookFiles:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Specify the names (by file name) of custom steps to run before or after cloud runner jobs, must
|
|
||||||
match a yaml step file inside your repo in the folder .game-ci/steps/'
|
|
||||||
customHookFiles:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Specify the names (by file name) of custom hooks to run before or after cloud runner jobs, must
|
|
||||||
match a yaml step file inside your repo in the folder .game-ci/hooks/'
|
|
||||||
customCommandHooks:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description: '[CloudRunner] Specify custom commands and trigger hooks (injects commands into jobs)'
|
|
||||||
customJob:
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Run a custom job instead of the standard build automation for cloud runner (in yaml format with the
|
|
||||||
keys image, secrets (name, value object array), command line string)'
|
|
||||||
awsStackName:
|
|
||||||
default: 'game-ci'
|
|
||||||
required: false
|
|
||||||
description: '[CloudRunner] The Cloud Formation stack name that must be setup before using this option.'
|
|
||||||
providerStrategy:
|
|
||||||
default: 'local'
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Either local, k8s or aws can be used to run builds on a remote cluster. Additional parameters must
|
|
||||||
be configured.'
|
|
||||||
containerCpu:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description: '[CloudRunner] Amount of CPU time to assign the remote build container'
|
|
||||||
containerMemory:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description: '[CloudRunner] Amount of memory to assign the remote build container'
|
|
||||||
readInputFromOverrideList:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description: '[CloudRunner] Comma separated list of input value names to read from "input override command"'
|
|
||||||
readInputOverrideCommand:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Extend game ci by specifying a command to execute to pull input from external source e.g cloud
|
|
||||||
provider secret managers'
|
|
||||||
kubeConfig:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Supply a base64 encoded kubernetes config to run builds on kubernetes and stream logs until
|
|
||||||
completion.'
|
|
||||||
kubeVolume:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description: '[CloudRunner] Supply a Persistent Volume Claim name to use for the Unity build.'
|
|
||||||
kubeStorageClass:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Kubernetes storage class to use for cloud runner jobs, leave empty to install rook cluster.'
|
|
||||||
kubeVolumeSize:
|
|
||||||
default: '5Gi'
|
|
||||||
required: false
|
|
||||||
description: '[CloudRunner] Amount of disc space to assign the Kubernetes Persistent Volume'
|
|
||||||
cacheKey:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description: '[CloudRunner] Cache key to indicate bucket for cache'
|
|
||||||
watchToEnd:
|
|
||||||
default: 'true'
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
'[CloudRunner] Whether or not to watch the build to the end. Can be used for especially long running jobs e.g
|
|
||||||
imports or self-hosted ephemeral runners.'
|
|
||||||
cacheUnityInstallationOnMac:
|
|
||||||
default: 'false'
|
|
||||||
required: false
|
|
||||||
description: 'Whether to cache the Unity hub and editor installation on MacOS'
|
|
||||||
unityHubVersionOnMac:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
'The version of Unity Hub to install on MacOS (e.g. 3.4.0). Defaults to latest available on brew if empty string
|
|
||||||
or nothing is specified.'
|
|
||||||
unityLicensingServer:
|
|
||||||
default: ''
|
|
||||||
required: false
|
|
||||||
description: 'The Unity licensing server address to use for activating Unity.'
|
|
||||||
dockerWorkspacePath:
|
|
||||||
default: '/github/workspace'
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
'The path to mount the workspace inside the docker container. For windows, leave out the drive letter. For example
|
|
||||||
c:/github/workspace should be defined as /github/workspace'
|
|
||||||
skipActivation:
|
|
||||||
default: 'false'
|
|
||||||
required: false
|
|
||||||
description: 'Skip the activation/deactivation of Unity. This assumes Unity is already activated.'
|
|
||||||
|
|
||||||
|
Note that it is generally bad practice to modify your branch
|
||||||
|
in a CI Pipeline. However there are exceptions where this might
|
||||||
|
be needed. (use with care).
|
||||||
outputs:
|
outputs:
|
||||||
volume:
|
volume:
|
||||||
description: 'The Persistent Volume (PV) where the build artifacts have been stored by Kubernetes'
|
description: 'The Persistent Volume (PV) where the build artifacts have been stored by Kubernetes'
|
||||||
buildVersion:
|
buildVersion:
|
||||||
description: 'The generated version used for the Unity build'
|
description: 'The generated version used for the Unity build'
|
||||||
androidVersionCode:
|
|
||||||
description: 'The generated versionCode used for the Android Unity build'
|
|
||||||
engineExitCode:
|
|
||||||
description:
|
|
||||||
'Returns the exit code from the build scripts. This code is 0 if the build was successful. If there was an error
|
|
||||||
during activation, the code is from the activation step. If activation is successful, the code is from the project
|
|
||||||
build step.'
|
|
||||||
branding:
|
branding:
|
||||||
icon: 'box'
|
icon: 'box'
|
||||||
color: 'gray-dark'
|
color: 'gray-dark'
|
||||||
runs:
|
runs:
|
||||||
using: 'node20'
|
using: 'node12'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
|
BIN
dist/.DS_Store
vendored
BIN
dist/.DS_Store
vendored
Binary file not shown.
49
dist/BlankProject/.gitignore
vendored
49
dist/BlankProject/.gitignore
vendored
@ -1,49 +0,0 @@
|
|||||||
Library/
|
|
||||||
[Tt]emp/
|
|
||||||
[Oo]bj/
|
|
||||||
[Bb]uild/
|
|
||||||
[Bb]uilds/
|
|
||||||
[Ll]ogs/
|
|
||||||
|
|
||||||
# Uncomment this line if you wish to ignore the asset store tools plugin
|
|
||||||
# [Aa]ssets/AssetStoreTools*
|
|
||||||
|
|
||||||
# IDEs
|
|
||||||
.vs/
|
|
||||||
.idea/
|
|
||||||
|
|
||||||
# Gradle cache directory
|
|
||||||
.gradle/
|
|
||||||
|
|
||||||
# Autogenerated VS/MD/Consulo solution and project files
|
|
||||||
ExportedObj/
|
|
||||||
.consulo/
|
|
||||||
*.csproj
|
|
||||||
*.unityproj
|
|
||||||
*.sln
|
|
||||||
*.suo
|
|
||||||
*.tmp
|
|
||||||
*.user
|
|
||||||
*.userprefs
|
|
||||||
*.pidb
|
|
||||||
*.booproj
|
|
||||||
*.svd
|
|
||||||
*.pdb
|
|
||||||
*.mdb
|
|
||||||
*.opendb
|
|
||||||
*.VC.db
|
|
||||||
|
|
||||||
# Unity3D generated meta files
|
|
||||||
*.pidb.meta
|
|
||||||
*.pdb.meta
|
|
||||||
*.mdb.meta
|
|
||||||
|
|
||||||
# Unity3D generated file on crash reports
|
|
||||||
sysinfo.txt
|
|
||||||
|
|
||||||
# Builds
|
|
||||||
*.apk
|
|
||||||
*.unitypackage
|
|
||||||
|
|
||||||
# Crashlytics generated file
|
|
||||||
crashlytics-build.properties
|
|
8
dist/BlankProject/Assets/Scenes.meta
vendored
8
dist/BlankProject/Assets/Scenes.meta
vendored
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 131a6b21c8605f84396be9f6751fb6e3
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
208
dist/BlankProject/Assets/Scenes/SampleScene.unity
vendored
208
dist/BlankProject/Assets/Scenes/SampleScene.unity
vendored
@ -1,208 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!29 &1
|
|
||||||
OcclusionCullingSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_OcclusionBakeSettings:
|
|
||||||
smallestOccluder: 5
|
|
||||||
smallestHole: 0.25
|
|
||||||
backfaceThreshold: 100
|
|
||||||
m_SceneGUID: 00000000000000000000000000000000
|
|
||||||
m_OcclusionCullingData: {fileID: 0}
|
|
||||||
--- !u!104 &2
|
|
||||||
RenderSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 9
|
|
||||||
m_Fog: 0
|
|
||||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
|
||||||
m_FogMode: 3
|
|
||||||
m_FogDensity: 0.01
|
|
||||||
m_LinearFogStart: 0
|
|
||||||
m_LinearFogEnd: 300
|
|
||||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
|
||||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
|
||||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
|
||||||
m_AmbientIntensity: 1
|
|
||||||
m_AmbientMode: 3
|
|
||||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
|
||||||
m_SkyboxMaterial: {fileID: 0}
|
|
||||||
m_HaloStrength: 0.5
|
|
||||||
m_FlareStrength: 1
|
|
||||||
m_FlareFadeSpeed: 3
|
|
||||||
m_HaloTexture: {fileID: 0}
|
|
||||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_DefaultReflectionMode: 0
|
|
||||||
m_DefaultReflectionResolution: 128
|
|
||||||
m_ReflectionBounces: 1
|
|
||||||
m_ReflectionIntensity: 1
|
|
||||||
m_CustomReflection: {fileID: 0}
|
|
||||||
m_Sun: {fileID: 0}
|
|
||||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
m_UseRadianceAmbientProbe: 0
|
|
||||||
--- !u!157 &3
|
|
||||||
LightmapSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 12
|
|
||||||
m_GIWorkflowMode: 1
|
|
||||||
m_GISettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_BounceScale: 1
|
|
||||||
m_IndirectOutputScale: 1
|
|
||||||
m_AlbedoBoost: 1
|
|
||||||
m_EnvironmentLightingMode: 0
|
|
||||||
m_EnableBakedLightmaps: 0
|
|
||||||
m_EnableRealtimeLightmaps: 0
|
|
||||||
m_LightmapEditorSettings:
|
|
||||||
serializedVersion: 12
|
|
||||||
m_Resolution: 2
|
|
||||||
m_BakeResolution: 40
|
|
||||||
m_AtlasSize: 1024
|
|
||||||
m_AO: 0
|
|
||||||
m_AOMaxDistance: 1
|
|
||||||
m_CompAOExponent: 1
|
|
||||||
m_CompAOExponentDirect: 0
|
|
||||||
m_ExtractAmbientOcclusion: 0
|
|
||||||
m_Padding: 2
|
|
||||||
m_LightmapParameters: {fileID: 0}
|
|
||||||
m_LightmapsBakeMode: 1
|
|
||||||
m_TextureCompression: 1
|
|
||||||
m_FinalGather: 0
|
|
||||||
m_FinalGatherFiltering: 1
|
|
||||||
m_FinalGatherRayCount: 256
|
|
||||||
m_ReflectionCompression: 2
|
|
||||||
m_MixedBakeMode: 2
|
|
||||||
m_BakeBackend: 0
|
|
||||||
m_PVRSampling: 1
|
|
||||||
m_PVRDirectSampleCount: 32
|
|
||||||
m_PVRSampleCount: 500
|
|
||||||
m_PVRBounces: 2
|
|
||||||
m_PVREnvironmentSampleCount: 500
|
|
||||||
m_PVREnvironmentReferencePointCount: 2048
|
|
||||||
m_PVRFilteringMode: 2
|
|
||||||
m_PVRDenoiserTypeDirect: 0
|
|
||||||
m_PVRDenoiserTypeIndirect: 0
|
|
||||||
m_PVRDenoiserTypeAO: 0
|
|
||||||
m_PVRFilterTypeDirect: 0
|
|
||||||
m_PVRFilterTypeIndirect: 0
|
|
||||||
m_PVRFilterTypeAO: 0
|
|
||||||
m_PVREnvironmentMIS: 0
|
|
||||||
m_PVRCulling: 1
|
|
||||||
m_PVRFilteringGaussRadiusDirect: 1
|
|
||||||
m_PVRFilteringGaussRadiusIndirect: 5
|
|
||||||
m_PVRFilteringGaussRadiusAO: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
|
||||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
|
||||||
m_ExportTrainingData: 0
|
|
||||||
m_TrainingDataDestination: TrainingData
|
|
||||||
m_LightProbeSampleCountMultiplier: 4
|
|
||||||
m_LightingDataAsset: {fileID: 0}
|
|
||||||
m_LightingSettings: {fileID: 0}
|
|
||||||
--- !u!196 &4
|
|
||||||
NavMeshSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_BuildSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
agentTypeID: 0
|
|
||||||
agentRadius: 0.5
|
|
||||||
agentHeight: 2
|
|
||||||
agentSlope: 45
|
|
||||||
agentClimb: 0.4
|
|
||||||
ledgeDropHeight: 0
|
|
||||||
maxJumpAcrossDistance: 0
|
|
||||||
minRegionArea: 2
|
|
||||||
manualCellSize: 0
|
|
||||||
cellSize: 0.16666667
|
|
||||||
manualTileSize: 0
|
|
||||||
tileSize: 256
|
|
||||||
accuratePlacement: 0
|
|
||||||
maxJobWorkers: 0
|
|
||||||
preserveTilesOutsideBounds: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_NavMeshData: {fileID: 0}
|
|
||||||
--- !u!1 &519420028
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 519420032}
|
|
||||||
- component: {fileID: 519420031}
|
|
||||||
- component: {fileID: 519420029}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Main Camera
|
|
||||||
m_TagString: MainCamera
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!81 &519420029
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 519420028}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!20 &519420031
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 519420028}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 2
|
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FOVAxisMode: 0
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 1000
|
|
||||||
field of view: 60
|
|
||||||
orthographic: 1
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: -1
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 0
|
|
||||||
m_HDR: 1
|
|
||||||
m_AllowMSAA: 0
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 0
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!4 &519420032
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 519420028}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: -10}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 2cda990e2423bbf4892e6590ba056729
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
4
dist/BlankProject/Packages/manifest.json
vendored
4
dist/BlankProject/Packages/manifest.json
vendored
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"dependencies": {
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"dependencies": {
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!11 &1
|
|
||||||
AudioManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Volume: 1
|
|
||||||
Rolloff Scale: 1
|
|
||||||
Doppler Factor: 1
|
|
||||||
Default Speaker Mode: 2
|
|
||||||
m_SampleRate: 0
|
|
||||||
m_DSPBufferSize: 1024
|
|
||||||
m_VirtualVoiceCount: 512
|
|
||||||
m_RealVoiceCount: 32
|
|
||||||
m_SpatializerPlugin:
|
|
||||||
m_AmbisonicDecoderPlugin:
|
|
||||||
m_DisableAudio: 0
|
|
||||||
m_VirtualizeEffects: 1
|
|
||||||
m_RequestedDSPBufferSize: 0
|
|
@ -1,6 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!236 &1
|
|
||||||
ClusterInputManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_Inputs: []
|
|
@ -1,37 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!55 &1
|
|
||||||
PhysicsManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 13
|
|
||||||
m_Gravity: {x: 0, y: -9.81, z: 0}
|
|
||||||
m_DefaultMaterial: {fileID: 0}
|
|
||||||
m_BounceThreshold: 2
|
|
||||||
m_DefaultMaxDepenetrationVelocity: 10
|
|
||||||
m_SleepThreshold: 0.005
|
|
||||||
m_DefaultContactOffset: 0.01
|
|
||||||
m_DefaultSolverIterations: 6
|
|
||||||
m_DefaultSolverVelocityIterations: 1
|
|
||||||
m_QueriesHitBackfaces: 0
|
|
||||||
m_QueriesHitTriggers: 1
|
|
||||||
m_EnableAdaptiveForce: 0
|
|
||||||
m_ClothInterCollisionDistance: 0.1
|
|
||||||
m_ClothInterCollisionStiffness: 0.2
|
|
||||||
m_ContactsGeneration: 1
|
|
||||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
||||||
m_AutoSimulation: 1
|
|
||||||
m_AutoSyncTransforms: 0
|
|
||||||
m_ReuseCollisionCallbacks: 1
|
|
||||||
m_ClothInterCollisionSettingsToggle: 0
|
|
||||||
m_ClothGravity: {x: 0, y: -9.81, z: 0}
|
|
||||||
m_ContactPairsMode: 0
|
|
||||||
m_BroadphaseType: 0
|
|
||||||
m_WorldBounds:
|
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
|
||||||
m_Extent: {x: 250, y: 250, z: 250}
|
|
||||||
m_WorldSubdivisions: 8
|
|
||||||
m_FrictionType: 0
|
|
||||||
m_EnableEnhancedDeterminism: 0
|
|
||||||
m_EnableUnifiedHeightmaps: 1
|
|
||||||
m_SolverType: 0
|
|
||||||
m_DefaultMaxAngularSpeed: 50
|
|
@ -1,11 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1045 &1
|
|
||||||
EditorBuildSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Scenes:
|
|
||||||
- enabled: 1
|
|
||||||
path: Assets/Scenes/SampleScene.unity
|
|
||||||
guid: 2cda990e2423bbf4892e6590ba056729
|
|
||||||
m_configObjects: {}
|
|
@ -1,40 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!159 &1
|
|
||||||
EditorSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 11
|
|
||||||
m_SerializationMode: 2
|
|
||||||
m_LineEndingsForNewScripts: 0
|
|
||||||
m_DefaultBehaviorMode: 1
|
|
||||||
m_PrefabRegularEnvironment: {fileID: 0}
|
|
||||||
m_PrefabUIEnvironment: {fileID: 0}
|
|
||||||
m_SpritePackerMode: 4
|
|
||||||
m_SpritePackerPaddingPower: 1
|
|
||||||
m_EtcTextureCompressorBehavior: 1
|
|
||||||
m_EtcTextureFastCompressor: 1
|
|
||||||
m_EtcTextureNormalCompressor: 2
|
|
||||||
m_EtcTextureBestCompressor: 4
|
|
||||||
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp
|
|
||||||
m_ProjectGenerationRootNamespace:
|
|
||||||
m_EnableTextureStreamingInEditMode: 1
|
|
||||||
m_EnableTextureStreamingInPlayMode: 1
|
|
||||||
m_AsyncShaderCompilation: 1
|
|
||||||
m_CachingShaderPreprocessor: 1
|
|
||||||
m_PrefabModeAllowAutoSave: 1
|
|
||||||
m_EnterPlayModeOptionsEnabled: 0
|
|
||||||
m_EnterPlayModeOptions: 3
|
|
||||||
m_GameObjectNamingDigits: 1
|
|
||||||
m_GameObjectNamingScheme: 0
|
|
||||||
m_AssetNamingUsesSpace: 1
|
|
||||||
m_UseLegacyProbeSampleCount: 0
|
|
||||||
m_SerializeInlineMappingsOnOneLine: 1
|
|
||||||
m_DisableCookiesInLightmapper: 1
|
|
||||||
m_AssetPipelineMode: 1
|
|
||||||
m_CacheServerMode: 0
|
|
||||||
m_CacheServerEndpoint:
|
|
||||||
m_CacheServerNamespacePrefix: default
|
|
||||||
m_CacheServerEnableDownload: 1
|
|
||||||
m_CacheServerEnableUpload: 1
|
|
||||||
m_CacheServerEnableAuth: 0
|
|
||||||
m_CacheServerEnableTls: 0
|
|
@ -1,64 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!30 &1
|
|
||||||
GraphicsSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 13
|
|
||||||
m_Deferred:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_DeferredReflections:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_ScreenSpaceShadows:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_LegacyDeferred:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_DepthNormals:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_MotionVectors:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_LightHalo:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_LensFlare:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_VideoShadersIncludeMode: 2
|
|
||||||
m_AlwaysIncludedShaders:
|
|
||||||
- {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_PreloadedShaders: []
|
|
||||||
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_CustomRenderPipeline: {fileID: 0}
|
|
||||||
m_TransparencySortMode: 0
|
|
||||||
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
|
|
||||||
m_DefaultRenderingPath: 1
|
|
||||||
m_DefaultMobileRenderingPath: 1
|
|
||||||
m_TierSettings: []
|
|
||||||
m_LightmapStripping: 0
|
|
||||||
m_FogStripping: 0
|
|
||||||
m_InstancingStripping: 0
|
|
||||||
m_LightmapKeepPlain: 1
|
|
||||||
m_LightmapKeepDirCombined: 1
|
|
||||||
m_LightmapKeepDynamicPlain: 1
|
|
||||||
m_LightmapKeepDynamicDirCombined: 1
|
|
||||||
m_LightmapKeepShadowMask: 1
|
|
||||||
m_LightmapKeepSubtractive: 1
|
|
||||||
m_FogKeepLinear: 1
|
|
||||||
m_FogKeepExp: 1
|
|
||||||
m_FogKeepExp2: 1
|
|
||||||
m_AlbedoSwatchInfos: []
|
|
||||||
m_LightsUseLinearIntensity: 0
|
|
||||||
m_LightsUseColorTemperature: 0
|
|
||||||
m_DefaultRenderingLayerMask: 1
|
|
||||||
m_LogWhenShaderIsCompiled: 0
|
|
487
dist/BlankProject/ProjectSettings/InputManager.asset
vendored
487
dist/BlankProject/ProjectSettings/InputManager.asset
vendored
@ -1,487 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!13 &1
|
|
||||||
InputManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Axes:
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Horizontal
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton: left
|
|
||||||
positiveButton: right
|
|
||||||
altNegativeButton: a
|
|
||||||
altPositiveButton: d
|
|
||||||
gravity: 3
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 3
|
|
||||||
snap: 1
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Vertical
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton: down
|
|
||||||
positiveButton: up
|
|
||||||
altNegativeButton: s
|
|
||||||
altPositiveButton: w
|
|
||||||
gravity: 3
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 3
|
|
||||||
snap: 1
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire1
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left ctrl
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: mouse 0
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire2
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left alt
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: mouse 1
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire3
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left shift
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: mouse 2
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Jump
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: space
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Mouse X
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0.1
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 1
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Mouse Y
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0.1
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 1
|
|
||||||
axis: 1
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Mouse ScrollWheel
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0.1
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 1
|
|
||||||
axis: 2
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Horizontal
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0.19
|
|
||||||
sensitivity: 1
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 2
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Vertical
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0.19
|
|
||||||
sensitivity: 1
|
|
||||||
snap: 0
|
|
||||||
invert: 1
|
|
||||||
type: 2
|
|
||||||
axis: 1
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire1
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: joystick button 0
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire2
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: joystick button 1
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire3
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: joystick button 2
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Jump
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: joystick button 3
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Submit
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: return
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 0
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Submit
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: enter
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: space
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Cancel
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: escape
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 1
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Enable Debug Button 1
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left ctrl
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 8
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Enable Debug Button 2
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: backspace
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 9
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Reset
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left alt
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 1
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Next
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: page down
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 5
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Previous
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: page up
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 4
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Validate
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: return
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 0
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Persistent
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: right shift
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 2
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Multiplier
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left shift
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 3
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Horizontal
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton: left
|
|
||||||
positiveButton: right
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Vertical
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton: down
|
|
||||||
positiveButton: up
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Vertical
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton: down
|
|
||||||
positiveButton: up
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 2
|
|
||||||
axis: 6
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Debug Horizontal
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton: left
|
|
||||||
positiveButton: right
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 2
|
|
||||||
axis: 5
|
|
||||||
joyNum: 0
|
|
@ -1,35 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!387306366 &1
|
|
||||||
MemorySettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_EditorMemorySettings:
|
|
||||||
m_MainAllocatorBlockSize: -1
|
|
||||||
m_ThreadAllocatorBlockSize: -1
|
|
||||||
m_MainGfxBlockSize: -1
|
|
||||||
m_ThreadGfxBlockSize: -1
|
|
||||||
m_CacheBlockSize: -1
|
|
||||||
m_TypetreeBlockSize: -1
|
|
||||||
m_ProfilerBlockSize: -1
|
|
||||||
m_ProfilerEditorBlockSize: -1
|
|
||||||
m_BucketAllocatorGranularity: -1
|
|
||||||
m_BucketAllocatorBucketsCount: -1
|
|
||||||
m_BucketAllocatorBlockSize: -1
|
|
||||||
m_BucketAllocatorBlockCount: -1
|
|
||||||
m_ProfilerBucketAllocatorGranularity: -1
|
|
||||||
m_ProfilerBucketAllocatorBucketsCount: -1
|
|
||||||
m_ProfilerBucketAllocatorBlockSize: -1
|
|
||||||
m_ProfilerBucketAllocatorBlockCount: -1
|
|
||||||
m_TempAllocatorSizeMain: -1
|
|
||||||
m_JobTempAllocatorBlockSize: -1
|
|
||||||
m_BackgroundJobTempAllocatorBlockSize: -1
|
|
||||||
m_JobTempAllocatorReducedBlockSize: -1
|
|
||||||
m_TempAllocatorSizeGIBakingWorker: -1
|
|
||||||
m_TempAllocatorSizeNavMeshWorker: -1
|
|
||||||
m_TempAllocatorSizeAudioWorker: -1
|
|
||||||
m_TempAllocatorSizeCloudWorker: -1
|
|
||||||
m_TempAllocatorSizeGfx: -1
|
|
||||||
m_TempAllocatorSizeJobWorker: -1
|
|
||||||
m_TempAllocatorSizeBackgroundWorker: -1
|
|
||||||
m_TempAllocatorSizePreloadManager: -1
|
|
||||||
m_PlatformMemorySettings: {}
|
|
@ -1,93 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!126 &1
|
|
||||||
NavMeshProjectSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
areas:
|
|
||||||
- name: Walkable
|
|
||||||
cost: 1
|
|
||||||
- name: Not Walkable
|
|
||||||
cost: 1
|
|
||||||
- name: Jump
|
|
||||||
cost: 2
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
m_LastAgentTypeID: -887442657
|
|
||||||
m_Settings:
|
|
||||||
- serializedVersion: 2
|
|
||||||
agentTypeID: 0
|
|
||||||
agentRadius: 0.5
|
|
||||||
agentHeight: 2
|
|
||||||
agentSlope: 45
|
|
||||||
agentClimb: 0.75
|
|
||||||
ledgeDropHeight: 0
|
|
||||||
maxJumpAcrossDistance: 0
|
|
||||||
minRegionArea: 2
|
|
||||||
manualCellSize: 0
|
|
||||||
cellSize: 0.16666667
|
|
||||||
manualTileSize: 0
|
|
||||||
tileSize: 256
|
|
||||||
accuratePlacement: 0
|
|
||||||
maxJobWorkers: 0
|
|
||||||
preserveTilesOutsideBounds: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_SettingNames:
|
|
||||||
- Humanoid
|
|
@ -1,44 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!114 &1
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 61
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 0}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_EnablePreReleasePackages: 0
|
|
||||||
m_EnablePackageDependencies: 0
|
|
||||||
m_AdvancedSettingsExpanded: 1
|
|
||||||
m_ScopedRegistriesSettingsExpanded: 1
|
|
||||||
m_SeeAllPackageVersions: 0
|
|
||||||
oneTimeWarningShown: 0
|
|
||||||
m_Registries:
|
|
||||||
- m_Id: main
|
|
||||||
m_Name:
|
|
||||||
m_Url: https://packages.unity.com
|
|
||||||
m_Scopes: []
|
|
||||||
m_IsDefault: 1
|
|
||||||
m_Capabilities: 7
|
|
||||||
m_UserSelectedRegistryName:
|
|
||||||
m_UserAddingNewScopedRegistry: 0
|
|
||||||
m_RegistryInfoDraft:
|
|
||||||
m_ErrorMessage:
|
|
||||||
m_Original:
|
|
||||||
m_Id:
|
|
||||||
m_Name:
|
|
||||||
m_Url:
|
|
||||||
m_Scopes: []
|
|
||||||
m_IsDefault: 0
|
|
||||||
m_Capabilities: 0
|
|
||||||
m_Modified: 0
|
|
||||||
m_Name:
|
|
||||||
m_Url:
|
|
||||||
m_Scopes:
|
|
||||||
-
|
|
||||||
m_SelectedScopeIndex: 0
|
|
@ -1,56 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!19 &1
|
|
||||||
Physics2DSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 5
|
|
||||||
m_Gravity: {x: 0, y: -9.81}
|
|
||||||
m_DefaultMaterial: {fileID: 0}
|
|
||||||
m_VelocityIterations: 8
|
|
||||||
m_PositionIterations: 3
|
|
||||||
m_VelocityThreshold: 1
|
|
||||||
m_MaxLinearCorrection: 0.2
|
|
||||||
m_MaxAngularCorrection: 8
|
|
||||||
m_MaxTranslationSpeed: 100
|
|
||||||
m_MaxRotationSpeed: 360
|
|
||||||
m_BaumgarteScale: 0.2
|
|
||||||
m_BaumgarteTimeOfImpactScale: 0.75
|
|
||||||
m_TimeToSleep: 0.5
|
|
||||||
m_LinearSleepTolerance: 0.01
|
|
||||||
m_AngularSleepTolerance: 2
|
|
||||||
m_DefaultContactOffset: 0.01
|
|
||||||
m_JobOptions:
|
|
||||||
serializedVersion: 2
|
|
||||||
useMultithreading: 0
|
|
||||||
useConsistencySorting: 0
|
|
||||||
m_InterpolationPosesPerJob: 100
|
|
||||||
m_NewContactsPerJob: 30
|
|
||||||
m_CollideContactsPerJob: 100
|
|
||||||
m_ClearFlagsPerJob: 200
|
|
||||||
m_ClearBodyForcesPerJob: 200
|
|
||||||
m_SyncDiscreteFixturesPerJob: 50
|
|
||||||
m_SyncContinuousFixturesPerJob: 50
|
|
||||||
m_FindNearestContactsPerJob: 100
|
|
||||||
m_UpdateTriggerContactsPerJob: 100
|
|
||||||
m_IslandSolverCostThreshold: 100
|
|
||||||
m_IslandSolverBodyCostScale: 1
|
|
||||||
m_IslandSolverContactCostScale: 10
|
|
||||||
m_IslandSolverJointCostScale: 10
|
|
||||||
m_IslandSolverBodiesPerJob: 50
|
|
||||||
m_IslandSolverContactsPerJob: 50
|
|
||||||
m_SimulationMode: 0
|
|
||||||
m_QueriesHitTriggers: 1
|
|
||||||
m_QueriesStartInColliders: 1
|
|
||||||
m_CallbacksOnDisable: 1
|
|
||||||
m_ReuseCollisionCallbacks: 1
|
|
||||||
m_AutoSyncTransforms: 0
|
|
||||||
m_AlwaysShowColliders: 0
|
|
||||||
m_ShowColliderSleep: 1
|
|
||||||
m_ShowColliderContacts: 0
|
|
||||||
m_ShowColliderAABB: 0
|
|
||||||
m_ContactArrowScale: 0.2
|
|
||||||
m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
|
|
||||||
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
|
|
||||||
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
|
|
||||||
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
|
|
||||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
@ -1,7 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1386491679 &1
|
|
||||||
PresetManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_DefaultPresets: {}
|
|
@ -1,2 +0,0 @@
|
|||||||
m_EditorVersion: 2021.2.8f1
|
|
||||||
m_EditorVersionWithRevision: 2021.2.8f1 (d0e5f0a7b06a)
|
|
@ -1,236 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!47 &1
|
|
||||||
QualitySettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 5
|
|
||||||
m_CurrentQuality: 5
|
|
||||||
m_QualitySettings:
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Very Low
|
|
||||||
pixelLightCount: 0
|
|
||||||
shadows: 0
|
|
||||||
shadowResolution: 0
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 1
|
|
||||||
shadowDistance: 15
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 0
|
|
||||||
skinWeights: 1
|
|
||||||
textureQuality: 1
|
|
||||||
anisotropicTextures: 0
|
|
||||||
antiAliasing: 0
|
|
||||||
softParticles: 0
|
|
||||||
softVegetation: 0
|
|
||||||
realtimeReflectionProbes: 0
|
|
||||||
billboardsFaceCameraPosition: 0
|
|
||||||
vSyncCount: 0
|
|
||||||
lodBias: 0.3
|
|
||||||
maximumLODLevel: 0
|
|
||||||
streamingMipmapsActive: 0
|
|
||||||
streamingMipmapsAddAllCameras: 1
|
|
||||||
streamingMipmapsMemoryBudget: 512
|
|
||||||
streamingMipmapsRenderersPerFrame: 512
|
|
||||||
streamingMipmapsMaxLevelReduction: 2
|
|
||||||
streamingMipmapsMaxFileIORequests: 1024
|
|
||||||
particleRaycastBudget: 4
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
asyncUploadPersistentBuffer: 1
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
customRenderPipeline: {fileID: 0}
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Low
|
|
||||||
pixelLightCount: 0
|
|
||||||
shadows: 0
|
|
||||||
shadowResolution: 0
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 1
|
|
||||||
shadowDistance: 20
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 0
|
|
||||||
skinWeights: 2
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 0
|
|
||||||
antiAliasing: 0
|
|
||||||
softParticles: 0
|
|
||||||
softVegetation: 0
|
|
||||||
realtimeReflectionProbes: 0
|
|
||||||
billboardsFaceCameraPosition: 0
|
|
||||||
vSyncCount: 0
|
|
||||||
lodBias: 0.4
|
|
||||||
maximumLODLevel: 0
|
|
||||||
streamingMipmapsActive: 0
|
|
||||||
streamingMipmapsAddAllCameras: 1
|
|
||||||
streamingMipmapsMemoryBudget: 512
|
|
||||||
streamingMipmapsRenderersPerFrame: 512
|
|
||||||
streamingMipmapsMaxLevelReduction: 2
|
|
||||||
streamingMipmapsMaxFileIORequests: 1024
|
|
||||||
particleRaycastBudget: 16
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
asyncUploadPersistentBuffer: 1
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
customRenderPipeline: {fileID: 0}
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Medium
|
|
||||||
pixelLightCount: 1
|
|
||||||
shadows: 1
|
|
||||||
shadowResolution: 0
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 1
|
|
||||||
shadowDistance: 20
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 0
|
|
||||||
skinWeights: 2
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 1
|
|
||||||
antiAliasing: 0
|
|
||||||
softParticles: 0
|
|
||||||
softVegetation: 0
|
|
||||||
realtimeReflectionProbes: 0
|
|
||||||
billboardsFaceCameraPosition: 0
|
|
||||||
vSyncCount: 1
|
|
||||||
lodBias: 0.7
|
|
||||||
maximumLODLevel: 0
|
|
||||||
streamingMipmapsActive: 0
|
|
||||||
streamingMipmapsAddAllCameras: 1
|
|
||||||
streamingMipmapsMemoryBudget: 512
|
|
||||||
streamingMipmapsRenderersPerFrame: 512
|
|
||||||
streamingMipmapsMaxLevelReduction: 2
|
|
||||||
streamingMipmapsMaxFileIORequests: 1024
|
|
||||||
particleRaycastBudget: 64
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
asyncUploadPersistentBuffer: 1
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
customRenderPipeline: {fileID: 0}
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: High
|
|
||||||
pixelLightCount: 2
|
|
||||||
shadows: 2
|
|
||||||
shadowResolution: 1
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 2
|
|
||||||
shadowDistance: 40
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 1
|
|
||||||
skinWeights: 2
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 1
|
|
||||||
antiAliasing: 0
|
|
||||||
softParticles: 0
|
|
||||||
softVegetation: 1
|
|
||||||
realtimeReflectionProbes: 1
|
|
||||||
billboardsFaceCameraPosition: 1
|
|
||||||
vSyncCount: 1
|
|
||||||
lodBias: 1
|
|
||||||
maximumLODLevel: 0
|
|
||||||
streamingMipmapsActive: 0
|
|
||||||
streamingMipmapsAddAllCameras: 1
|
|
||||||
streamingMipmapsMemoryBudget: 512
|
|
||||||
streamingMipmapsRenderersPerFrame: 512
|
|
||||||
streamingMipmapsMaxLevelReduction: 2
|
|
||||||
streamingMipmapsMaxFileIORequests: 1024
|
|
||||||
particleRaycastBudget: 256
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
asyncUploadPersistentBuffer: 1
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
customRenderPipeline: {fileID: 0}
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Very High
|
|
||||||
pixelLightCount: 3
|
|
||||||
shadows: 2
|
|
||||||
shadowResolution: 2
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 2
|
|
||||||
shadowDistance: 70
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 1
|
|
||||||
skinWeights: 4
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 2
|
|
||||||
antiAliasing: 2
|
|
||||||
softParticles: 1
|
|
||||||
softVegetation: 1
|
|
||||||
realtimeReflectionProbes: 1
|
|
||||||
billboardsFaceCameraPosition: 1
|
|
||||||
vSyncCount: 1
|
|
||||||
lodBias: 1.5
|
|
||||||
maximumLODLevel: 0
|
|
||||||
streamingMipmapsActive: 0
|
|
||||||
streamingMipmapsAddAllCameras: 1
|
|
||||||
streamingMipmapsMemoryBudget: 512
|
|
||||||
streamingMipmapsRenderersPerFrame: 512
|
|
||||||
streamingMipmapsMaxLevelReduction: 2
|
|
||||||
streamingMipmapsMaxFileIORequests: 1024
|
|
||||||
particleRaycastBudget: 1024
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
asyncUploadPersistentBuffer: 1
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
customRenderPipeline: {fileID: 0}
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Ultra
|
|
||||||
pixelLightCount: 4
|
|
||||||
shadows: 2
|
|
||||||
shadowResolution: 2
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 4
|
|
||||||
shadowDistance: 150
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 1
|
|
||||||
skinWeights: 255
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 2
|
|
||||||
antiAliasing: 2
|
|
||||||
softParticles: 1
|
|
||||||
softVegetation: 1
|
|
||||||
realtimeReflectionProbes: 1
|
|
||||||
billboardsFaceCameraPosition: 1
|
|
||||||
vSyncCount: 1
|
|
||||||
lodBias: 2
|
|
||||||
maximumLODLevel: 0
|
|
||||||
streamingMipmapsActive: 0
|
|
||||||
streamingMipmapsAddAllCameras: 1
|
|
||||||
streamingMipmapsMemoryBudget: 512
|
|
||||||
streamingMipmapsRenderersPerFrame: 512
|
|
||||||
streamingMipmapsMaxLevelReduction: 2
|
|
||||||
streamingMipmapsMaxFileIORequests: 1024
|
|
||||||
particleRaycastBudget: 4096
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
asyncUploadPersistentBuffer: 1
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
customRenderPipeline: {fileID: 0}
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
m_PerPlatformDefaultQuality:
|
|
||||||
Android: 2
|
|
||||||
Lumin: 5
|
|
||||||
Nintendo Switch: 5
|
|
||||||
PS4: 5
|
|
||||||
Stadia: 5
|
|
||||||
Standalone: 5
|
|
||||||
WebGL: 3
|
|
||||||
Windows Store Apps: 5
|
|
||||||
XboxOne: 5
|
|
||||||
iPhone: 2
|
|
||||||
tvOS: 2
|
|
@ -1,43 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!78 &1
|
|
||||||
TagManager:
|
|
||||||
serializedVersion: 2
|
|
||||||
tags: []
|
|
||||||
layers:
|
|
||||||
- Default
|
|
||||||
- TransparentFX
|
|
||||||
- Ignore Raycast
|
|
||||||
-
|
|
||||||
- Water
|
|
||||||
- UI
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
m_SortingLayers:
|
|
||||||
- name: Default
|
|
||||||
uniqueID: 0
|
|
||||||
locked: 0
|
|
@ -1,9 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!5 &1
|
|
||||||
TimeManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
Fixed Timestep: 0.02
|
|
||||||
Maximum Allowed Timestep: 0.33333334
|
|
||||||
m_TimeScale: 1
|
|
||||||
Maximum Particle Timestep: 0.03
|
|
@ -1,35 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!310 &1
|
|
||||||
UnityConnectSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 1
|
|
||||||
m_Enabled: 0
|
|
||||||
m_TestMode: 0
|
|
||||||
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
|
|
||||||
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
|
|
||||||
m_ConfigUrl: https://config.uca.cloud.unity3d.com
|
|
||||||
m_DashboardUrl: https://dashboard.unity3d.com
|
|
||||||
m_TestInitMode: 0
|
|
||||||
CrashReportingSettings:
|
|
||||||
m_EventUrl: https://perf-events.cloud.unity3d.com
|
|
||||||
m_Enabled: 0
|
|
||||||
m_LogBufferSize: 10
|
|
||||||
m_CaptureEditorExceptions: 1
|
|
||||||
UnityPurchasingSettings:
|
|
||||||
m_Enabled: 0
|
|
||||||
m_TestMode: 0
|
|
||||||
UnityAnalyticsSettings:
|
|
||||||
m_Enabled: 0
|
|
||||||
m_TestMode: 0
|
|
||||||
m_InitializeOnStartup: 1
|
|
||||||
UnityAdsSettings:
|
|
||||||
m_Enabled: 0
|
|
||||||
m_InitializeOnStartup: 1
|
|
||||||
m_TestMode: 0
|
|
||||||
m_IosGameId:
|
|
||||||
m_AndroidGameId:
|
|
||||||
m_GameIds: {}
|
|
||||||
m_GameId:
|
|
||||||
PerformanceReportingSettings:
|
|
||||||
m_Enabled: 0
|
|
@ -1,14 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!937362698 &1
|
|
||||||
VFXManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_IndirectShader: {fileID: 0}
|
|
||||||
m_CopyBufferShader: {fileID: 0}
|
|
||||||
m_SortShader: {fileID: 0}
|
|
||||||
m_StripUpdateShader: {fileID: 0}
|
|
||||||
m_RenderPipeSettingsPath:
|
|
||||||
m_FixedTimeStep: 0.016666668
|
|
||||||
m_MaxDeltaTime: 0.05
|
|
||||||
m_CompiledVersion: 0
|
|
||||||
m_RuntimeVersion: 0
|
|
@ -1,8 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!890905787 &1
|
|
||||||
VersionControlSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_Mode: Visible Meta Files
|
|
||||||
m_CollabEditorSettings:
|
|
||||||
inProgressEnabled: 1
|
|
69
dist/bootstrapper/ApplyClusterAndAcquireLock.sh
vendored
Executable file
69
dist/bootstrapper/ApplyClusterAndAcquireLock.sh
vendored
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This creates a GKE Cluster
|
||||||
|
# - Will wait for any deletion to complete on a cluster with the same name before creating
|
||||||
|
# - Will wait for completion before continuing
|
||||||
|
# - If the script is run concurrently multiple times, only one cluster will be created, all instances will wait for availability
|
||||||
|
# Requires GCP Cloud SDK
|
||||||
|
# Installs retry https://github.com/kadwanev/retry
|
||||||
|
|
||||||
|
GKE_PROJECT=$1
|
||||||
|
GKE_CLUSTER=$2
|
||||||
|
GKE_ZONE=$3
|
||||||
|
|
||||||
|
# may update this to avoid repeated install, drop me a comment if needed
|
||||||
|
sudo sh -c "curl https://raw.githubusercontent.com/kadwanev/retry/master/retry -o /usr/local/bin/retry && chmod +x /usr/local/bin/retry"
|
||||||
|
|
||||||
|
attempts=0
|
||||||
|
while [ $attempts -le 1 ]
|
||||||
|
do
|
||||||
|
retry -s 15 -t 20 -v '
|
||||||
|
STATUS=$(gcloud container clusters list --format="json" --project $GKE_PROJECT |
|
||||||
|
jq "
|
||||||
|
.[] |
|
||||||
|
{name: .name, status: .status} |
|
||||||
|
select(.name == \"$GKE_CLUSTER\")
|
||||||
|
" |
|
||||||
|
jq ".status")
|
||||||
|
if [ "$STATUS" == "\"STOPPING\"" ]; then echo "Cluster stopping waiting for completion" && exit 1; fi
|
||||||
|
exit 0
|
||||||
|
'
|
||||||
|
cluster=$(gcloud container clusters list --project $GKE_PROJECT --format="json" | jq '.[] | select(.name == "${GKE_CLUSTER}")')
|
||||||
|
|
||||||
|
if [ -z "$cluster" ];
|
||||||
|
then
|
||||||
|
echo "No clusters found for \"$GKE_CLUSTER\" in project \"$GKE_CLUSTER\" in zone \"$GKE_ZONE\""
|
||||||
|
# you may not need this, it installs GCP beta for additional command line options
|
||||||
|
gcloud components install beta -q
|
||||||
|
# replace this line with whatever type of cluster you want to create
|
||||||
|
gcloud beta container --project $GKE_PROJECT clusters create $GKE_CLUSTER --zone $GKE_ZONE --no-enable-basic-auth --cluster-version "1.15.12-gke.2" --machine-type "custom-1-3072" --image-type "COS" --disk-type "pd-standard" --disk-size "15" --metadata disable-legacy-endpoints=true --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes "1" --enable-stackdriver-kubernetes --enable-ip-alias --default-max-pods-per-node "110" --enable-autoscaling --min-nodes "0" --max-nodes "3" --no-enable-master-authorized-networks --addons HorizontalPodAutoscaling,HttpLoadBalancing --enable-autoupgrade --enable-autorepair --max-surge-upgrade 1 --max-unavailable-upgrade 0
|
||||||
|
fi;
|
||||||
|
retry -s 15 -t 20 -v '
|
||||||
|
STATUS=$(gcloud container clusters list --format="json" --project $GKE_PROJECT |
|
||||||
|
jq "
|
||||||
|
.[] |
|
||||||
|
{name: .name, status: .status} |
|
||||||
|
select(.name == \"$GKE_CLUSTER\")
|
||||||
|
" |
|
||||||
|
jq ".status")
|
||||||
|
if [ "$STATUS" == "\"PROVISIONING\"" ]; then echo "Cluster provisioning waiting for available" && exit 1; fi
|
||||||
|
exit 0
|
||||||
|
'
|
||||||
|
echo "Cluster is available"
|
||||||
|
gcloud container clusters get-credentials $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT
|
||||||
|
kubectl version
|
||||||
|
NSID=$(cat /proc/sys/kernel/random/uuid)
|
||||||
|
echo "::set-env name=NSID::"$NSID
|
||||||
|
{
|
||||||
|
cat <<EOF | kubectl apply -f -
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: ns-unity-builder-$NSID
|
||||||
|
labels:
|
||||||
|
app: unity-builder
|
||||||
|
EOF
|
||||||
|
} && exit 0
|
||||||
|
|
||||||
|
attempts=$(($attempts+1))
|
||||||
|
done
|
13
dist/bootstrapper/ReleaseLockAndAttemptShutdown.sh
vendored
Executable file
13
dist/bootstrapper/ReleaseLockAndAttemptShutdown.sh
vendored
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
kubectl delete ns ns-unity-builder-$NSID
|
||||||
|
|
||||||
|
# do any unity-builder namespaces remain?
|
||||||
|
namespaceCount=$(kubectl get ns --output json | jq ".items | .[] | select(.metadata.labels.app == \"unity-builder\") | select(.status.phase != \"TERMINATING\")" | jq -s "length")
|
||||||
|
echo $namespaceCount
|
||||||
|
if [ "$namespaceCount" != "0" ]
|
||||||
|
then
|
||||||
|
echo "let next cluster delete"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "delete cluster"
|
||||||
|
retry -s 15 -t 5 -v 'gcloud container clusters delete $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT --quiet'
|
||||||
|
fi
|
@ -1,21 +1,20 @@
|
|||||||
export class BaseStackFormation {
|
AWSTemplateFormatVersion: '2010-09-09'
|
||||||
public static readonly baseStackDecription = `Game-CI base stack`;
|
Description: AWS Fargate cluster that can span public and private subnets. Supports
|
||||||
public static readonly formation: string = `AWSTemplateFormatVersion: '2010-09-09'
|
public facing load balancers, private internal load balancers, and
|
||||||
Description: ${BaseStackFormation.baseStackDecription}
|
both internal and external service discovery namespaces.
|
||||||
Parameters:
|
Parameters:
|
||||||
EnvironmentName:
|
EnvironmentName:
|
||||||
Type: String
|
Type: String
|
||||||
Default: development
|
Default: development
|
||||||
Description: 'Your deployment environment: DEV, QA , PROD'
|
Description: "Your deployment environment: DEV, QA , PROD"
|
||||||
Version:
|
|
||||||
Type: String
|
|
||||||
Description: 'hash of template'
|
|
||||||
|
|
||||||
# ContainerPort:
|
# ContainerPort:
|
||||||
# Type: Number
|
# Type: Number
|
||||||
# Default: 80
|
# Default: 80
|
||||||
# Description: What port number the application inside the docker container is binding to
|
# Description: What port number the application inside the docker container is binding to
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Mappings:
|
Mappings:
|
||||||
# Hard values for the subnet masks. These masks define
|
# Hard values for the subnet masks. These masks define
|
||||||
# the range of internal IP addresses that can be assigned.
|
# the range of internal IP addresses that can be assigned.
|
||||||
@ -36,6 +35,9 @@ Mappings:
|
|||||||
CIDR: '10.0.1.0/24'
|
CIDR: '10.0.1.0/24'
|
||||||
|
|
||||||
Resources:
|
Resources:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# VPC in which containers will be networked.
|
# VPC in which containers will be networked.
|
||||||
# It has two public subnets, and two private subnets.
|
# It has two public subnets, and two private subnets.
|
||||||
# We distribute the subnets across the first two available subnets
|
# We distribute the subnets across the first two available subnets
|
||||||
@ -47,15 +49,10 @@ Resources:
|
|||||||
EnableDnsHostnames: true
|
EnableDnsHostnames: true
|
||||||
CidrBlock: !FindInMap ['SubnetConfig', 'VPC', 'CIDR']
|
CidrBlock: !FindInMap ['SubnetConfig', 'VPC', 'CIDR']
|
||||||
|
|
||||||
MainBucket:
|
|
||||||
Type: "AWS::S3::Bucket"
|
|
||||||
Properties:
|
|
||||||
BucketName: !Ref EnvironmentName
|
|
||||||
|
|
||||||
EFSServerSecurityGroup:
|
EFSServerSecurityGroup:
|
||||||
Type: AWS::EC2::SecurityGroup
|
Type: AWS::EC2::SecurityGroup
|
||||||
Properties:
|
Properties:
|
||||||
GroupName: 'efs-server-endpoints'
|
GroupName: "efs-server-endpoints"
|
||||||
GroupDescription: Which client ip addrs are allowed to access EFS server
|
GroupDescription: Which client ip addrs are allowed to access EFS server
|
||||||
VpcId: !Ref 'VPC'
|
VpcId: !Ref 'VPC'
|
||||||
SecurityGroupIngress:
|
SecurityGroupIngress:
|
||||||
@ -70,7 +67,7 @@ Resources:
|
|||||||
ContainerSecurityGroup:
|
ContainerSecurityGroup:
|
||||||
Type: AWS::EC2::SecurityGroup
|
Type: AWS::EC2::SecurityGroup
|
||||||
Properties:
|
Properties:
|
||||||
GroupName: 'task security group'
|
GroupName: "task security group"
|
||||||
GroupDescription: Access to the Fargate containers
|
GroupDescription: Access to the Fargate containers
|
||||||
VpcId: !Ref 'VPC'
|
VpcId: !Ref 'VPC'
|
||||||
# SecurityGroupIngress:
|
# SecurityGroupIngress:
|
||||||
@ -82,7 +79,10 @@ Resources:
|
|||||||
- IpProtocol: -1
|
- IpProtocol: -1
|
||||||
FromPort: 2049
|
FromPort: 2049
|
||||||
ToPort: 2049
|
ToPort: 2049
|
||||||
CidrIp: '0.0.0.0/0'
|
CidrIp: "0.0.0.0/0"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Two public subnets, where containers can have public IP addresses
|
# Two public subnets, where containers can have public IP addresses
|
||||||
PublicSubnetOne:
|
PublicSubnetOne:
|
||||||
@ -105,6 +105,7 @@ Resources:
|
|||||||
CidrBlock: !FindInMap ['SubnetConfig', 'PublicTwo', 'CIDR']
|
CidrBlock: !FindInMap ['SubnetConfig', 'PublicTwo', 'CIDR']
|
||||||
# MapPublicIpOnLaunch: true
|
# MapPublicIpOnLaunch: true
|
||||||
|
|
||||||
|
|
||||||
# Setup networking resources for the public subnets. Containers
|
# Setup networking resources for the public subnets. Containers
|
||||||
# in the public subnets have public IP addresses and the routing table
|
# in the public subnets have public IP addresses and the routing table
|
||||||
# sends network traffic via the internet gateway.
|
# sends network traffic via the internet gateway.
|
||||||
@ -141,10 +142,14 @@ Resources:
|
|||||||
SubnetId: !Ref PublicSubnetTwo
|
SubnetId: !Ref PublicSubnetTwo
|
||||||
RouteTableId: !Ref PublicRouteTable
|
RouteTableId: !Ref PublicRouteTable
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ECS Resources
|
# ECS Resources
|
||||||
ECSCluster:
|
ECSCluster:
|
||||||
Type: AWS::ECS::Cluster
|
Type: AWS::ECS::Cluster
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# A role used to allow AWS Autoscaling to inspect stats and adjust scaleable targets
|
# A role used to allow AWS Autoscaling to inspect stats and adjust scaleable targets
|
||||||
# on your AWS account
|
# on your AWS account
|
||||||
AutoscalingRole:
|
AutoscalingRole:
|
||||||
@ -226,6 +231,11 @@ Resources:
|
|||||||
Statement:
|
Statement:
|
||||||
- Effect: Allow
|
- Effect: Allow
|
||||||
Action:
|
Action:
|
||||||
|
# Allow upload to S3
|
||||||
|
- 's3:GetObject'
|
||||||
|
- 's3:GetObjectVersion'
|
||||||
|
- 's3:PutObject'
|
||||||
|
|
||||||
# Allow the use of secret manager
|
# Allow the use of secret manager
|
||||||
- 'secretsmanager:GetSecretValue'
|
- 'secretsmanager:GetSecretValue'
|
||||||
- 'kms:Decrypt'
|
- 'kms:Decrypt'
|
||||||
@ -242,44 +252,45 @@ Resources:
|
|||||||
Resource: '*'
|
Resource: '*'
|
||||||
|
|
||||||
DeleteCFNLambdaExecutionRole:
|
DeleteCFNLambdaExecutionRole:
|
||||||
Type: 'AWS::IAM::Role'
|
Type: "AWS::IAM::Role"
|
||||||
Properties:
|
Properties:
|
||||||
AssumeRolePolicyDocument:
|
AssumeRolePolicyDocument:
|
||||||
Version: '2012-10-17'
|
Version: "2012-10-17"
|
||||||
Statement:
|
Statement:
|
||||||
- Effect: 'Allow'
|
- Effect: "Allow"
|
||||||
Principal:
|
Principal:
|
||||||
Service: ['lambda.amazonaws.com']
|
Service: ["lambda.amazonaws.com"]
|
||||||
Action: 'sts:AssumeRole'
|
Action: "sts:AssumeRole"
|
||||||
Path: '/'
|
Path: "/"
|
||||||
Policies:
|
Policies:
|
||||||
- PolicyName: DeleteCFNLambdaExecutionRole
|
- PolicyName: DeleteCFNLambdaExecutionRole
|
||||||
PolicyDocument:
|
PolicyDocument:
|
||||||
Version: '2012-10-17'
|
Version: "2012-10-17"
|
||||||
Statement:
|
Statement:
|
||||||
- Effect: 'Allow'
|
- Effect: "Allow"
|
||||||
Action:
|
Action:
|
||||||
- 'logs:CreateLogGroup'
|
- "logs:CreateLogGroup"
|
||||||
- 'logs:CreateLogStream'
|
- "logs:CreateLogStream"
|
||||||
- 'logs:PutLogEvents'
|
- "logs:PutLogEvents"
|
||||||
Resource: 'arn:aws:logs:*:*:*'
|
Resource: "arn:aws:logs:*:*:*"
|
||||||
- Effect: 'Allow'
|
- Effect: "Allow"
|
||||||
Action:
|
Action:
|
||||||
- 'cloudformation:DeleteStack'
|
- "cloudformation:DeleteStack"
|
||||||
- 'kinesis:DeleteStream'
|
- "kinesis:DeleteStream"
|
||||||
- 'secretsmanager:DeleteSecret'
|
- "secretsmanager:DeleteSecret"
|
||||||
- 'kinesis:DescribeStreamSummary'
|
- "kinesis:DescribeStreamSummary"
|
||||||
- 'logs:DeleteLogGroup'
|
- "logs:DeleteLogGroup"
|
||||||
- 'logs:DeleteSubscriptionFilter'
|
- "logs:DeleteSubscriptionFilter"
|
||||||
- 'ecs:DeregisterTaskDefinition'
|
- "ecs:DeregisterTaskDefinition"
|
||||||
- 'lambda:DeleteFunction'
|
- "lambda:DeleteFunction"
|
||||||
- 'lambda:InvokeFunction'
|
- "lambda:InvokeFunction"
|
||||||
- 'events:RemoveTargets'
|
- "events:RemoveTargets"
|
||||||
- 'events:DeleteRule'
|
- "events:DeleteRule"
|
||||||
- 'lambda:RemovePermission'
|
- "lambda:RemovePermission"
|
||||||
Resource: '*'
|
Resource: "*"
|
||||||
|
|
||||||
|
### cloud watch to kinesis role
|
||||||
|
|
||||||
### cloud watch to kinesis role
|
|
||||||
CloudWatchIAMRole:
|
CloudWatchIAMRole:
|
||||||
Type: AWS::IAM::Role
|
Type: AWS::IAM::Role
|
||||||
Properties:
|
Properties:
|
||||||
@ -298,8 +309,8 @@ Resources:
|
|||||||
Action:
|
Action:
|
||||||
- 'kinesis:PutRecord'
|
- 'kinesis:PutRecord'
|
||||||
Resource: '*'
|
Resource: '*'
|
||||||
|
#####################EFS#####################
|
||||||
|
|
||||||
#####################EFS#####################
|
|
||||||
EfsFileStorage:
|
EfsFileStorage:
|
||||||
Type: 'AWS::EFS::FileSystem'
|
Type: 'AWS::EFS::FileSystem'
|
||||||
Properties:
|
Properties:
|
||||||
@ -308,16 +319,18 @@ Resources:
|
|||||||
PerformanceMode: maxIO
|
PerformanceMode: maxIO
|
||||||
Encrypted: false
|
Encrypted: false
|
||||||
|
|
||||||
|
|
||||||
FileSystemPolicy:
|
FileSystemPolicy:
|
||||||
Version: '2012-10-17'
|
Version: "2012-10-17"
|
||||||
Statement:
|
Statement:
|
||||||
- Effect: 'Allow'
|
- Effect: "Allow"
|
||||||
Action:
|
Action:
|
||||||
- 'elasticfilesystem:ClientMount'
|
- "elasticfilesystem:ClientMount"
|
||||||
- 'elasticfilesystem:ClientWrite'
|
- "elasticfilesystem:ClientWrite"
|
||||||
- 'elasticfilesystem:ClientRootAccess'
|
- "elasticfilesystem:ClientRootAccess"
|
||||||
Principal:
|
Principal:
|
||||||
AWS: '*'
|
AWS: "*"
|
||||||
|
|
||||||
|
|
||||||
MountTargetResource1:
|
MountTargetResource1:
|
||||||
Type: AWS::EFS::MountTarget
|
Type: AWS::EFS::MountTarget
|
||||||
@ -335,63 +348,76 @@ Resources:
|
|||||||
SecurityGroups:
|
SecurityGroups:
|
||||||
- !Ref EFSServerSecurityGroup
|
- !Ref EFSServerSecurityGroup
|
||||||
|
|
||||||
|
S3Bucket:
|
||||||
|
Type: 'AWS::S3::Bucket'
|
||||||
|
DeletionPolicy: Retain
|
||||||
|
Properties:
|
||||||
|
BucketName: game-ci-storage
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Outputs:
|
Outputs:
|
||||||
|
|
||||||
EfsFileStorageId:
|
EfsFileStorageId:
|
||||||
Description: 'The connection endpoint for the database.'
|
Description: 'The connection endpoint for the database.'
|
||||||
Value: !Ref EfsFileStorage
|
Value: !Ref EfsFileStorage
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:EfsFileStorageId
|
Name: !Sub ${EnvironmentName}:EfsFileStorageId
|
||||||
ClusterName:
|
ClusterName:
|
||||||
Description: The name of the ECS cluster
|
Description: The name of the ECS cluster
|
||||||
Value: !Ref 'ECSCluster'
|
Value: !Ref 'ECSCluster'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub${' ${EnvironmentName}'}:ClusterName
|
Name: !Sub ${EnvironmentName}:ClusterName
|
||||||
AutoscalingRole:
|
AutoscalingRole:
|
||||||
Description: The ARN of the role used for autoscaling
|
Description: The ARN of the role used for autoscaling
|
||||||
Value: !GetAtt 'AutoscalingRole.Arn'
|
Value: !GetAtt 'AutoscalingRole.Arn'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:AutoscalingRole
|
Name: !Sub ${EnvironmentName}:AutoscalingRole
|
||||||
ECSRole:
|
ECSRole:
|
||||||
Description: The ARN of the ECS role
|
Description: The ARN of the ECS role
|
||||||
Value: !GetAtt 'ECSRole.Arn'
|
Value: !GetAtt 'ECSRole.Arn'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:ECSRole
|
Name: !Sub ${EnvironmentName}:ECSRole
|
||||||
ECSTaskExecutionRole:
|
ECSTaskExecutionRole:
|
||||||
Description: The ARN of the ECS role tsk execution role
|
Description: The ARN of the ECS role tsk execution role
|
||||||
Value: !GetAtt 'ECSTaskExecutionRole.Arn'
|
Value: !GetAtt 'ECSTaskExecutionRole.Arn'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:ECSTaskExecutionRole
|
Name: !Sub ${EnvironmentName}:ECSTaskExecutionRole
|
||||||
|
|
||||||
DeleteCFNLambdaExecutionRole:
|
DeleteCFNLambdaExecutionRole:
|
||||||
Description: Lambda execution role for cleaning up cloud formations
|
Description: Lambda execution role for cleaning up cloud formations
|
||||||
Value: !GetAtt 'DeleteCFNLambdaExecutionRole.Arn'
|
Value: !GetAtt 'DeleteCFNLambdaExecutionRole.Arn'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:DeleteCFNLambdaExecutionRole
|
Name: !Sub ${EnvironmentName}:DeleteCFNLambdaExecutionRole
|
||||||
|
|
||||||
CloudWatchIAMRole:
|
CloudWatchIAMRole:
|
||||||
Description: The ARN of the CloudWatch role for subscription filter
|
Description: The ARN of the CloudWatch role for subscription filter
|
||||||
Value: !GetAtt 'CloudWatchIAMRole.Arn'
|
Value: !GetAtt 'CloudWatchIAMRole.Arn'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:CloudWatchIAMRole
|
Name: !Sub ${EnvironmentName}:CloudWatchIAMRole
|
||||||
VpcId:
|
VpcId:
|
||||||
Description: The ID of the VPC that this stack is deployed in
|
Description: The ID of the VPC that this stack is deployed in
|
||||||
Value: !Ref 'VPC'
|
Value: !Ref 'VPC'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:VpcId
|
Name: !Sub ${EnvironmentName}:VpcId
|
||||||
PublicSubnetOne:
|
PublicSubnetOne:
|
||||||
Description: Public subnet one
|
Description: Public subnet one
|
||||||
Value: !Ref 'PublicSubnetOne'
|
Value: !Ref 'PublicSubnetOne'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:PublicSubnetOne
|
Name: !Sub ${EnvironmentName}:PublicSubnetOne
|
||||||
PublicSubnetTwo:
|
PublicSubnetTwo:
|
||||||
Description: Public subnet two
|
Description: Public subnet two
|
||||||
Value: !Ref 'PublicSubnetTwo'
|
Value: !Ref 'PublicSubnetTwo'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:PublicSubnetTwo
|
Name: !Sub ${EnvironmentName}:PublicSubnetTwo
|
||||||
|
|
||||||
ContainerSecurityGroup:
|
ContainerSecurityGroup:
|
||||||
Description: A security group used to allow Fargate containers to receive traffic
|
Description: A security group used to allow Fargate containers to receive traffic
|
||||||
Value: !Ref 'ContainerSecurityGroup'
|
Value: !Ref 'ContainerSecurityGroup'
|
||||||
Export:
|
Export:
|
||||||
Name: !Sub ${'${EnvironmentName}'}:ContainerSecurityGroup
|
Name: !Sub ${EnvironmentName}:ContainerSecurityGroup
|
||||||
`;
|
|
||||||
}
|
|
@ -1,5 +1,4 @@
|
|||||||
export class CleanupCronFormation {
|
AWSTemplateFormatVersion: '2010-09-09'
|
||||||
public static readonly formation: string = `AWSTemplateFormatVersion: '2010-09-09'
|
|
||||||
Description: Schedule automatic deletion of CloudFormation stacks
|
Description: Schedule automatic deletion of CloudFormation stacks
|
||||||
Metadata:
|
Metadata:
|
||||||
AWS::CloudFormation::Interface:
|
AWS::CloudFormation::Interface:
|
||||||
@ -19,7 +18,7 @@ Parameters:
|
|||||||
Type: String
|
Type: String
|
||||||
Default: development
|
Default: development
|
||||||
Description: 'Your deployment environment: DEV, QA , PROD'
|
Description: 'Your deployment environment: DEV, QA , PROD'
|
||||||
BUILDGUID:
|
BUILDID:
|
||||||
Type: String
|
Type: String
|
||||||
Default: ''
|
Default: ''
|
||||||
StackName:
|
StackName:
|
||||||
@ -35,7 +34,7 @@ Resources:
|
|||||||
DeleteCFNLambda:
|
DeleteCFNLambda:
|
||||||
Type: "AWS::Lambda::Function"
|
Type: "AWS::Lambda::Function"
|
||||||
Properties:
|
Properties:
|
||||||
FunctionName: !Join [ "", [ 'DeleteCFNLambda', !Ref BUILDGUID ] ]
|
FunctionName: !Join [ "", [ 'DeleteCFNLambda', !Ref BUILDID ] ]
|
||||||
Code:
|
Code:
|
||||||
ZipFile: |
|
ZipFile: |
|
||||||
import boto3
|
import boto3
|
||||||
@ -65,17 +64,17 @@ Resources:
|
|||||||
stackName: !Ref 'StackName'
|
stackName: !Ref 'StackName'
|
||||||
deleteStackName: !Ref 'DeleteStackName'
|
deleteStackName: !Ref 'DeleteStackName'
|
||||||
Handler: "index.handler"
|
Handler: "index.handler"
|
||||||
Runtime: "python3.9"
|
Runtime: "python3.6"
|
||||||
Timeout: "5"
|
Timeout: "5"
|
||||||
Role:
|
Role:
|
||||||
'Fn::ImportValue': !Sub '\${EnvironmentName}:DeleteCFNLambdaExecutionRole'
|
'Fn::ImportValue': !Sub '${EnvironmentName}:DeleteCFNLambdaExecutionRole'
|
||||||
DeleteStackEventRule:
|
DeleteStackEventRule:
|
||||||
DependsOn:
|
DependsOn:
|
||||||
- DeleteCFNLambda
|
- DeleteCFNLambda
|
||||||
- GenerateCronExpression
|
- GenerateCronExpression
|
||||||
Type: "AWS::Events::Rule"
|
Type: "AWS::Events::Rule"
|
||||||
Properties:
|
Properties:
|
||||||
Name: !Join [ "", [ 'DeleteStackEventRule', !Ref BUILDGUID ] ]
|
Name: !Join [ "", [ 'DeleteStackEventRule', !Ref BUILDID ] ]
|
||||||
Description: Delete stack event
|
Description: Delete stack event
|
||||||
ScheduleExpression: !GetAtt GenerateCronExpression.cron_exp
|
ScheduleExpression: !GetAtt GenerateCronExpression.cron_exp
|
||||||
State: "ENABLED"
|
State: "ENABLED"
|
||||||
@ -88,14 +87,14 @@ Resources:
|
|||||||
DependsOn:
|
DependsOn:
|
||||||
- DeleteStackEventRule
|
- DeleteStackEventRule
|
||||||
Properties:
|
Properties:
|
||||||
FunctionName: !Join [ "", [ 'DeleteCFNLambda', !Ref BUILDGUID ] ]
|
FunctionName: !Join [ "", [ 'DeleteCFNLambda', !Ref BUILDID ] ]
|
||||||
Action: "lambda:InvokeFunction"
|
Action: "lambda:InvokeFunction"
|
||||||
Principal: "events.amazonaws.com"
|
Principal: "events.amazonaws.com"
|
||||||
SourceArn: !GetAtt DeleteStackEventRule.Arn
|
SourceArn: !GetAtt DeleteStackEventRule.Arn
|
||||||
GenerateCronExpLambda:
|
GenerateCronExpLambda:
|
||||||
Type: "AWS::Lambda::Function"
|
Type: "AWS::Lambda::Function"
|
||||||
Properties:
|
Properties:
|
||||||
FunctionName: !Join [ "", [ 'GenerateCronExpressionLambda', !Ref BUILDGUID ] ]
|
FunctionName: !Join [ "", [ 'GenerateCronExpressionLambda', !Ref BUILDID ] ]
|
||||||
Code:
|
Code:
|
||||||
ZipFile: |
|
ZipFile: |
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
@ -131,16 +130,14 @@ Resources:
|
|||||||
status = cfnresponse.FAILED
|
status = cfnresponse.FAILED
|
||||||
cfnresponse.send(event, context, status, {}, None)
|
cfnresponse.send(event, context, status, {}, None)
|
||||||
Handler: "index.handler"
|
Handler: "index.handler"
|
||||||
Runtime: "python3.9"
|
Runtime: "python3.6"
|
||||||
Timeout: "5"
|
Timeout: "5"
|
||||||
Role:
|
Role:
|
||||||
'Fn::ImportValue': !Sub '\${EnvironmentName}:DeleteCFNLambdaExecutionRole'
|
'Fn::ImportValue': !Sub '${EnvironmentName}:DeleteCFNLambdaExecutionRole'
|
||||||
GenerateCronExpression:
|
GenerateCronExpression:
|
||||||
Type: "Custom::GenerateCronExpression"
|
Type: "Custom::GenerateCronExpression"
|
||||||
Version: "1.0"
|
Version: "1.0"
|
||||||
Properties:
|
Properties:
|
||||||
Name: !Join [ "", [ 'GenerateCronExpression', !Ref BUILDGUID ] ]
|
Name: !Join [ "", [ 'GenerateCronExpression', !Ref BUILDID ] ]
|
||||||
ServiceToken: !GetAtt GenerateCronExpLambda.Arn
|
ServiceToken: !GetAtt GenerateCronExpLambda.Arn
|
||||||
ttl: !Ref 'TTL'
|
ttl: !Ref 'TTL'
|
||||||
`;
|
|
||||||
}
|
|
@ -1,10 +1,8 @@
|
|||||||
import CloudRunner from '../../../cloud-runner';
|
AWSTemplateFormatVersion: 2010-09-09
|
||||||
|
Description: >-
|
||||||
export class TaskDefinitionFormation {
|
AWS Fargate cluster that can span public and private subnets. Supports public
|
||||||
public static readonly description: string = `Game CI Cloud Runner Task Stack`;
|
facing load balancers, private internal load balancers, and both internal and
|
||||||
public static get formation(): string {
|
external service discovery namespaces.
|
||||||
return `AWSTemplateFormatVersion: 2010-09-09
|
|
||||||
Description: ${TaskDefinitionFormation.description}
|
|
||||||
Parameters:
|
Parameters:
|
||||||
EnvironmentName:
|
EnvironmentName:
|
||||||
Type: String
|
Type: String
|
||||||
@ -14,10 +12,6 @@ Parameters:
|
|||||||
Type: String
|
Type: String
|
||||||
Default: example
|
Default: example
|
||||||
Description: A name for the service
|
Description: A name for the service
|
||||||
LogGroupName:
|
|
||||||
Type: String
|
|
||||||
Default: example
|
|
||||||
Description: Name to use for the log group created for this task
|
|
||||||
ImageUrl:
|
ImageUrl:
|
||||||
Type: String
|
Type: String
|
||||||
Default: nginx
|
Default: nginx
|
||||||
@ -29,14 +23,14 @@ Parameters:
|
|||||||
Default: 80
|
Default: 80
|
||||||
Description: What port number the application inside the docker container is binding to
|
Description: What port number the application inside the docker container is binding to
|
||||||
ContainerCpu:
|
ContainerCpu:
|
||||||
Default: ${CloudRunner.buildParameters.containerCpu}
|
|
||||||
Type: Number
|
Type: Number
|
||||||
|
Default: 1024
|
||||||
Description: How much CPU to give the container. 1024 is 1 CPU
|
Description: How much CPU to give the container. 1024 is 1 CPU
|
||||||
ContainerMemory:
|
ContainerMemory:
|
||||||
Default: ${CloudRunner.buildParameters.containerMemory}
|
|
||||||
Type: Number
|
Type: Number
|
||||||
|
Default: 2048
|
||||||
Description: How much memory in megabytes to give the container
|
Description: How much memory in megabytes to give the container
|
||||||
BUILDGUID:
|
BUILDID:
|
||||||
Type: String
|
Type: String
|
||||||
Default: ''
|
Default: ''
|
||||||
Command:
|
Command:
|
||||||
@ -75,78 +69,17 @@ Resources:
|
|||||||
LogGroup:
|
LogGroup:
|
||||||
Type: 'AWS::Logs::LogGroup'
|
Type: 'AWS::Logs::LogGroup'
|
||||||
Properties:
|
Properties:
|
||||||
LogGroupName: !Ref LogGroupName
|
LogGroupName: !Ref ServiceName
|
||||||
Metadata:
|
Metadata:
|
||||||
'AWS::CloudFormation::Designer':
|
'AWS::CloudFormation::Designer':
|
||||||
id: aece53ae-b82d-4267-bc16-ed964b05db27
|
id: aece53ae-b82d-4267-bc16-ed964b05db27
|
||||||
# template resources secrets
|
|
||||||
|
|
||||||
# template resources logstream
|
|
||||||
|
|
||||||
TaskDefinition:
|
|
||||||
Type: 'AWS::ECS::TaskDefinition'
|
|
||||||
Properties:
|
|
||||||
Family: !Ref ServiceName
|
|
||||||
Cpu: !Ref ContainerCpu
|
|
||||||
Memory: !Ref ContainerMemory
|
|
||||||
NetworkMode: awsvpc
|
|
||||||
Volumes:
|
|
||||||
- Name: efs-data
|
|
||||||
EFSVolumeConfiguration:
|
|
||||||
FilesystemId:
|
|
||||||
'Fn::ImportValue': !Sub '${'${EnvironmentName}'}:EfsFileStorageId'
|
|
||||||
TransitEncryption: DISABLED
|
|
||||||
RequiresCompatibilities:
|
|
||||||
- FARGATE
|
|
||||||
ExecutionRoleArn:
|
|
||||||
'Fn::ImportValue': !Sub '${'${EnvironmentName}'}:ECSTaskExecutionRole'
|
|
||||||
TaskRoleArn:
|
|
||||||
'Fn::If':
|
|
||||||
- HasCustomRole
|
|
||||||
- !Ref Role
|
|
||||||
- !Ref 'AWS::NoValue'
|
|
||||||
ContainerDefinitions:
|
|
||||||
- Name: !Ref ServiceName
|
|
||||||
Cpu: !Ref ContainerCpu
|
|
||||||
Memory: !Ref ContainerMemory
|
|
||||||
Image: !Ref ImageUrl
|
|
||||||
EntryPoint:
|
|
||||||
Fn::Split:
|
|
||||||
- ','
|
|
||||||
- !Ref EntryPoint
|
|
||||||
Command:
|
|
||||||
Fn::Split:
|
|
||||||
- ','
|
|
||||||
- !Ref Command
|
|
||||||
WorkingDirectory: !Ref WorkingDirectory
|
|
||||||
Environment:
|
|
||||||
- Name: ALLOW_EMPTY_PASSWORD
|
|
||||||
Value: 'yes'
|
|
||||||
# template - env vars
|
|
||||||
MountPoints:
|
|
||||||
- SourceVolume: efs-data
|
|
||||||
ContainerPath: !Ref EFSMountDirectory
|
|
||||||
ReadOnly: false
|
|
||||||
Secrets:
|
|
||||||
# template secrets p3 - container def
|
|
||||||
LogConfiguration:
|
|
||||||
LogDriver: awslogs
|
|
||||||
Options:
|
|
||||||
awslogs-group: !Ref LogGroupName
|
|
||||||
awslogs-region: !Ref 'AWS::Region'
|
|
||||||
awslogs-stream-prefix: !Ref ServiceName
|
|
||||||
DependsOn:
|
|
||||||
- LogGroup
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
public static streamLogs = `
|
|
||||||
SubscriptionFilter:
|
SubscriptionFilter:
|
||||||
Type: 'AWS::Logs::SubscriptionFilter'
|
Type: 'AWS::Logs::SubscriptionFilter'
|
||||||
Properties:
|
Properties:
|
||||||
FilterPattern: ''
|
FilterPattern: ''
|
||||||
RoleArn:
|
RoleArn:
|
||||||
'Fn::ImportValue': !Sub '${'${EnvironmentName}'}:CloudWatchIAMRole'
|
'Fn::ImportValue': !Sub '${EnvironmentName}:CloudWatchIAMRole'
|
||||||
LogGroupName: !Ref LogGroupName
|
LogGroupName: !Ref ServiceName
|
||||||
DestinationArn:
|
DestinationArn:
|
||||||
'Fn::GetAtt':
|
'Fn::GetAtt':
|
||||||
- KinesisStream
|
- KinesisStream
|
||||||
@ -165,5 +98,124 @@ Resources:
|
|||||||
Metadata:
|
Metadata:
|
||||||
'AWS::CloudFormation::Designer':
|
'AWS::CloudFormation::Designer':
|
||||||
id: c6f18447-b879-4696-8873-f981b2cedd2b
|
id: c6f18447-b879-4696-8873-f981b2cedd2b
|
||||||
`;
|
|
||||||
}
|
# template secrets p2 - secret
|
||||||
|
|
||||||
|
TaskDefinition:
|
||||||
|
Type: 'AWS::ECS::TaskDefinition'
|
||||||
|
Properties:
|
||||||
|
Family: !Ref ServiceName
|
||||||
|
Cpu: !Ref ContainerCpu
|
||||||
|
Memory: !Ref ContainerMemory
|
||||||
|
NetworkMode: awsvpc
|
||||||
|
Volumes:
|
||||||
|
- Name: efs-data
|
||||||
|
EFSVolumeConfiguration:
|
||||||
|
FilesystemId:
|
||||||
|
'Fn::ImportValue': !Sub '${EnvironmentName}:EfsFileStorageId'
|
||||||
|
TransitEncryption: ENABLED
|
||||||
|
RequiresCompatibilities:
|
||||||
|
- FARGATE
|
||||||
|
ExecutionRoleArn:
|
||||||
|
'Fn::ImportValue': !Sub '${EnvironmentName}:ECSTaskExecutionRole'
|
||||||
|
TaskRoleArn:
|
||||||
|
'Fn::If':
|
||||||
|
- HasCustomRole
|
||||||
|
- !Ref Role
|
||||||
|
- !Ref 'AWS::NoValue'
|
||||||
|
ContainerDefinitions:
|
||||||
|
- Name: !Ref ServiceName
|
||||||
|
Cpu: !Ref ContainerCpu
|
||||||
|
Memory: !Ref ContainerMemory
|
||||||
|
Image: !Ref ImageUrl
|
||||||
|
EntryPoint:
|
||||||
|
Fn::Split:
|
||||||
|
- ","
|
||||||
|
- !Ref EntryPoint
|
||||||
|
Command:
|
||||||
|
Fn::Split:
|
||||||
|
- ","
|
||||||
|
- !Ref Command
|
||||||
|
WorkingDirectory: !Ref WorkingDirectory
|
||||||
|
Environment:
|
||||||
|
- Name: ALLOW_EMPTY_PASSWORD
|
||||||
|
Value: 'yes'
|
||||||
|
# template - env vars
|
||||||
|
MountPoints:
|
||||||
|
- SourceVolume: efs-data
|
||||||
|
ContainerPath: !Ref EFSMountDirectory
|
||||||
|
ReadOnly: false
|
||||||
|
Secrets:
|
||||||
|
# template secrets p3 - container def
|
||||||
|
LogConfiguration:
|
||||||
|
LogDriver: awslogs
|
||||||
|
Options:
|
||||||
|
awslogs-group: !Ref ServiceName
|
||||||
|
awslogs-region: !Ref 'AWS::Region'
|
||||||
|
awslogs-stream-prefix: !Ref ServiceName
|
||||||
|
Metadata:
|
||||||
|
'AWS::CloudFormation::Designer':
|
||||||
|
id: dabb0116-abe0-48a6-a8af-cf9111c879a5
|
||||||
|
DependsOn:
|
||||||
|
- LogGroup
|
||||||
|
Metadata:
|
||||||
|
'AWS::CloudFormation::Designer':
|
||||||
|
dabb0116-abe0-48a6-a8af-cf9111c879a5:
|
||||||
|
size:
|
||||||
|
width: 60
|
||||||
|
height: 60
|
||||||
|
position:
|
||||||
|
x: 270
|
||||||
|
'y': 90
|
||||||
|
z: 1
|
||||||
|
embeds: []
|
||||||
|
dependson:
|
||||||
|
- aece53ae-b82d-4267-bc16-ed964b05db27
|
||||||
|
c6f18447-b879-4696-8873-f981b2cedd2b:
|
||||||
|
size:
|
||||||
|
width: 60
|
||||||
|
height: 60
|
||||||
|
position:
|
||||||
|
x: 270
|
||||||
|
'y': 210
|
||||||
|
z: 1
|
||||||
|
embeds: []
|
||||||
|
7f809e91-9e5d-4678-98c1-c5085956c480:
|
||||||
|
size:
|
||||||
|
width: 60
|
||||||
|
height: 60
|
||||||
|
position:
|
||||||
|
x: 60
|
||||||
|
'y': 300
|
||||||
|
z: 1
|
||||||
|
embeds: []
|
||||||
|
dependson:
|
||||||
|
- aece53ae-b82d-4267-bc16-ed964b05db27
|
||||||
|
- c6f18447-b879-4696-8873-f981b2cedd2b
|
||||||
|
aece53ae-b82d-4267-bc16-ed964b05db27:
|
||||||
|
size:
|
||||||
|
width: 150
|
||||||
|
height: 150
|
||||||
|
position:
|
||||||
|
x: 60
|
||||||
|
'y': 90
|
||||||
|
z: 1
|
||||||
|
embeds: []
|
||||||
|
4d2da56c-3643-46b8-aaee-e46e19f95fcc:
|
||||||
|
source:
|
||||||
|
id: 7f809e91-9e5d-4678-98c1-c5085956c480
|
||||||
|
target:
|
||||||
|
id: aece53ae-b82d-4267-bc16-ed964b05db27
|
||||||
|
z: 11
|
||||||
|
14eb957b-f094-4653-93c4-77b2f851953c:
|
||||||
|
source:
|
||||||
|
id: 7f809e91-9e5d-4678-98c1-c5085956c480
|
||||||
|
target:
|
||||||
|
id: c6f18447-b879-4696-8873-f981b2cedd2b
|
||||||
|
z: 12
|
||||||
|
85c57444-e5bb-4230-bc85-e545cd4558f6:
|
||||||
|
source:
|
||||||
|
id: dabb0116-abe0-48a6-a8af-cf9111c879a5
|
||||||
|
target:
|
||||||
|
id: aece53ae-b82d-4267-bc16-ed964b05db27
|
||||||
|
z: 13
|
709
dist/default-build-script/Assembly-CSharp-Editor.csproj
vendored
Normal file
709
dist/default-build-script/Assembly-CSharp-Editor.csproj
vendored
Normal file
@ -0,0 +1,709 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<LangVersion>latest</LangVersion>
|
||||||
|
<_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package</_TargetFrameworkDirectories>
|
||||||
|
<_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package</_FullFrameworkReferenceAssemblyPaths>
|
||||||
|
<DisableHandlePackageFileConflicts>true</DisableHandlePackageFileConflicts>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>10.0.20506</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<RootNamespace></RootNamespace>
|
||||||
|
<ProjectGuid>{B7F8614B-1EC2-9D3A-DA1C-4D279A867D74}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<AssemblyName>Assembly-CSharp-Editor</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<BaseDirectory>.</BaseDirectory>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>Temp\bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE;UNITY_2019_2_11;UNITY_2019_2;UNITY_2019;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_STANDARD_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_LEGACY_INPUT_MANAGER;NET_4_6;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<NoWarn>0169</NoWarn>
|
||||||
|
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>Temp\bin\Release\</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<NoWarn>0169</NoWarn>
|
||||||
|
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<NoConfig>true</NoConfig>
|
||||||
|
<NoStdLib>true</NoStdLib>
|
||||||
|
<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
|
||||||
|
<ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
|
||||||
|
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="UnityEngine">
|
||||||
|
<HintPath>C:\Program Files\Unity\2019.2.11f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor">
|
||||||
|
<HintPath>C:\Program Files\Unity\2019.2.11f1\Editor\Data\Managed/UnityEditor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Assets\Editor\Builder.cs" />
|
||||||
|
<Compile Include="Assets\Editor\Input\ArgumentsParser.cs" />
|
||||||
|
<Compile Include="Assets\Editor\Reporting\StdOutReporter.cs" />
|
||||||
|
<Compile Include="Assets\Editor\System\ProcessExtensions.cs" />
|
||||||
|
<Compile Include="Assets\Editor\Versioning\VersionApplicator.cs" />
|
||||||
|
<Compile Include="Assets\Editor\Versioning\Git.cs" />
|
||||||
|
<Compile Include="Assets\Editor\Versioning\VersionGenerator.cs" />
|
||||||
|
<Compile Include="Assets\Editor\Versioning\GitException.cs" />
|
||||||
|
<Reference Include="UnityEditor.TestRunner">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/UnityEditor.TestRunner.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TestRunner">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/UnityEngine.TestRunner.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Timeline.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.Timeline.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="com.unity.multiplayer-hlapi.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.VSCode.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.VSCode.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.TextMeshPro.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UI">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/UnityEngine.UI.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Timeline">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.Timeline.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.CollabProxy.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.CollabProxy.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="com.unity.multiplayer-weaver.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/com.unity.multiplayer-weaver.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.XR.LegacyInputHelpers">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/UnityEngine.XR.LegacyInputHelpers.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Rider.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.Rider.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.2D.Sprite.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.2D.Sprite.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.2D.Tilemap.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.2D.Tilemap.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.SpatialTracking">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/UnityEditor.SpatialTracking.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.SpatialTracking">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/UnityEngine.SpatialTracking.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.TextMeshPro">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.TextMeshPro.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Analytics.DataPrivacy">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/Unity.Analytics.DataPrivacy.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.XR.LegacyInputHelpers">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/UnityEditor.XR.LegacyInputHelpers.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.UI">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/UnityEditor.UI.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="com.unity.multiplayer-hlapi.Runtime">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Runtime.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.AIModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.ARModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.AccessibilityModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.AndroidJNIModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.AnimationModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.AssetBundleModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.AudioModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.ClothModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.ClusterInputModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.ClusterRendererModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.CoreModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.CrashReportingModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.DSPGraphModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.DirectorModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.FileSystemHttpModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.GameCenterModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.GridModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.HotReloadModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.IMGUIModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.ImageConversionModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.InputModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.InputLegacyModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.JSONSerializeModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.LocalizationModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.ParticleSystemModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.PerformanceReportingModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.PhysicsModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.Physics2DModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.ProfilerModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.ScreenCaptureModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.SharedInternalsModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.SpriteMaskModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.SpriteShapeModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.StreamingModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.SubstanceModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TLSModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TerrainModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TerrainPhysicsModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TextCoreModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TextRenderingModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TilemapModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UIModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UIElementsModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UNETModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UmbraModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UnityAnalyticsModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UnityConnectModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UnityTestProtocolModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UnityWebRequestModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UnityWebRequestAudioModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UnityWebRequestTextureModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.UnityWebRequestWWWModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.VFXModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.VRModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.VehiclesModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.VideoModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.WindModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.XRModule">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.VR">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/UnityExtensions/Unity/UnityVR/Editor/UnityEditor.VR.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.Graphs">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/Managed/UnityEditor.Graphs.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.WindowsStandalone.Extensions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.WebGL.Extensions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/PlaybackEngines/WebGLSupport/UnityEditor.WebGL.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.Android.Extensions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/PlaybackEngines/AndroidPlayer/UnityEditor.Android.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.UWP.Extensions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/PlaybackEngines/MetroSupport/UnityEditor.UWP.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.Advertisements">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/PackageCache/com.unity.ads@2.0.8/Editor/UnityEditor.Advertisements.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Analytics.Editor">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Editor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Analytics.StandardEvents">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.StandardEvents.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Analytics.Tracker">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Tracker.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEditor.Purchasing">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/PackageCache/com.unity.purchasing@2.0.6/Editor/UnityEditor.Purchasing.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="nunit.framework">
|
||||||
|
<HintPath>C:/Repositories/unity-builder/builder/default-build-script/Library/PackageCache/com.unity.ext.nunit@1.0.0/net35/unity-custom/nunit.framework.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="mscorlib">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Core">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.Serialization">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.Linq">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Numerics">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Numerics.Vectors">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.Http">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.CSharp">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Data">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Win32.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="netstandard">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.AppContext">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Collections.Concurrent">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Collections">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Collections.NonGeneric">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Collections.Specialized">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ComponentModel.Annotations">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ComponentModel">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ComponentModel.EventBasedAsync">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ComponentModel.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ComponentModel.TypeConverter">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Console">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Data.Common">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Diagnostics.Contracts">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Diagnostics.Debug">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Diagnostics.FileVersionInfo">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Diagnostics.Process">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Diagnostics.StackTrace">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Diagnostics.TextWriterTraceListener">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Diagnostics.Tools">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Diagnostics.TraceSource">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Drawing.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Dynamic.Runtime">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Globalization.Calendars">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Globalization">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Globalization.Extensions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.Compression.ZipFile">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.FileSystem">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.FileSystem.DriveInfo">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.FileSystem.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.FileSystem.Watcher">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.IsolatedStorage">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.MemoryMappedFiles">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.Pipes">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.IO.UnmanagedMemoryStream">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Linq">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Linq.Expressions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Linq.Parallel">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Linq.Queryable">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.Http.Rtc">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.NameResolution">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.NetworkInformation">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.Ping">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.Requests">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.Security">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.Sockets">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.WebHeaderCollection">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.WebSockets.Client">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Net.WebSockets">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ObjectModel">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reflection">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reflection.Emit">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reflection.Emit.ILGeneration">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reflection.Emit.Lightweight">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reflection.Extensions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Reflection.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Resources.Reader">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Resources.ResourceManager">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Resources.Writer">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.CompilerServices.VisualC">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.Extensions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.Handles">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.InteropServices">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.InteropServices.RuntimeInformation">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.InteropServices.WindowsRuntime">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.Numerics">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.Serialization.Formatters">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.Serialization.Json">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.Serialization.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.Serialization.Xml">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Security.Claims">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Security.Cryptography.Algorithms">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Security.Cryptography.Csp">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Security.Cryptography.Encoding">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Security.Cryptography.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Security.Cryptography.X509Certificates">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Security.Principal">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Security.SecureString">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ServiceModel.Duplex">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ServiceModel.Http">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ServiceModel.NetTcp">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ServiceModel.Primitives">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ServiceModel.Security">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Text.Encoding">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Text.Encoding.Extensions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Text.RegularExpressions">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Overlapped">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Tasks">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Tasks.Parallel">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Thread">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.ThreadPool">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Timer">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ValueTuple">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.ReaderWriter">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.XDocument">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.XmlDocument">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.XmlSerializer">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.XPath">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.XPath.XDocument">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityScript">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityScript.Lang">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.Lang.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Boo.Lang">
|
||||||
|
<HintPath>C:/Program Files/Unity/2019.2.11f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/Boo.Lang.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include=".editorconfig" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
@ -6,9 +6,6 @@ using UnityBuilderAction.Reporting;
|
|||||||
using UnityBuilderAction.Versioning;
|
using UnityBuilderAction.Versioning;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEditor.Build.Reporting;
|
using UnityEditor.Build.Reporting;
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
using UnityEditor.Build.Profile;
|
|
||||||
#endif
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace UnityBuilderAction
|
namespace UnityBuilderAction
|
||||||
@ -20,9 +17,36 @@ namespace UnityBuilderAction
|
|||||||
// Gather values from args
|
// Gather values from args
|
||||||
var options = ArgumentsParser.GetValidatedOptions();
|
var options = ArgumentsParser.GetValidatedOptions();
|
||||||
|
|
||||||
|
// Gather values from project
|
||||||
|
var scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled).Select(s => s.path).ToArray();
|
||||||
|
|
||||||
|
// Get all buildOptions from options
|
||||||
|
BuildOptions buildOptions = BuildOptions.None;
|
||||||
|
foreach (string buildOptionString in Enum.GetNames(typeof(BuildOptions))) {
|
||||||
|
if (options.ContainsKey(buildOptionString)) {
|
||||||
|
BuildOptions buildOptionEnum = (BuildOptions) Enum.Parse(typeof(BuildOptions), buildOptionString);
|
||||||
|
buildOptions |= buildOptionEnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define BuildPlayer Options
|
||||||
|
var buildPlayerOptions = new BuildPlayerOptions {
|
||||||
|
scenes = scenes,
|
||||||
|
locationPathName = options["customBuildPath"],
|
||||||
|
target = (BuildTarget) Enum.Parse(typeof(BuildTarget), options["buildTarget"]),
|
||||||
|
options = buildOptions
|
||||||
|
};
|
||||||
|
|
||||||
// Set version for this build
|
// Set version for this build
|
||||||
VersionApplicator.SetVersion(options["buildVersion"]);
|
VersionApplicator.SetVersion(options["buildVersion"]);
|
||||||
|
|
||||||
|
// Apply Android settings
|
||||||
|
if (buildPlayerOptions.target == BuildTarget.Android)
|
||||||
|
{
|
||||||
|
VersionApplicator.SetAndroidVersionCode(options["androidVersionCode"]);
|
||||||
|
AndroidSettings.Apply(options);
|
||||||
|
}
|
||||||
|
|
||||||
// Execute default AddressableAsset content build, if the package is installed.
|
// Execute default AddressableAsset content build, if the package is installed.
|
||||||
// Version defines would be the best solution here, but Unity 2018 doesn't support that,
|
// Version defines would be the best solution here, but Unity 2018 doesn't support that,
|
||||||
// so we fall back to using reflection instead.
|
// so we fall back to using reflection instead.
|
||||||
@ -39,76 +63,10 @@ namespace UnityBuilderAction
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.LogError("Failed to run default addressables build:\n" + e);
|
Debug.LogError($"Failed to run default addressables build:\n{e}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get all buildOptions from options
|
|
||||||
BuildOptions buildOptions = BuildOptions.None;
|
|
||||||
foreach (string buildOptionString in Enum.GetNames(typeof(BuildOptions))) {
|
|
||||||
if (options.ContainsKey(buildOptionString)) {
|
|
||||||
BuildOptions buildOptionEnum = (BuildOptions) Enum.Parse(typeof(BuildOptions), buildOptionString);
|
|
||||||
buildOptions |= buildOptionEnum;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Depending on whether the build is using a build profile, `buildPlayerOptions` will an instance
|
|
||||||
// of either `UnityEditor.BuildPlayerOptions` or `UnityEditor.BuildPlayerWithProfileOptions`
|
|
||||||
dynamic buildPlayerOptions;
|
|
||||||
|
|
||||||
if (options["customBuildProfile"] != "") {
|
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
// Load build profile from Assets folder
|
|
||||||
BuildProfile buildProfile = AssetDatabase.LoadAssetAtPath<BuildProfile>(options["customBuildProfile"]);
|
|
||||||
|
|
||||||
// Set it as active
|
|
||||||
BuildProfile.SetActiveBuildProfile(buildProfile);
|
|
||||||
|
|
||||||
// Define BuildPlayerWithProfileOptions
|
|
||||||
buildPlayerOptions = new BuildPlayerWithProfileOptions {
|
|
||||||
buildProfile = buildProfile,
|
|
||||||
locationPathName = options["customBuildPath"],
|
|
||||||
options = buildOptions,
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
throw new Exception("Build profiles are not supported by this version of Unity (" + Application.unityVersion +")");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// Gather values from project
|
|
||||||
var scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled).Select(s => s.path).ToArray();
|
|
||||||
|
|
||||||
#if UNITY_2021_2_OR_NEWER
|
|
||||||
// Determine subtarget
|
|
||||||
StandaloneBuildSubtarget buildSubtarget;
|
|
||||||
if (!options.TryGetValue("standaloneBuildSubtarget", out var subtargetValue) || !Enum.TryParse(subtargetValue, out buildSubtarget)) {
|
|
||||||
buildSubtarget = default;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
BuildTarget buildTarget = (BuildTarget) Enum.Parse(typeof(BuildTarget), options["buildTarget"]);
|
|
||||||
|
|
||||||
// Define BuildPlayerOptions
|
|
||||||
buildPlayerOptions = new BuildPlayerOptions {
|
|
||||||
scenes = scenes,
|
|
||||||
locationPathName = options["customBuildPath"],
|
|
||||||
target = buildTarget,
|
|
||||||
options = buildOptions,
|
|
||||||
#if UNITY_2021_2_OR_NEWER
|
|
||||||
subtarget = (int) buildSubtarget
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
// Apply Android settings
|
|
||||||
if (buildTarget == BuildTarget.Android) {
|
|
||||||
VersionApplicator.SetAndroidVersionCode(options["androidVersionCode"]);
|
|
||||||
AndroidSettings.Apply(options);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Perform build
|
// Perform build
|
||||||
BuildReport buildReport = BuildPipeline.BuildPlayer(buildPlayerOptions);
|
BuildReport buildReport = BuildPipeline.BuildPlayer(buildPlayerOptions);
|
||||||
|
|
||||||
|
@ -1,148 +1,24 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace UnityBuilderAction.Input
|
namespace UnityBuilderAction.Input
|
||||||
{
|
{
|
||||||
public static class AndroidSettings
|
public class AndroidSettings
|
||||||
{
|
{
|
||||||
public static void Apply(Dictionary<string, string> options)
|
public static void Apply(Dictionary<string, string> options)
|
||||||
{
|
{
|
||||||
#if UNITY_2019_1_OR_NEWER
|
EditorUserBuildSettings.buildAppBundle = options["customBuildPath"].EndsWith(".aab");
|
||||||
if (options.TryGetValue("androidKeystoreName", out string keystoreName) && !string.IsNullOrEmpty(keystoreName))
|
if (options.TryGetValue("androidKeystoreName", out string keystoreName) && !string.IsNullOrEmpty(keystoreName))
|
||||||
{
|
|
||||||
PlayerSettings.Android.useCustomKeystore = true;
|
|
||||||
PlayerSettings.Android.keystoreName = keystoreName;
|
PlayerSettings.Android.keystoreName = keystoreName;
|
||||||
}
|
if (options.TryGetValue("androidKeystorePass", out string keystorePass) && !string.IsNullOrEmpty(keystorePass))
|
||||||
#endif
|
|
||||||
// Can't use out variable declaration as Unity 2018 doesn't support it
|
|
||||||
string keystorePass;
|
|
||||||
if (options.TryGetValue("androidKeystorePass", out keystorePass) && !string.IsNullOrEmpty(keystorePass))
|
|
||||||
PlayerSettings.Android.keystorePass = keystorePass;
|
PlayerSettings.Android.keystorePass = keystorePass;
|
||||||
|
if (options.TryGetValue("androidKeyaliasName", out string keyaliasName) && !string.IsNullOrEmpty(keyaliasName))
|
||||||
string keyaliasName;
|
|
||||||
if (options.TryGetValue("androidKeyaliasName", out keyaliasName) && !string.IsNullOrEmpty(keyaliasName))
|
|
||||||
PlayerSettings.Android.keyaliasName = keyaliasName;
|
PlayerSettings.Android.keyaliasName = keyaliasName;
|
||||||
|
if (options.TryGetValue("androidKeyaliasPass", out string keyaliasPass) && !string.IsNullOrEmpty(keyaliasPass))
|
||||||
string keyaliasPass;
|
|
||||||
if (options.TryGetValue("androidKeyaliasPass", out keyaliasPass) && !string.IsNullOrEmpty(keyaliasPass))
|
|
||||||
PlayerSettings.Android.keyaliasPass = keyaliasPass;
|
PlayerSettings.Android.keyaliasPass = keyaliasPass;
|
||||||
|
if (options.TryGetValue("androidTargetSdkVersion", out string androidTargetSdkVersion) && !string.IsNullOrEmpty(androidTargetSdkVersion))
|
||||||
string androidTargetSdkVersion;
|
PlayerSettings.Android.targetSdkVersion = (AndroidSdkVersions) Enum.Parse(typeof(AndroidSdkVersions), androidTargetSdkVersion);
|
||||||
if (options.TryGetValue("androidTargetSdkVersion", out androidTargetSdkVersion) && !string.IsNullOrEmpty(androidTargetSdkVersion))
|
|
||||||
{
|
|
||||||
var targetSdkVersion = AndroidSdkVersions.AndroidApiLevelAuto;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
targetSdkVersion =
|
|
||||||
(AndroidSdkVersions) Enum.Parse(typeof(AndroidSdkVersions), androidTargetSdkVersion);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.Log("Failed to parse androidTargetSdkVersion! Fallback to AndroidApiLevelAuto");
|
|
||||||
}
|
|
||||||
PlayerSettings.Android.targetSdkVersion = targetSdkVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
string androidExportType;
|
|
||||||
if (options.TryGetValue("androidExportType", out androidExportType) && !string.IsNullOrEmpty(androidExportType))
|
|
||||||
{
|
|
||||||
// Only exists in 2018.3 and above
|
|
||||||
PropertyInfo buildAppBundle = typeof(EditorUserBuildSettings)
|
|
||||||
.GetProperty("buildAppBundle", BindingFlags.Public | BindingFlags.Static);
|
|
||||||
switch (androidExportType)
|
|
||||||
{
|
|
||||||
case "androidStudioProject":
|
|
||||||
EditorUserBuildSettings.exportAsGoogleAndroidProject = true;
|
|
||||||
if (buildAppBundle != null)
|
|
||||||
buildAppBundle.SetValue(null, false, null);
|
|
||||||
break;
|
|
||||||
case "androidAppBundle":
|
|
||||||
EditorUserBuildSettings.exportAsGoogleAndroidProject = false;
|
|
||||||
if (buildAppBundle != null)
|
|
||||||
buildAppBundle.SetValue(null, true, null);
|
|
||||||
break;
|
|
||||||
case "androidPackage":
|
|
||||||
EditorUserBuildSettings.exportAsGoogleAndroidProject = false;
|
|
||||||
if (buildAppBundle != null)
|
|
||||||
buildAppBundle.SetValue(null, false, null);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string symbolType;
|
|
||||||
if (options.TryGetValue("androidSymbolType", out symbolType) && !string.IsNullOrEmpty(symbolType))
|
|
||||||
{
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
switch (symbolType)
|
|
||||||
{
|
|
||||||
case "public":
|
|
||||||
SetDebugSymbols("SymbolTable");
|
|
||||||
break;
|
|
||||||
case "debugging":
|
|
||||||
SetDebugSymbols("Full");
|
|
||||||
break;
|
|
||||||
case "none":
|
|
||||||
SetDebugSymbols("None");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#elif UNITY_2021_1_OR_NEWER
|
|
||||||
switch (symbolType)
|
|
||||||
{
|
|
||||||
case "public":
|
|
||||||
EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Public;
|
|
||||||
break;
|
|
||||||
case "debugging":
|
|
||||||
EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Debugging;
|
|
||||||
break;
|
|
||||||
case "none":
|
|
||||||
EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Disabled;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#elif UNITY_2019_2_OR_NEWER
|
|
||||||
switch (symbolType)
|
|
||||||
{
|
|
||||||
case "public":
|
|
||||||
case "debugging":
|
|
||||||
EditorUserBuildSettings.androidCreateSymbolsZip = true;
|
|
||||||
break;
|
|
||||||
case "none":
|
|
||||||
EditorUserBuildSettings.androidCreateSymbolsZip = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void SetDebugSymbols(string enumValueName)
|
|
||||||
{
|
|
||||||
// UnityEditor.Android.UserBuildSettings and Unity.Android.Types.DebugSymbolLevel are part of the Unity Android module.
|
|
||||||
// Reflection is used here to ensure the code works even if the module is not installed.
|
|
||||||
|
|
||||||
var debugSymbolsType = Type.GetType("UnityEditor.Android.UserBuildSettings+DebugSymbols, UnityEditor.Android.Extensions");
|
|
||||||
if (debugSymbolsType == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var levelProp = debugSymbolsType.GetProperty("level", BindingFlags.Static | BindingFlags.Public);
|
|
||||||
if (levelProp == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var enumType = Type.GetType("Unity.Android.Types.DebugSymbolLevel, Unity.Android.Types");
|
|
||||||
if (enumType == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Enum.TryParse(enumType, enumValueName, false , out var enumValue))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
levelProp.SetValue(null, enumValue);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,39 +12,33 @@ namespace UnityBuilderAction.Input
|
|||||||
|
|
||||||
public static Dictionary<string, string> GetValidatedOptions()
|
public static Dictionary<string, string> GetValidatedOptions()
|
||||||
{
|
{
|
||||||
Dictionary<string, string> validatedOptions;
|
ParseCommandLineArguments(out var validatedOptions);
|
||||||
ParseCommandLineArguments(out validatedOptions);
|
|
||||||
|
|
||||||
string projectPath;
|
if (!validatedOptions.TryGetValue("projectPath", out var projectPath)) {
|
||||||
if (!validatedOptions.TryGetValue("projectPath", out projectPath)) {
|
|
||||||
Console.WriteLine("Missing argument -projectPath");
|
Console.WriteLine("Missing argument -projectPath");
|
||||||
EditorApplication.Exit(110);
|
EditorApplication.Exit(110);
|
||||||
}
|
}
|
||||||
|
|
||||||
string buildTarget;
|
if (!validatedOptions.TryGetValue("buildTarget", out var buildTarget)) {
|
||||||
if (!validatedOptions.TryGetValue("buildTarget", out buildTarget)) {
|
|
||||||
Console.WriteLine("Missing argument -buildTarget");
|
Console.WriteLine("Missing argument -buildTarget");
|
||||||
EditorApplication.Exit(120);
|
EditorApplication.Exit(120);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Enum.IsDefined(typeof(BuildTarget), buildTarget)) {
|
if (!Enum.IsDefined(typeof(BuildTarget), buildTarget)) {
|
||||||
Console.WriteLine(buildTarget + " is not a defined " + typeof(BuildTarget).Name);
|
|
||||||
EditorApplication.Exit(121);
|
EditorApplication.Exit(121);
|
||||||
}
|
}
|
||||||
|
|
||||||
string customBuildPath;
|
if (!validatedOptions.TryGetValue("customBuildPath", out var customBuildPath)) {
|
||||||
if (!validatedOptions.TryGetValue("customBuildPath", out customBuildPath)) {
|
|
||||||
Console.WriteLine("Missing argument -customBuildPath");
|
Console.WriteLine("Missing argument -customBuildPath");
|
||||||
EditorApplication.Exit(130);
|
EditorApplication.Exit(130);
|
||||||
}
|
}
|
||||||
|
|
||||||
const string defaultCustomBuildName = "TestBuild";
|
const string defaultCustomBuildName = "TestBuild";
|
||||||
string customBuildName;
|
if (!validatedOptions.TryGetValue("customBuildName", out var customBuildName)) {
|
||||||
if (!validatedOptions.TryGetValue("customBuildName", out customBuildName)) {
|
Console.WriteLine($"Missing argument -customBuildName, defaulting to {defaultCustomBuildName}.");
|
||||||
Console.WriteLine("Missing argument -customBuildName, defaulting to" + defaultCustomBuildName);
|
|
||||||
validatedOptions.Add("customBuildName", defaultCustomBuildName);
|
validatedOptions.Add("customBuildName", defaultCustomBuildName);
|
||||||
} else if (customBuildName == "") {
|
} else if (customBuildName == "") {
|
||||||
Console.WriteLine("Invalid argument -customBuildName, defaulting to" + defaultCustomBuildName);
|
Console.WriteLine($"Invalid argument -customBuildName, defaulting to {defaultCustomBuildName}.");
|
||||||
validatedOptions.Add("customBuildName", defaultCustomBuildName);
|
validatedOptions.Add("customBuildName", defaultCustomBuildName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,11 +51,11 @@ namespace UnityBuilderAction.Input
|
|||||||
string[] args = Environment.GetCommandLineArgs();
|
string[] args = Environment.GetCommandLineArgs();
|
||||||
|
|
||||||
Console.WriteLine(
|
Console.WriteLine(
|
||||||
EOL +
|
$"{EOL}" +
|
||||||
"###########################" + EOL +
|
$"###########################{EOL}" +
|
||||||
"# Parsing settings #" + EOL +
|
$"# Parsing settings #{EOL}" +
|
||||||
"###########################" + EOL +
|
$"###########################{EOL}" +
|
||||||
EOL
|
$"{EOL}"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Extract flags with optional values
|
// Extract flags with optional values
|
||||||
@ -78,7 +72,7 @@ namespace UnityBuilderAction.Input
|
|||||||
string displayValue = secret ? "*HIDDEN*" : "\"" + value + "\"";
|
string displayValue = secret ? "*HIDDEN*" : "\"" + value + "\"";
|
||||||
|
|
||||||
// Assign
|
// Assign
|
||||||
Console.WriteLine("Found flag \"" + flag + "\" with value " + displayValue);
|
Console.WriteLine($"Found flag \"{flag}\" with value {displayValue}.");
|
||||||
providedArguments.Add(flag, value);
|
providedArguments.Add(flag, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
using System;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEditor;
|
|
||||||
|
|
||||||
namespace UnityBuilderAction.Reporting
|
|
||||||
{
|
|
||||||
[InitializeOnLoad]
|
|
||||||
static class CompileListener
|
|
||||||
{
|
|
||||||
static CompileListener()
|
|
||||||
{
|
|
||||||
if (Application.isBatchMode)
|
|
||||||
{
|
|
||||||
Application.logMessageReceived += Application_logMessageReceived;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void Application_logMessageReceived(string condition, string stackTrace, LogType type)
|
|
||||||
{
|
|
||||||
string prefix = "";
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case LogType.Error:
|
|
||||||
prefix = "error";
|
|
||||||
break;
|
|
||||||
case LogType.Warning:
|
|
||||||
prefix = "warning";
|
|
||||||
break;
|
|
||||||
case LogType.Exception:
|
|
||||||
prefix = "error";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Console.WriteLine(Environment.NewLine + "::" + prefix + "::" + condition + Environment.NewLine + stackTrace);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: fad44373fb7b61a4bb584e2675795aca
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -11,16 +11,16 @@ namespace UnityBuilderAction.Reporting
|
|||||||
public static void ReportSummary(BuildSummary summary)
|
public static void ReportSummary(BuildSummary summary)
|
||||||
{
|
{
|
||||||
Console.WriteLine(
|
Console.WriteLine(
|
||||||
EOL +
|
$"{EOL}" +
|
||||||
"###########################" + EOL +
|
$"###########################{EOL}" +
|
||||||
"# Build results #" + EOL +
|
$"# Build results #{EOL}" +
|
||||||
"###########################" + EOL +
|
$"###########################{EOL}" +
|
||||||
EOL +
|
$"{EOL}" +
|
||||||
"Duration: " + summary.totalTime.ToString() + EOL +
|
$"Duration: {summary.totalTime.ToString()}{EOL}" +
|
||||||
"Warnings: " + summary.totalWarnings.ToString() + EOL +
|
$"Warnings: {summary.totalWarnings.ToString()}{EOL}" +
|
||||||
"Errors: " + summary.totalErrors.ToString() + EOL +
|
$"Errors: {summary.totalErrors.ToString()}{EOL}" +
|
||||||
"Size: " + summary.totalSize.ToString() + " bytes" + EOL +
|
$"Size: {summary.totalSize.ToString()} bytes{EOL}" +
|
||||||
EOL
|
$"{EOL}"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,11 +21,11 @@ namespace UnityBuilderAction.Versioning
|
|||||||
version = GetSemanticCommitVersion();
|
version = GetSemanticCommitVersion();
|
||||||
Console.WriteLine("Repository has a valid version tag.");
|
Console.WriteLine("Repository has a valid version tag.");
|
||||||
} else {
|
} else {
|
||||||
version = "0.0." + GetTotalNumberOfCommits();
|
version = $"0.0.{GetTotalNumberOfCommits()}";
|
||||||
Console.WriteLine("Repository does not have tags to base the version on.");
|
Console.WriteLine("Repository does not have tags to base the version on.");
|
||||||
}
|
}
|
||||||
|
|
||||||
Console.WriteLine("Version is " + version);
|
Console.WriteLine($"Version is {version}");
|
||||||
|
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
@ -106,8 +106,7 @@ namespace UnityBuilderAction.Versioning
|
|||||||
using (var process = new System.Diagnostics.Process()) {
|
using (var process = new System.Diagnostics.Process()) {
|
||||||
string workingDirectory = UnityEngine.Application.dataPath;
|
string workingDirectory = UnityEngine.Application.dataPath;
|
||||||
|
|
||||||
string output, errors;
|
int exitCode = process.Run(application, arguments, workingDirectory, out string output, out string errors);
|
||||||
int exitCode = process.Run(application, arguments, workingDirectory, out output, out errors);
|
|
||||||
if (exitCode != 0) { throw new GitException(exitCode, errors); }
|
if (exitCode != 0) { throw new GitException(exitCode, errors); }
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
|
10
dist/default-build-script/ProjectSettings/XRSettings.asset
vendored
Normal file
10
dist/default-build-script/ProjectSettings/XRSettings.asset
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"m_SettingKeys": [
|
||||||
|
"VR Device Disabled",
|
||||||
|
"VR Device User Alert"
|
||||||
|
],
|
||||||
|
"m_SettingValues": [
|
||||||
|
"False",
|
||||||
|
"False"
|
||||||
|
]
|
||||||
|
}
|
20
dist/default-build-script/default-build-script.sln
vendored
Normal file
20
dist/default-build-script/default-build-script.sln
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
|
# Visual Studio 2010
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{B7F8614B-1EC2-9D3A-DA1C-4D279A867D74}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{B7F8614B-1EC2-9D3A-DA1C-4D279A867D74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B7F8614B-1EC2-9D3A-DA1C-4D279A867D74}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B7F8614B-1EC2-9D3A-DA1C-4D279A867D74}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B7F8614B-1EC2-9D3A-DA1C-4D279A867D74}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
3
dist/default-build-script/default-build-script.sln.DotSettings
vendored
Normal file
3
dist/default-build-script/default-build-script.sln.DotSettings
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Untracked/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Versioning/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
BIN
dist/index.js
generated
vendored
BIN
dist/index.js
generated
vendored
Binary file not shown.
BIN
dist/index.js.map
generated
vendored
BIN
dist/index.js.map
generated
vendored
Binary file not shown.
BIN
dist/licenses.txt
generated
vendored
BIN
dist/licenses.txt
generated
vendored
Binary file not shown.
60
dist/platforms/mac/entrypoint.sh
vendored
60
dist/platforms/mac/entrypoint.sh
vendored
@ -1,60 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
#
|
|
||||||
# Perform Activation
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ "$SKIP_ACTIVATION" != "true" ]; then
|
|
||||||
UNITY_LICENSE_PATH="/Library/Application Support/Unity"
|
|
||||||
|
|
||||||
if [ ! -d "$UNITY_LICENSE_PATH" ]; then
|
|
||||||
echo "Creating Unity License Directory"
|
|
||||||
sudo mkdir -p "$UNITY_LICENSE_PATH"
|
|
||||||
sudo chmod -R 777 "$UNITY_LICENSE_PATH"
|
|
||||||
fi;
|
|
||||||
|
|
||||||
ACTIVATE_LICENSE_PATH="$ACTION_FOLDER/BlankProject"
|
|
||||||
mkdir -p "$ACTIVATE_LICENSE_PATH"
|
|
||||||
|
|
||||||
source $ACTION_FOLDER/platforms/mac/steps/activate.sh
|
|
||||||
else
|
|
||||||
echo "Skipping activation"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Run Build
|
|
||||||
#
|
|
||||||
|
|
||||||
source $ACTION_FOLDER/platforms/mac/steps/build.sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# License Cleanup
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ "$SKIP_ACTIVATION" != "true" ]; then
|
|
||||||
source $ACTION_FOLDER/platforms/mac/steps/return_license.sh
|
|
||||||
rm -r "$ACTIVATE_LICENSE_PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Instructions for debugging
|
|
||||||
#
|
|
||||||
|
|
||||||
if [[ $BUILD_EXIT_CODE -gt 0 ]]; then
|
|
||||||
echo ""
|
|
||||||
echo "###########################"
|
|
||||||
echo "# Failure #"
|
|
||||||
echo "###########################"
|
|
||||||
echo ""
|
|
||||||
echo "Please note that the exit code is not very descriptive."
|
|
||||||
echo "Most likely it will not help you solve the issue."
|
|
||||||
echo ""
|
|
||||||
echo "To find the reason for failure: please search for errors in the log above and check for annotations in the summary view."
|
|
||||||
echo ""
|
|
||||||
fi;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Exit with code from the build step.
|
|
||||||
#
|
|
||||||
|
|
||||||
exit $BUILD_EXIT_CODE
|
|
38
dist/platforms/mac/steps/activate.sh
vendored
38
dist/platforms/mac/steps/activate.sh
vendored
@ -1,38 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Run in ACTIVATE_LICENSE_PATH directory
|
|
||||||
echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory."
|
|
||||||
pushd "$ACTIVATE_LICENSE_PATH"
|
|
||||||
|
|
||||||
echo "Requesting activation"
|
|
||||||
|
|
||||||
# Activate license
|
|
||||||
/Applications/Unity/Hub/Editor/$UNITY_VERSION/Unity.app/Contents/MacOS/Unity \
|
|
||||||
-logFile - \
|
|
||||||
-batchmode \
|
|
||||||
-nographics \
|
|
||||||
-quit \
|
|
||||||
-serial "$UNITY_SERIAL" \
|
|
||||||
-username "$UNITY_EMAIL" \
|
|
||||||
-password "$UNITY_PASSWORD" \
|
|
||||||
-projectPath "$ACTIVATE_LICENSE_PATH"
|
|
||||||
|
|
||||||
# Store the exit code from the verify command
|
|
||||||
UNITY_EXIT_CODE=$?
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display information about the result
|
|
||||||
#
|
|
||||||
if [ $UNITY_EXIT_CODE -eq 0 ]; then
|
|
||||||
# Activation was a success
|
|
||||||
echo "Activation complete."
|
|
||||||
else
|
|
||||||
# Activation failed so exit with the code from the license verification step
|
|
||||||
echo "Unclassified error occured while trying to activate license."
|
|
||||||
echo "Exit code was: $UNITY_EXIT_CODE"
|
|
||||||
echo "::error ::There was an error while trying to activate the Unity license."
|
|
||||||
exit $UNITY_EXIT_CODE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Return to previous working directory
|
|
||||||
popd
|
|
215
dist/platforms/mac/steps/build.sh
vendored
215
dist/platforms/mac/steps/build.sh
vendored
@ -1,215 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set project path
|
|
||||||
#
|
|
||||||
|
|
||||||
UNITY_PROJECT_PATH="$GITHUB_WORKSPACE/$PROJECT_PATH"
|
|
||||||
echo "Using project path \"$UNITY_PROJECT_PATH\"."
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display the name for the build, doubles as the output name
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Using build name \"$BUILD_NAME\"."
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display the build's target platform;
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Using build target \"$BUILD_TARGET\"."
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display the build profile
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ -z "$BUILD_PROFILE" ]; then
|
|
||||||
# User has not provided a build profile
|
|
||||||
#
|
|
||||||
echo "Doing a default \"$BUILD_TARGET\" platform build."
|
|
||||||
#
|
|
||||||
else
|
|
||||||
# User has provided a path to a build profile `.asset` file
|
|
||||||
#
|
|
||||||
echo "Using build profile \"$BUILD_PROFILE\" relative to \"$UNITY_PROJECT_PATH\"."
|
|
||||||
#
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display build path and file
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Using build path \"$BUILD_PATH\" to save file \"$BUILD_FILE\"."
|
|
||||||
BUILD_PATH_FULL="$GITHUB_WORKSPACE/$BUILD_PATH"
|
|
||||||
CUSTOM_BUILD_PATH="$BUILD_PATH_FULL/$BUILD_FILE"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set the build method, must reference one of:
|
|
||||||
#
|
|
||||||
# - <NamespaceName.ClassName.MethodName>
|
|
||||||
# - <ClassName.MethodName>
|
|
||||||
#
|
|
||||||
# For example: `BuildCommand.PerformBuild`
|
|
||||||
#
|
|
||||||
# The method must be declared static and placed in project/Assets/Editor
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ -z "$BUILD_METHOD" ]; then
|
|
||||||
# User has not provided their own build command.
|
|
||||||
#
|
|
||||||
# Use the script from this action which builds the scenes that are enabled in
|
|
||||||
# the project.
|
|
||||||
#
|
|
||||||
echo "Using built-in build method."
|
|
||||||
# Create Editor directory if it does not exist
|
|
||||||
mkdir -p "$UNITY_PROJECT_PATH/Assets/Editor/"
|
|
||||||
# Copy the build script of Unity Builder action
|
|
||||||
cp -R "$ACTION_FOLDER/default-build-script/Assets/Editor/" "$UNITY_PROJECT_PATH/Assets/Editor/"
|
|
||||||
# Set the Build method to that of UnityBuilder Action
|
|
||||||
BUILD_METHOD="UnityBuilderAction.Builder.BuildProject"
|
|
||||||
# Verify recursive paths
|
|
||||||
ls -Ralph "$UNITY_PROJECT_PATH/Assets/Editor/"
|
|
||||||
#
|
|
||||||
else
|
|
||||||
# User has provided their own build method.
|
|
||||||
# Assume they also bring their own script.
|
|
||||||
#
|
|
||||||
echo "Using build method \"$BUILD_METHOD\"."
|
|
||||||
#
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Prepare Android keystore and SDK, if needed
|
|
||||||
#
|
|
||||||
|
|
||||||
if [[ "$BUILD_TARGET" == "Android" && -n "$ANDROID_KEYSTORE_NAME" && -n "$ANDROID_KEYSTORE_BASE64" ]]; then
|
|
||||||
echo "Creating Android keystore."
|
|
||||||
echo "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$UNITY_PROJECT_PATH/$ANDROID_KEYSTORE_NAME"
|
|
||||||
echo "Created Android keystore."
|
|
||||||
else
|
|
||||||
echo "Not creating Android keystore."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$BUILD_TARGET" == "Android" && -n "$ANDROID_SDK_MANAGER_PARAMETERS" ]]; then
|
|
||||||
echo "Updating Android SDK with parameters: $ANDROID_SDK_MANAGER_PARAMETERS"
|
|
||||||
ANDROID_INSTALL_LOCATION="/Applications/Unity/Hub/Editor/$UNITY_VERSION/PlaybackEngines/AndroidPlayer"
|
|
||||||
export JAVA_HOME="$ANDROID_INSTALL_LOCATION/OpenJDK"
|
|
||||||
export ANDROID_HOME="$ANDROID_INSTALL_LOCATION/SDK"
|
|
||||||
yes | "$ANDROID_HOME/tools/bin/sdkmanager" "$ANDROID_SDK_MANAGER_PARAMETERS"
|
|
||||||
echo "Updated Android SDK."
|
|
||||||
else
|
|
||||||
echo "Not updating Android SDK."
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Pre-build debug information
|
|
||||||
#
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "###########################"
|
|
||||||
echo "# Custom parameters #"
|
|
||||||
echo "###########################"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
echo "$CUSTOM_PARAMETERS"
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "###########################"
|
|
||||||
echo "# Current build dir #"
|
|
||||||
echo "###########################"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
echo "Creating \"$BUILD_PATH_FULL\" if it does not exist."
|
|
||||||
mkdir -p "$BUILD_PATH_FULL"
|
|
||||||
ls -alh "$BUILD_PATH_FULL"
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "###########################"
|
|
||||||
echo "# Project directory #"
|
|
||||||
echo "###########################"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
ls -alh "$UNITY_PROJECT_PATH"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Build
|
|
||||||
#
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "###########################"
|
|
||||||
echo "# Building project #"
|
|
||||||
echo "###########################"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Reference: https://docs.unity3d.com/2019.3/Documentation/Manual/CommandLineArguments.html
|
|
||||||
|
|
||||||
/Applications/Unity/Hub/Editor/$UNITY_VERSION/Unity.app/Contents/MacOS/Unity \
|
|
||||||
-logFile - \
|
|
||||||
$( [ "${MANUAL_EXIT}" == "true" ] || echo "-quit" ) \
|
|
||||||
-batchmode \
|
|
||||||
$( [ "${ENABLE_GPU}" == "true" ] || echo "-nographics" ) \
|
|
||||||
-username "$UNITY_EMAIL" \
|
|
||||||
-password "$UNITY_PASSWORD" \
|
|
||||||
-customBuildName "$BUILD_NAME" \
|
|
||||||
-projectPath "$UNITY_PROJECT_PATH" \
|
|
||||||
-buildTarget "$BUILD_TARGET" \
|
|
||||||
-customBuildTarget "$BUILD_TARGET" \
|
|
||||||
-customBuildPath "$CUSTOM_BUILD_PATH" \
|
|
||||||
-customBuildProfile "$BUILD_PROFILE" \
|
|
||||||
-executeMethod "$BUILD_METHOD" \
|
|
||||||
-buildVersion "$VERSION" \
|
|
||||||
-androidVersionCode "$ANDROID_VERSION_CODE" \
|
|
||||||
-androidKeystoreName "$ANDROID_KEYSTORE_NAME" \
|
|
||||||
-androidKeystorePass "$ANDROID_KEYSTORE_PASS" \
|
|
||||||
-androidKeyaliasName "$ANDROID_KEYALIAS_NAME" \
|
|
||||||
-androidKeyaliasPass "$ANDROID_KEYALIAS_PASS" \
|
|
||||||
-androidTargetSdkVersion "$ANDROID_TARGET_SDK_VERSION" \
|
|
||||||
-androidExportType "$ANDROID_EXPORT_TYPE" \
|
|
||||||
-androidSymbolType "$ANDROID_SYMBOL_TYPE" \
|
|
||||||
$CUSTOM_PARAMETERS
|
|
||||||
|
|
||||||
# Catch exit code
|
|
||||||
BUILD_EXIT_CODE=$?
|
|
||||||
|
|
||||||
# Display logs
|
|
||||||
cat "$UNITY_PROJECT_PATH/out.log"
|
|
||||||
|
|
||||||
# Display results
|
|
||||||
if [ $BUILD_EXIT_CODE -eq 0 ]; then
|
|
||||||
echo "Build succeeded";
|
|
||||||
else
|
|
||||||
echo "Build failed, with exit code $BUILD_EXIT_CODE";
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Permissions
|
|
||||||
#
|
|
||||||
|
|
||||||
# Make a given user owner of all artifacts
|
|
||||||
if [[ -n "$CHOWN_FILES_TO" ]]; then
|
|
||||||
chown -R "$CHOWN_FILES_TO" "$BUILD_PATH_FULL"
|
|
||||||
chown -R "$CHOWN_FILES_TO" "$UNITY_PROJECT_PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add read permissions for everyone to all artifacts
|
|
||||||
chmod -R a+r "$BUILD_PATH_FULL"
|
|
||||||
chmod -R a+r "$UNITY_PROJECT_PATH"
|
|
||||||
|
|
||||||
# Add execute permissions to specific files
|
|
||||||
if [[ "$BUILD_TARGET" == "StandaloneOSX" ]]; then
|
|
||||||
OSX_EXECUTABLE_PATH="$BUILD_PATH_FULL/$BUILD_NAME.app/Contents/MacOS"
|
|
||||||
find "$OSX_EXECUTABLE_PATH" -type f -exec chmod +x {} \;
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Results
|
|
||||||
#
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "###########################"
|
|
||||||
echo "# Build output #"
|
|
||||||
echo "###########################"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
ls -alh "$BUILD_PATH_FULL"
|
|
18
dist/platforms/mac/steps/return_license.sh
vendored
18
dist/platforms/mac/steps/return_license.sh
vendored
@ -1,18 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Run in ACTIVATE_LICENSE_PATH directory
|
|
||||||
echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory."
|
|
||||||
pushd "$ACTIVATE_LICENSE_PATH"
|
|
||||||
|
|
||||||
/Applications/Unity/Hub/Editor/$UNITY_VERSION/Unity.app/Contents/MacOS/Unity \
|
|
||||||
-logFile - \
|
|
||||||
-batchmode \
|
|
||||||
-nographics \
|
|
||||||
-quit \
|
|
||||||
-username "$UNITY_EMAIL" \
|
|
||||||
-password "$UNITY_PASSWORD" \
|
|
||||||
-returnlicense \
|
|
||||||
-projectPath "$ACTIVATE_LICENSE_PATH"
|
|
||||||
|
|
||||||
# Return to previous working directory
|
|
||||||
popd
|
|
20
dist/platforms/ubuntu/Dockerfile
vendored
Normal file
20
dist/platforms/ubuntu/Dockerfile
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
ARG IMAGE
|
||||||
|
FROM $IMAGE
|
||||||
|
|
||||||
|
LABEL "com.github.actions.name"="Unity - Builder"
|
||||||
|
LABEL "com.github.actions.description"="Build Unity projects for different platforms."
|
||||||
|
LABEL "com.github.actions.icon"="box"
|
||||||
|
LABEL "com.github.actions.color"="gray-dark"
|
||||||
|
|
||||||
|
LABEL "repository"="http://github.com/game-ci/unity-actions"
|
||||||
|
LABEL "homepage"="http://github.com/game-ci/unity-actions"
|
||||||
|
LABEL "maintainer"="Webber Takken <webber@takken.io>"
|
||||||
|
|
||||||
|
COPY default-build-script /UnityBuilderAction
|
||||||
|
COPY platforms/ubuntu/steps /steps
|
||||||
|
RUN chmod -R +x /steps
|
||||||
|
COPY platforms/ubuntu/entrypoint.sh /entrypoint.sh
|
||||||
|
RUN chmod +x /entrypoint.sh
|
||||||
|
RUN ls
|
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
104
dist/platforms/ubuntu/entrypoint.sh
vendored
Executable file → Normal file
104
dist/platforms/ubuntu/entrypoint.sh
vendored
Executable file → Normal file
@ -1,83 +1,45 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Ensure machine ID is randomized for personal license activation
|
|
||||||
if [[ "$UNITY_SERIAL" = F* ]]; then
|
|
||||||
echo "Randomizing machine ID for personal license activation"
|
|
||||||
dbus-uuidgen > /etc/machine-id && mkdir -p /var/lib/dbus/ && ln -sf /etc/machine-id /var/lib/dbus/machine-id
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Prepare Android SDK, if needed
|
# Create directory for license activation
|
||||||
# We do this here to ensure it has root permissions
|
|
||||||
#
|
#
|
||||||
|
|
||||||
fullProjectPath="$GITHUB_WORKSPACE/$PROJECT_PATH"
|
ACTIVATE_LICENSE_PATH="$GITHUB_WORKSPACE/_activate-license"
|
||||||
|
mkdir -p "$ACTIVATE_LICENSE_PATH"
|
||||||
|
|
||||||
if [[ "$BUILD_TARGET" == "Android" ]]; then
|
#
|
||||||
export JAVA_HOME="$(awk -F'=' '/JAVA_HOME=/{print $2}' /usr/bin/unity-editor.d/*)"
|
# Run steps
|
||||||
ANDROID_HOME_DIRECTORY="$(awk -F'=' '/ANDROID_HOME=/{print $2}' /usr/bin/unity-editor.d/*)"
|
#
|
||||||
SDKMANAGER=$(find $ANDROID_HOME_DIRECTORY/cmdline-tools -name sdkmanager)
|
source /steps/set_gitcredential.sh
|
||||||
if [ -z "${SDKMANAGER}" ]
|
source /steps/activate.sh
|
||||||
then
|
source /steps/build.sh
|
||||||
SDKMANAGER=$(find $ANDROID_HOME_DIRECTORY/tools/bin -name sdkmanager)
|
source /steps/return_license.sh
|
||||||
if [ -z "${SDKMANAGER}" ]
|
|
||||||
then
|
|
||||||
echo "No sdkmanager found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$ANDROID_SDK_MANAGER_PARAMETERS" ]]; then
|
#
|
||||||
echo "Updating Android SDK with parameters: $ANDROID_SDK_MANAGER_PARAMETERS"
|
# Remove license activation directory
|
||||||
$SDKMANAGER "$ANDROID_SDK_MANAGER_PARAMETERS"
|
#
|
||||||
else
|
|
||||||
echo "Updating Android SDK with auto detected target API version"
|
|
||||||
# Read the line containing AndroidTargetSdkVersion from the file
|
|
||||||
targetAPILine=$(grep 'AndroidTargetSdkVersion' "$fullProjectPath/ProjectSettings/ProjectSettings.asset")
|
|
||||||
|
|
||||||
# Extract the number after the semicolon
|
rm -r "$ACTIVATE_LICENSE_PATH"
|
||||||
targetAPI=$(echo "$targetAPILine" | cut -d':' -f2 | tr -d '[:space:]')
|
|
||||||
|
|
||||||
$SDKMANAGER "platforms;android-$targetAPI"
|
#
|
||||||
fi
|
# Instructions for debugging
|
||||||
|
#
|
||||||
|
|
||||||
echo "Updated Android SDK."
|
if [[ $BUILD_EXIT_CODE -gt 0 ]]; then
|
||||||
else
|
echo ""
|
||||||
echo "Not updating Android SDK."
|
echo "###########################"
|
||||||
fi
|
echo "# Failure #"
|
||||||
|
echo "###########################"
|
||||||
|
echo ""
|
||||||
|
echo "Please note that the exit code is not very descriptive."
|
||||||
|
echo "Most likely it will not help you solve the issue."
|
||||||
|
echo ""
|
||||||
|
echo "To find the reason for failure: please search for errors in the log above."
|
||||||
|
echo ""
|
||||||
|
fi;
|
||||||
|
|
||||||
if [[ "$RUN_AS_HOST_USER" == "true" ]]; then
|
#
|
||||||
echo "Running as host user"
|
# Exit with code from the build step.
|
||||||
|
#
|
||||||
|
|
||||||
# Stop on error if we can't set up the user
|
exit $BUILD_EXIT_CODE
|
||||||
set -e
|
|
||||||
|
|
||||||
# Get host user/group info so we create files with the correct ownership
|
|
||||||
USERNAME=$(stat -c '%U' "$fullProjectPath")
|
|
||||||
USERID=$(stat -c '%u' "$fullProjectPath")
|
|
||||||
GROUPNAME=$(stat -c '%G' "$fullProjectPath")
|
|
||||||
GROUPID=$(stat -c '%g' "$fullProjectPath")
|
|
||||||
|
|
||||||
groupadd -g $GROUPID $GROUPNAME
|
|
||||||
useradd -u $USERID -g $GROUPID $USERNAME
|
|
||||||
usermod -aG $GROUPNAME $USERNAME
|
|
||||||
mkdir -p "/home/$USERNAME"
|
|
||||||
chown $USERNAME:$GROUPNAME "/home/$USERNAME"
|
|
||||||
|
|
||||||
# Normally need root permissions to access when using su
|
|
||||||
chmod 777 /dev/stdout
|
|
||||||
chmod 777 /dev/stderr
|
|
||||||
|
|
||||||
# Don't stop on error when running our scripts as error handling is baked in
|
|
||||||
set +e
|
|
||||||
|
|
||||||
# Switch to the host user so we can create files with the correct ownership
|
|
||||||
su $USERNAME -c "$SHELL -c 'source /steps/runsteps.sh'"
|
|
||||||
else
|
|
||||||
echo "Running as root"
|
|
||||||
|
|
||||||
# Run as root
|
|
||||||
source /steps/runsteps.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit $?
|
|
||||||
|
127
dist/platforms/ubuntu/steps/activate.sh
vendored
Executable file → Normal file
127
dist/platforms/ubuntu/steps/activate.sh
vendored
Executable file → Normal file
@ -1,81 +1,79 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# if blankproject folder doesn't exist create it
|
# Run in ACTIVATE_LICENSE_PATH directory
|
||||||
if [ ! -d "/BlankProject" ]; then
|
echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory."
|
||||||
mkdir /BlankProject
|
pushd "$ACTIVATE_LICENSE_PATH"
|
||||||
fi
|
|
||||||
# if blankproject folder doesn't exist create it
|
|
||||||
if [ ! -d "/BlankProject/Assets" ]; then
|
|
||||||
mkdir /BlankProject/Assets
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$UNITY_SERIAL" && -n "$UNITY_EMAIL" && -n "$UNITY_PASSWORD" ]]; then
|
if [[ -n "$UNITY_LICENSE" ]] || [[ -n "$UNITY_LICENSE_FILE" ]]; then
|
||||||
#
|
#
|
||||||
# SERIAL LICENSE MODE
|
# PERSONAL LICENSE MODE
|
||||||
#
|
#
|
||||||
# This will activate unity, using the serial activation process.
|
# This will activate Unity, using a license file
|
||||||
#
|
#
|
||||||
echo "Requesting activation"
|
# Note that this is the ONLY WAY for PERSONAL LICENSES in 2020.
|
||||||
|
# * See for more details: https://gitlab.com/gableroux/unity3d-gitlab-ci-example/issues/5#note_72815478
|
||||||
|
#
|
||||||
|
# The license file can be acquired using `webbertakken/request-manual-activation-file` action.
|
||||||
|
echo "Requesting activation (personal license)"
|
||||||
|
|
||||||
# Loop the unity-editor call until the license is activated with exponential backoff and a maximum of 5 retries
|
# Set the license file path
|
||||||
retry_count=0
|
FILE_PATH=UnityLicenseFile.ulf
|
||||||
|
|
||||||
# Initialize delay to 15 seconds
|
if [[ -n "$UNITY_LICENSE" ]]; then
|
||||||
delay=15
|
# Copy license file from Github variables
|
||||||
|
echo "$UNITY_LICENSE" | tr -d '\r' > $FILE_PATH
|
||||||
|
elif [[ -n "$UNITY_LICENSE_FILE" ]]; then
|
||||||
|
# Copy license file from file system
|
||||||
|
cat "$UNITY_LICENSE_FILE" | tr -d '\r' > $FILE_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Activate license
|
||||||
|
ACTIVATION_OUTPUT=$(unity-editor \
|
||||||
|
-logFile /dev/stdout \
|
||||||
|
-quit \
|
||||||
|
-manualLicenseFile $FILE_PATH)
|
||||||
|
|
||||||
|
# Store the exit code from the verify command
|
||||||
|
UNITY_EXIT_CODE=$?
|
||||||
|
|
||||||
|
# The exit code for personal activation is always 1;
|
||||||
|
# Determine whether activation was successful.
|
||||||
|
#
|
||||||
|
# Successful output should include the following:
|
||||||
|
#
|
||||||
|
# "LICENSE SYSTEM [2020120 18:51:20] Next license update check is after 2019-11-25T18:23:38"
|
||||||
|
#
|
||||||
|
ACTIVATION_SUCCESSFUL=$(echo $ACTIVATION_OUTPUT | grep 'Next license update check is after' | wc -l)
|
||||||
|
|
||||||
|
# Set exit code to 0 if activation was successful
|
||||||
|
if [[ $ACTIVATION_SUCCESSFUL -eq 1 ]]; then
|
||||||
|
UNITY_EXIT_CODE=0
|
||||||
|
fi;
|
||||||
|
|
||||||
|
# Remove license file
|
||||||
|
rm -f $FILE_PATH
|
||||||
|
|
||||||
|
elif [[ -n "$UNITY_SERIAL" && -n "$UNITY_EMAIL" && -n "$UNITY_PASSWORD" ]]; then
|
||||||
|
#
|
||||||
|
# PROFESSIONAL (SERIAL) LICENSE MODE
|
||||||
|
#
|
||||||
|
# This will activate unity, using the activating process.
|
||||||
|
#
|
||||||
|
# Note: This is the preferred way for PROFESSIONAL LICENSES.
|
||||||
|
#
|
||||||
|
echo "Requesting activation (professional license)"
|
||||||
|
|
||||||
# Loop until UNITY_EXIT_CODE is 0 or retry count reaches 5
|
|
||||||
while [[ $retry_count -lt 5 ]]
|
|
||||||
do
|
|
||||||
# Activate license
|
# Activate license
|
||||||
unity-editor \
|
unity-editor \
|
||||||
-logFile /dev/stdout \
|
-logFile /dev/stdout \
|
||||||
-quit \
|
-quit \
|
||||||
-serial "$UNITY_SERIAL" \
|
-serial "$UNITY_SERIAL" \
|
||||||
-username "$UNITY_EMAIL" \
|
-username "$UNITY_EMAIL" \
|
||||||
-password "$UNITY_PASSWORD" \
|
-password "$UNITY_PASSWORD"
|
||||||
-projectPath "/BlankProject"
|
|
||||||
|
|
||||||
# Store the exit code from the verify command
|
# Store the exit code from the verify command
|
||||||
UNITY_EXIT_CODE=$?
|
UNITY_EXIT_CODE=$?
|
||||||
|
|
||||||
# Check if UNITY_EXIT_CODE is 0
|
|
||||||
if [[ $UNITY_EXIT_CODE -eq 0 ]]
|
|
||||||
then
|
|
||||||
echo "Activation successful"
|
|
||||||
break
|
|
||||||
else
|
|
||||||
# Increment retry count
|
|
||||||
((retry_count++))
|
|
||||||
|
|
||||||
echo "::warning ::Activation failed, attempting retry #$retry_count"
|
|
||||||
echo "Activation failed, retrying in $delay seconds..."
|
|
||||||
sleep $delay
|
|
||||||
|
|
||||||
# Double the delay for the next iteration
|
|
||||||
delay=$((delay * 2))
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ $retry_count -eq 5 ]]
|
|
||||||
then
|
|
||||||
echo "Activation failed after 5 retries"
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif [[ -n "$UNITY_LICENSING_SERVER" ]]; then
|
|
||||||
#
|
|
||||||
# Custom Unity License Server
|
|
||||||
#
|
|
||||||
echo "Adding licensing server config"
|
|
||||||
|
|
||||||
/opt/unity/Editor/Data/Resources/Licensing/Client/Unity.Licensing.Client --acquire-floating > license.txt #is this accessible in a env variable?
|
|
||||||
PARSEDFILE=$(grep -oP '\".*?\"' < license.txt | tr -d '"')
|
|
||||||
export FLOATING_LICENSE
|
|
||||||
FLOATING_LICENSE=$(sed -n 2p <<< "$PARSEDFILE")
|
|
||||||
FLOATING_LICENSE_TIMEOUT=$(sed -n 4p <<< "$PARSEDFILE")
|
|
||||||
|
|
||||||
echo "Acquired floating license: \"$FLOATING_LICENSE\" with timeout $FLOATING_LICENSE_TIMEOUT"
|
|
||||||
# Store the exit code from the verify command
|
|
||||||
UNITY_EXIT_CODE=$?
|
|
||||||
else
|
else
|
||||||
#
|
#
|
||||||
# NO LICENSE ACTIVATION STRATEGY MATCHED
|
# NO LICENSE ACTIVATION STRATEGY MATCHED
|
||||||
@ -84,13 +82,10 @@ else
|
|||||||
#
|
#
|
||||||
echo "License activation strategy could not be determined."
|
echo "License activation strategy could not be determined."
|
||||||
echo ""
|
echo ""
|
||||||
echo "Visit https://game.ci/docs/github/activation for more"
|
echo "Visit https://game.ci/docs/github/getting-started for more"
|
||||||
echo "details on how to set up one of the possible activation strategies."
|
echo "details on how to set up one of the possible activation strategies."
|
||||||
|
|
||||||
echo "::error ::No valid license activation strategy could be determined. Make sure to provide UNITY_EMAIL, UNITY_PASSWORD, and either a UNITY_SERIAL \
|
# Immediately exit as no UNITY_EXIT_CODE can be derrived.
|
||||||
or UNITY_LICENSE. Otherwise please use UNITY_LICENSING_SERVER. See more info at https://game.ci/docs/github/activation"
|
|
||||||
|
|
||||||
# Immediately exit as no UNITY_EXIT_CODE can be derived.
|
|
||||||
exit 1;
|
exit 1;
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -105,6 +100,8 @@ else
|
|||||||
# Activation failed so exit with the code from the license verification step
|
# Activation failed so exit with the code from the license verification step
|
||||||
echo "Unclassified error occured while trying to activate license."
|
echo "Unclassified error occured while trying to activate license."
|
||||||
echo "Exit code was: $UNITY_EXIT_CODE"
|
echo "Exit code was: $UNITY_EXIT_CODE"
|
||||||
echo "::error ::There was an error while trying to activate the Unity license."
|
|
||||||
exit $UNITY_EXIT_CODE
|
exit $UNITY_EXIT_CODE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Return to previous working directory
|
||||||
|
popd
|
||||||
|
43
dist/platforms/ubuntu/steps/build.sh
vendored
Executable file → Normal file
43
dist/platforms/ubuntu/steps/build.sh
vendored
Executable file → Normal file
@ -19,22 +19,6 @@ echo "Using build name \"$BUILD_NAME\"."
|
|||||||
|
|
||||||
echo "Using build target \"$BUILD_TARGET\"."
|
echo "Using build target \"$BUILD_TARGET\"."
|
||||||
|
|
||||||
#
|
|
||||||
# Display the build profile
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ -z "$BUILD_PROFILE" ]; then
|
|
||||||
# User has not provided a build profile
|
|
||||||
#
|
|
||||||
echo "Doing a default \"$BUILD_TARGET\" platform build."
|
|
||||||
#
|
|
||||||
else
|
|
||||||
# User has provided a path to a build profile `.asset` file
|
|
||||||
#
|
|
||||||
echo "Using build profile \"$BUILD_PROFILE\" relative to \"$UNITY_PROJECT_PATH\"."
|
|
||||||
#
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Display build path and file
|
# Display build path and file
|
||||||
#
|
#
|
||||||
@ -78,6 +62,27 @@ else
|
|||||||
#
|
#
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Prepare Android keystore and SDK, if needed
|
||||||
|
#
|
||||||
|
|
||||||
|
if [[ "$BUILD_TARGET" == "Android" && -n "$ANDROID_KEYSTORE_NAME" && -n "$ANDROID_KEYSTORE_BASE64" ]]; then
|
||||||
|
echo "Creating Android keystore."
|
||||||
|
echo "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$UNITY_PROJECT_PATH/$ANDROID_KEYSTORE_NAME"
|
||||||
|
echo "Created Android keystore."
|
||||||
|
else
|
||||||
|
echo "Not creating Android keystore."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$BUILD_TARGET" == "Android" && -n "$ANDROID_SDK_MANAGER_PARAMETERS" ]]; then
|
||||||
|
echo "Updating Android SDK with parameters: $ANDROID_SDK_MANAGER_PARAMETERS"
|
||||||
|
export JAVA_HOME="$(awk -F'=' '/JAVA_HOME=/{print $2}' /usr/bin/unity-editor.d/*)"
|
||||||
|
"$(awk -F'=' '/ANDROID_HOME=/{print $2}' /usr/bin/unity-editor.d/*)/tools/bin/sdkmanager" "$ANDROID_SDK_MANAGER_PARAMETERS"
|
||||||
|
echo "Updated Android SDK."
|
||||||
|
else
|
||||||
|
echo "Not updating Android SDK."
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Pre-build debug information
|
# Pre-build debug information
|
||||||
#
|
#
|
||||||
@ -122,13 +127,12 @@ echo ""
|
|||||||
|
|
||||||
unity-editor \
|
unity-editor \
|
||||||
-logfile /dev/stdout \
|
-logfile /dev/stdout \
|
||||||
$( [ "${MANUAL_EXIT}" == "true" ] || echo "-quit" ) \
|
-quit \
|
||||||
-customBuildName "$BUILD_NAME" \
|
-customBuildName "$BUILD_NAME" \
|
||||||
-projectPath "$UNITY_PROJECT_PATH" \
|
-projectPath "$UNITY_PROJECT_PATH" \
|
||||||
-buildTarget "$BUILD_TARGET" \
|
-buildTarget "$BUILD_TARGET" \
|
||||||
-customBuildTarget "$BUILD_TARGET" \
|
-customBuildTarget "$BUILD_TARGET" \
|
||||||
-customBuildPath "$CUSTOM_BUILD_PATH" \
|
-customBuildPath "$CUSTOM_BUILD_PATH" \
|
||||||
-customBuildProfile "$BUILD_PROFILE" \
|
|
||||||
-executeMethod "$BUILD_METHOD" \
|
-executeMethod "$BUILD_METHOD" \
|
||||||
-buildVersion "$VERSION" \
|
-buildVersion "$VERSION" \
|
||||||
-androidVersionCode "$ANDROID_VERSION_CODE" \
|
-androidVersionCode "$ANDROID_VERSION_CODE" \
|
||||||
@ -137,8 +141,6 @@ unity-editor \
|
|||||||
-androidKeyaliasName "$ANDROID_KEYALIAS_NAME" \
|
-androidKeyaliasName "$ANDROID_KEYALIAS_NAME" \
|
||||||
-androidKeyaliasPass "$ANDROID_KEYALIAS_PASS" \
|
-androidKeyaliasPass "$ANDROID_KEYALIAS_PASS" \
|
||||||
-androidTargetSdkVersion "$ANDROID_TARGET_SDK_VERSION" \
|
-androidTargetSdkVersion "$ANDROID_TARGET_SDK_VERSION" \
|
||||||
-androidExportType "$ANDROID_EXPORT_TYPE" \
|
|
||||||
-androidSymbolType "$ANDROID_SYMBOL_TYPE" \
|
|
||||||
$CUSTOM_PARAMETERS
|
$CUSTOM_PARAMETERS
|
||||||
|
|
||||||
# Catch exit code
|
# Catch exit code
|
||||||
@ -157,7 +159,6 @@ fi
|
|||||||
|
|
||||||
# Make a given user owner of all artifacts
|
# Make a given user owner of all artifacts
|
||||||
if [[ -n "$CHOWN_FILES_TO" ]]; then
|
if [[ -n "$CHOWN_FILES_TO" ]]; then
|
||||||
echo "Changing ownership of files to $CHOWN_FILES_TO for $BUILD_PATH_FULL and $UNITY_PROJECT_PATH"
|
|
||||||
chown -R "$CHOWN_FILES_TO" "$BUILD_PATH_FULL"
|
chown -R "$CHOWN_FILES_TO" "$BUILD_PATH_FULL"
|
||||||
chown -R "$CHOWN_FILES_TO" "$UNITY_PROJECT_PATH"
|
chown -R "$CHOWN_FILES_TO" "$UNITY_PROJECT_PATH"
|
||||||
fi
|
fi
|
||||||
|
22
dist/platforms/ubuntu/steps/return_license.sh
vendored
Executable file → Normal file
22
dist/platforms/ubuntu/steps/return_license.sh
vendored
Executable file → Normal file
@ -1,22 +1,20 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
if [[ -n "$UNITY_LICENSING_SERVER" ]]; then
|
# Run in ACTIVATE_LICENSE_PATH directory
|
||||||
|
echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory."
|
||||||
|
pushd "$ACTIVATE_LICENSE_PATH"
|
||||||
|
|
||||||
|
if [[ -n "$UNITY_SERIAL" ]]; then
|
||||||
#
|
#
|
||||||
# Return any floating license used.
|
# PROFESSIONAL (SERIAL) LICENSE MODE
|
||||||
#
|
|
||||||
echo "Returning floating license: \"$FLOATING_LICENSE\""
|
|
||||||
/opt/unity/Editor/Data/Resources/Licensing/Client/Unity.Licensing.Client --return-floating "$FLOATING_LICENSE"
|
|
||||||
elif [[ -n "$UNITY_SERIAL" ]]; then
|
|
||||||
#
|
|
||||||
# SERIAL LICENSE MODE
|
|
||||||
#
|
#
|
||||||
# This will return the license that is currently in use.
|
# This will return the license that is currently in use.
|
||||||
#
|
#
|
||||||
unity-editor \
|
unity-editor \
|
||||||
-logFile /dev/stdout \
|
-logFile /dev/stdout \
|
||||||
-quit \
|
-quit \
|
||||||
-returnlicense \
|
-returnlicense
|
||||||
-username "$UNITY_EMAIL" \
|
|
||||||
-password "$UNITY_PASSWORD" \
|
|
||||||
-projectPath "/BlankProject"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Return to previous working directory
|
||||||
|
popd
|
||||||
|
48
dist/platforms/ubuntu/steps/runsteps.sh
vendored
48
dist/platforms/ubuntu/steps/runsteps.sh
vendored
@ -1,48 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
#
|
|
||||||
# Run steps
|
|
||||||
#
|
|
||||||
source /steps/set_extra_git_configs.sh
|
|
||||||
source /steps/set_gitcredential.sh
|
|
||||||
|
|
||||||
if [ "$SKIP_ACTIVATION" != "true" ]; then
|
|
||||||
source /steps/activate.sh
|
|
||||||
|
|
||||||
# If we didn't activate successfully, exit with the exit code from the activation step.
|
|
||||||
if [[ $UNITY_EXIT_CODE -ne 0 ]]; then
|
|
||||||
exit $UNITY_EXIT_CODE
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Skipping activation"
|
|
||||||
fi
|
|
||||||
|
|
||||||
source /steps/build.sh
|
|
||||||
|
|
||||||
if [ "$SKIP_ACTIVATION" != "true" ]; then
|
|
||||||
source /steps/return_license.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Instructions for debugging
|
|
||||||
#
|
|
||||||
|
|
||||||
if [[ $BUILD_EXIT_CODE -gt 0 ]]; then
|
|
||||||
echo ""
|
|
||||||
echo "###########################"
|
|
||||||
echo "# Failure #"
|
|
||||||
echo "###########################"
|
|
||||||
echo ""
|
|
||||||
echo "Please note that the exit code is not very descriptive."
|
|
||||||
echo "Most likely it will not help you solve the issue."
|
|
||||||
echo ""
|
|
||||||
echo "To find the reason for failure: please search for errors in the log above and check for annotations in the summary view."
|
|
||||||
echo ""
|
|
||||||
fi;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Exit with code from the build step.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Exiting su
|
|
||||||
exit $BUILD_EXIT_CODE
|
|
@ -1,29 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if [ -z "${GIT_CONFIG_EXTENSIONS}" ]
|
|
||||||
then
|
|
||||||
echo "GIT_CONFIG_EXTENSIONS unset skipping"
|
|
||||||
else
|
|
||||||
echo "GIT_CONFIG_EXTENSIONS is set configuring extra git configs"
|
|
||||||
|
|
||||||
IFS=$'\n'
|
|
||||||
for config in $(echo "${GIT_CONFIG_EXTENSIONS}" | sed 's/\(.*\)=\(.*\)/"\1" "\2"/g'); do
|
|
||||||
if [[ $config =~ \"([^\"]+)\"\ \"([^\"]+)\" ]]; then
|
|
||||||
key="${BASH_REMATCH[1]}"
|
|
||||||
value="${BASH_REMATCH[2]}"
|
|
||||||
else
|
|
||||||
echo "Error parsing config: $config"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "Adding extra git config: \"$key\" = \"$value\""
|
|
||||||
git config --global --add "$key" "$value"
|
|
||||||
done
|
|
||||||
unset IFS
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "---------- git config --list -------------"
|
|
||||||
git config --list
|
|
||||||
|
|
||||||
echo "---------- git config --list --show-origin -------------"
|
|
||||||
git config --list --show-origin
|
|
6
dist/platforms/ubuntu/steps/set_gitcredential.sh
vendored
Executable file → Normal file
6
dist/platforms/ubuntu/steps/set_gitcredential.sh
vendored
Executable file → Normal file
@ -7,10 +7,10 @@ else
|
|||||||
echo "GIT_PRIVATE_TOKEN is set configuring git credentials"
|
echo "GIT_PRIVATE_TOKEN is set configuring git credentials"
|
||||||
|
|
||||||
git config --global credential.helper store
|
git config --global credential.helper store
|
||||||
git config --global --replace-all url."https://token:$GIT_PRIVATE_TOKEN@github.com/".insteadOf ssh://git@github.com/
|
git config --global --replace-all url.https://github.com/.insteadOf ssh://git@github.com/
|
||||||
git config --global --add url."https://token:$GIT_PRIVATE_TOKEN@github.com/".insteadOf git@github.com
|
git config --global --add url.https://github.com/.insteadOf git@github.com
|
||||||
git config --global --add url."https://token:$GIT_PRIVATE_TOKEN@github.com/".insteadOf "https://github.com/"
|
|
||||||
|
|
||||||
|
git config --global url."https://token:$GIT_PRIVATE_TOKEN@github.com/".insteadOf "https://github.com/"
|
||||||
git config --global url."https://ssh:$GIT_PRIVATE_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
|
git config --global url."https://ssh:$GIT_PRIVATE_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
|
||||||
git config --global url."https://git:$GIT_PRIVATE_TOKEN@github.com/".insteadOf "git@github.com:"
|
git config --global url."https://git:$GIT_PRIVATE_TOKEN@github.com/".insteadOf "git@github.com:"
|
||||||
|
|
||||||
|
18
dist/platforms/windows/Dockerfile
vendored
Normal file
18
dist/platforms/windows/Dockerfile
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
ARG IMAGE
|
||||||
|
FROM $IMAGE
|
||||||
|
|
||||||
|
LABEL "com.github.actions.name"="Unity - Builder"
|
||||||
|
LABEL "com.github.actions.description"="Build Unity projects for different platforms."
|
||||||
|
LABEL "com.github.actions.icon"="box"
|
||||||
|
LABEL "com.github.actions.color"="gray-dark"
|
||||||
|
|
||||||
|
LABEL "repository"="http://github.com/game-ci/unity-actions"
|
||||||
|
LABEL "homepage"="http://github.com/game-ci/unity-actions"
|
||||||
|
LABEL "maintainer"="Webber Takken <webber@takken.io>"
|
||||||
|
|
||||||
|
COPY default-build-script c:/UnityBuilderAction
|
||||||
|
COPY platforms/windows/steps c:/steps
|
||||||
|
COPY platforms/windows/entrypoint.ps1 c:/entrypoint.ps1
|
||||||
|
RUN dir
|
||||||
|
|
||||||
|
ENTRYPOINT ["powershell", "c:/entrypoint.ps1"]
|
93
dist/platforms/windows/activate.ps1
vendored
93
dist/platforms/windows/activate.ps1
vendored
@ -1,93 +0,0 @@
|
|||||||
# Activates Unity
|
|
||||||
|
|
||||||
Write-Output ""
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output "# Activating #"
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output ""
|
|
||||||
|
|
||||||
if ( ($null -ne ${env:UNITY_SERIAL}) -and ($null -ne ${env:UNITY_EMAIL}) -and ($null -ne ${env:UNITY_PASSWORD}) )
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# SERIAL LICENSE MODE
|
|
||||||
#
|
|
||||||
# This will activate unity, using the serial activation process.
|
|
||||||
#
|
|
||||||
Write-Output "Requesting activation"
|
|
||||||
|
|
||||||
$ACTIVATION_OUTPUT = Start-Process -FilePath "$Env:UNITY_PATH/Editor/Unity.exe" `
|
|
||||||
-NoNewWindow `
|
|
||||||
-PassThru `
|
|
||||||
-ArgumentList "-batchmode `
|
|
||||||
-quit `
|
|
||||||
-nographics `
|
|
||||||
-username $Env:UNITY_EMAIL `
|
|
||||||
-password $Env:UNITY_PASSWORD `
|
|
||||||
-serial $Env:UNITY_SERIAL `
|
|
||||||
-projectPath c:/BlankProject `
|
|
||||||
-logfile -"
|
|
||||||
|
|
||||||
# Cache the handle so exit code works properly
|
|
||||||
# https://stackoverflow.com/questions/10262231/obtaining-exitcode-using-start-process-and-waitforexit-instead-of-wait
|
|
||||||
$unityHandle = $ACTIVATION_OUTPUT.Handle
|
|
||||||
|
|
||||||
while ($true) {
|
|
||||||
if ($ACTIVATION_OUTPUT.HasExited) {
|
|
||||||
$ACTIVATION_EXIT_CODE = $ACTIVATION_OUTPUT.ExitCode
|
|
||||||
|
|
||||||
# Display results
|
|
||||||
if ($ACTIVATION_EXIT_CODE -eq 0)
|
|
||||||
{
|
|
||||||
Write-Output "Activation Succeeded"
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
Write-Output "Activation failed, with exit code $ACTIVATION_EXIT_CODE"
|
|
||||||
}
|
|
||||||
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
Start-Sleep -Seconds 3
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif( ($null -ne ${env:UNITY_LICENSING_SERVER}))
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# Custom Unity License Server
|
|
||||||
#
|
|
||||||
|
|
||||||
Write-Output "Adding licensing server config"
|
|
||||||
|
|
||||||
$ACTIVATION_OUTPUT = Start-Process -FilePath "$Env:UNITY_PATH\Editor\Data\Resources\Licensing\Client\Unity.Licensing.Client.exe" `
|
|
||||||
-ArgumentList "--acquire-floating" `
|
|
||||||
-NoNewWindow `
|
|
||||||
-PassThru `
|
|
||||||
-Wait `
|
|
||||||
-RedirectStandardOutput "license.txt"
|
|
||||||
|
|
||||||
$PARSEDFILE = (Get-Content "license.txt" | Select-String -AllMatches -Pattern '\".*?\"' | ForEach-Object { $_.Matches.Value }) -replace '"'
|
|
||||||
|
|
||||||
$env:FLOATING_LICENSE = $PARSEDFILE[1]
|
|
||||||
$FLOATING_LICENSE_TIMEOUT = $PARSEDFILE[3]
|
|
||||||
|
|
||||||
Write-Output "Acquired floating license: ""$env:FLOATING_LICENSE"" with timeout $FLOATING_LICENSE_TIMEOUT"
|
|
||||||
# Store the exit code from the verify command
|
|
||||||
$ACTIVATION_EXIT_CODE = $ACTIVATION_OUTPUT.ExitCode
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# NO LICENSE ACTIVATION STRATEGY MATCHED
|
|
||||||
#
|
|
||||||
# This will exit since no activation strategies could be matched.
|
|
||||||
#
|
|
||||||
Write-Output "License activation strategy could not be determined."
|
|
||||||
Write-Output ""
|
|
||||||
Write-Output "Visit https://game.ci/docs/github/activation for more"
|
|
||||||
Write-Output "details on how to set up one of the possible activation strategies."
|
|
||||||
|
|
||||||
Write-Output "::error ::No valid license activation strategy could be determined. Make sure to provide UNITY_EMAIL, UNITY_PASSWORD, and either a UNITY_SERIAL \
|
|
||||||
or UNITY_LICENSE. See more info at https://game.ci/docs/github/activation"
|
|
||||||
|
|
||||||
$ACTIVATION_EXIT_CODE = 1;
|
|
||||||
}
|
|
225
dist/platforms/windows/build.ps1
vendored
225
dist/platforms/windows/build.ps1
vendored
@ -1,225 +0,0 @@
|
|||||||
#
|
|
||||||
# Set project path
|
|
||||||
#
|
|
||||||
$Env:UNITY_PROJECT_PATH="$Env:GITHUB_WORKSPACE\$Env:PROJECT_PATH"
|
|
||||||
Write-Output "$('Using project path "')$($Env:UNITY_PROJECT_PATH)$('".')"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display the name for the build, doubles as the output name
|
|
||||||
#
|
|
||||||
|
|
||||||
Write-Output "$('Using build name "')$($Env:BUILD_NAME)$('".')"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display the build's target platform;
|
|
||||||
#
|
|
||||||
|
|
||||||
Write-Output "$('Using build target "')$($Env:BUILD_TARGET)$('".')"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display the build profile
|
|
||||||
#
|
|
||||||
|
|
||||||
if ($Env:BUILD_PROFILE)
|
|
||||||
{
|
|
||||||
# User has provided a path to a build profile `.asset` file
|
|
||||||
#
|
|
||||||
Write-Output "$('Using build profile "')$($Env:BUILD_PROFILE)$('" relative to "')$($Env:UNITY_PROJECT_PATH)$('".')"
|
|
||||||
#
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
# User has not provided a build profile
|
|
||||||
#
|
|
||||||
Write-Output "$('Doing a default "')$($Env:BUILD_TARGET)$('" platform build.')"
|
|
||||||
#
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display build path and file
|
|
||||||
#
|
|
||||||
|
|
||||||
Write-Output "$('Using build path "')$($Env:BUILD_PATH)$('" to save file "')$($Env:BUILD_FILE)$('".')"
|
|
||||||
$Env:BUILD_PATH_FULL="$Env:GITHUB_WORKSPACE\$Env:BUILD_PATH"
|
|
||||||
$Env:CUSTOM_BUILD_PATH="$Env:BUILD_PATH_FULL\$Env:BUILD_FILE"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set the build method, must reference one of:
|
|
||||||
#
|
|
||||||
# - <NamespaceName.ClassName.MethodName>
|
|
||||||
# - <ClassName.MethodName>
|
|
||||||
#
|
|
||||||
# For example: `BuildCommand.PerformBuild`
|
|
||||||
#
|
|
||||||
# The method must be declared static and placed in project/Assets/Editor
|
|
||||||
#
|
|
||||||
if ($Env:BUILD_METHOD)
|
|
||||||
{
|
|
||||||
# User has provided their own build method.
|
|
||||||
# Assume they also bring their own script.
|
|
||||||
Write-Output "$('Using build method "')$($Env:BUILD_METHOD)$('".')"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
# User has not provided their own build command.
|
|
||||||
#
|
|
||||||
# Use the script from this action which builds the scenes that are enabled in
|
|
||||||
# the project.
|
|
||||||
#
|
|
||||||
Write-Output "Using built-in build method."
|
|
||||||
|
|
||||||
# Create Editor directory if it does not exist
|
|
||||||
if(-Not (Test-Path -Path $Env:UNITY_PROJECT_PATH\Assets\Editor))
|
|
||||||
{
|
|
||||||
# We use -Force to suppress output, doesn't overwrite anything
|
|
||||||
New-Item -ItemType Directory -Force -Path $Env:UNITY_PROJECT_PATH\Assets\Editor
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copy the build script of Unity Builder action
|
|
||||||
Copy-Item -Path "c:\UnityBuilderAction" -Destination $Env:UNITY_PROJECT_PATH\Assets\Editor -Recurse
|
|
||||||
|
|
||||||
# Set the Build method to that of UnityBuilder Action
|
|
||||||
$Env:BUILD_METHOD="UnityBuilderAction.Builder.BuildProject"
|
|
||||||
|
|
||||||
# Verify recursive paths
|
|
||||||
Get-ChildItem -Path $Env:UNITY_PROJECT_PATH\Assets\Editor -Recurse
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( "$Env:BUILD_TARGET" -eq "Android" -and -not ([string]::IsNullOrEmpty("$Env:ANDROID_KEYSTORE_BASE64")) )
|
|
||||||
{
|
|
||||||
Write-Output "Creating Android keystore."
|
|
||||||
|
|
||||||
# Write to consistent location as Windows Unity seems to have issues with pwd and can't find the keystore
|
|
||||||
$keystorePath = "C:/android.keystore"
|
|
||||||
[System.IO.File]::WriteAllBytes($keystorePath, [System.Convert]::FromBase64String($Env:ANDROID_KEYSTORE_BASE64))
|
|
||||||
|
|
||||||
# Ensure the project settings are pointed at the correct path
|
|
||||||
$unitySettingsPath = "$Env:UNITY_PROJECT_PATH\ProjectSettings\ProjectSettings.asset"
|
|
||||||
$fileContent = Get-Content -Path "$unitySettingsPath"
|
|
||||||
$fileContent = $fileContent -replace "AndroidKeystoreName:\s+.*", "AndroidKeystoreName: $keystorePath"
|
|
||||||
$fileContent | Set-Content -Path "$unitySettingsPath"
|
|
||||||
|
|
||||||
Write-Output "Created Android keystore."
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Output "Not creating Android keystore."
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Pre-build debug information
|
|
||||||
#
|
|
||||||
|
|
||||||
Write-Output ""
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output "# Custom parameters #"
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output ""
|
|
||||||
|
|
||||||
Write-Output "$('"')$($Env:CUSTOM_PARAMETERS)$('"')"
|
|
||||||
|
|
||||||
Write-Output ""
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output "# Current build dir #"
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output ""
|
|
||||||
|
|
||||||
Write-Output "$('Creating "')$($Env:BUILD_PATH_FULL)$('" if it does not exist.')"
|
|
||||||
if (-Not (Test-Path -Path $Env:BUILD_PATH_FULL))
|
|
||||||
{
|
|
||||||
mkdir "$Env:BUILD_PATH_FULL"
|
|
||||||
}
|
|
||||||
Get-ChildItem $Env:BUILD_PATH_FULL
|
|
||||||
|
|
||||||
Write-Output ""
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output "# Project directory #"
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output ""
|
|
||||||
|
|
||||||
Get-ChildItem $Env:UNITY_PROJECT_PATH
|
|
||||||
|
|
||||||
#
|
|
||||||
# Build
|
|
||||||
#
|
|
||||||
|
|
||||||
Write-Output ""
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output "# Building project #"
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output ""
|
|
||||||
|
|
||||||
$unityGraphics = "-nographics"
|
|
||||||
|
|
||||||
if ($LLVMPIPE_INSTALLED -eq "true")
|
|
||||||
{
|
|
||||||
$unityGraphics = "-force-opengl"
|
|
||||||
}
|
|
||||||
|
|
||||||
# If $Env:CUSTOM_PARAMETERS contains spaces and is passed directly on the command line to Unity, powershell will wrap it
|
|
||||||
# in double quotes. To avoid this, parse $Env:CUSTOM_PARAMETERS into an array, while respecting any quotations within the string.
|
|
||||||
$_, $customParametersArray = Invoke-Expression('Write-Output -- "" ' + $Env:CUSTOM_PARAMETERS)
|
|
||||||
$unityArgs = @(
|
|
||||||
"-quit",
|
|
||||||
"-batchmode",
|
|
||||||
$unityGraphics,
|
|
||||||
"-silent-crashes",
|
|
||||||
"-customBuildName", "`"$Env:BUILD_NAME`"",
|
|
||||||
"-projectPath", "`"$Env:UNITY_PROJECT_PATH`"",
|
|
||||||
"-executeMethod", "`"$Env:BUILD_METHOD`"",
|
|
||||||
"-buildTarget", "`"$Env:BUILD_TARGET`"",
|
|
||||||
"-customBuildTarget", "`"$Env:BUILD_TARGET`"",
|
|
||||||
"-customBuildPath", "`"$Env:CUSTOM_BUILD_PATH`"",
|
|
||||||
"-customBuildProfile", "`"$Env:BUILD_PROFILE`"",
|
|
||||||
"-buildVersion", "`"$Env:VERSION`"",
|
|
||||||
"-androidVersionCode", "`"$Env:ANDROID_VERSION_CODE`"",
|
|
||||||
"-androidKeystorePass", "`"$Env:ANDROID_KEYSTORE_PASS`"",
|
|
||||||
"-androidKeyaliasName", "`"$Env:ANDROID_KEYALIAS_NAME`"",
|
|
||||||
"-androidKeyaliasPass", "`"$Env:ANDROID_KEYALIAS_PASS`"",
|
|
||||||
"-androidTargetSdkVersion", "`"$Env:ANDROID_TARGET_SDK_VERSION`"",
|
|
||||||
"-androidExportType", "`"$Env:ANDROID_EXPORT_TYPE`"",
|
|
||||||
"-androidSymbolType", "`"$Env:ANDROID_SYMBOL_TYPE`"",
|
|
||||||
"-logfile", "-"
|
|
||||||
) + $customParametersArray
|
|
||||||
|
|
||||||
# Remove null items as that will fail the Start-Process call
|
|
||||||
$unityArgs = $unityArgs | Where-Object { $_ -ne $null }
|
|
||||||
|
|
||||||
$unityProcess = Start-Process -FilePath "$Env:UNITY_PATH/Editor/Unity.exe" `
|
|
||||||
-ArgumentList $unityArgs `
|
|
||||||
-PassThru `
|
|
||||||
-NoNewWindow
|
|
||||||
|
|
||||||
# Cache the handle so exit code works properly
|
|
||||||
# https://stackoverflow.com/questions/10262231/obtaining-exitcode-using-start-process-and-waitforexit-instead-of-wait
|
|
||||||
$unityHandle = $unityProcess.Handle
|
|
||||||
|
|
||||||
while ($true) {
|
|
||||||
if ($unityProcess.HasExited) {
|
|
||||||
Start-Sleep -Seconds 3
|
|
||||||
Get-Process
|
|
||||||
|
|
||||||
$BUILD_EXIT_CODE = $unityProcess.ExitCode
|
|
||||||
|
|
||||||
# Display results
|
|
||||||
if ($BUILD_EXIT_CODE -eq 0)
|
|
||||||
{
|
|
||||||
Write-Output "Build Succeeded!!"
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
Write-Output "Build failed, with exit code $BUILD_EXIT_CODE"
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Output ""
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output "# Build output #"
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output ""
|
|
||||||
|
|
||||||
Get-ChildItem $Env:BUILD_PATH_FULL
|
|
||||||
Write-Output ""
|
|
||||||
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
Start-Sleep -Seconds 3
|
|
||||||
}
|
|
47
dist/platforms/windows/entrypoint.ps1
vendored
47
dist/platforms/windows/entrypoint.ps1
vendored
@ -1,52 +1,15 @@
|
|||||||
Get-Process
|
# Activate Unity
|
||||||
|
& "c:\steps\activate.ps1"
|
||||||
# Copy .upmconfig.toml if it exists
|
|
||||||
if (Test-Path "C:\githubhome\.upmconfig.toml") {
|
|
||||||
Write-Host "Copying .upmconfig.toml to $Env:USERPROFILE\.upmconfig.toml"
|
|
||||||
Copy-Item -Path "C:\githubhome\.upmconfig.toml" -Destination "$Env:USERPROFILE\.upmconfig.toml" -Force
|
|
||||||
} else {
|
|
||||||
Write-Host "No .upmconfig.toml found at C:\githubhome"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Import any necessary registry keys, ie: location of windows 10 sdk
|
# Import any necessary registry keys, ie: location of windows 10 sdk
|
||||||
# No guarantee that there will be any necessary registry keys, ie: tvOS
|
# No guarantee that there will be any necessary registry keys, ie: tvOS
|
||||||
Get-ChildItem -Path c:\regkeys -File | ForEach-Object { reg import $_.fullname }
|
Get-ChildItem -Path c:\regkeys -File | Foreach {reg import $_.fullname}
|
||||||
|
|
||||||
# Register the Visual Studio installation so Unity can find it
|
# Register the Visual Studio installation so Unity can find it
|
||||||
regsvr32 C:\ProgramData\Microsoft\VisualStudio\Setup\x64\Microsoft.VisualStudio.Setup.Configuration.Native.dll
|
regsvr32 C:\ProgramData\Microsoft\VisualStudio\Setup\x64\Microsoft.VisualStudio.Setup.Configuration.Native.dll
|
||||||
|
|
||||||
# Kill the regsvr process
|
|
||||||
Get-Process -Name regsvr32 | ForEach-Object { Stop-Process -Id $_.Id -Force }
|
|
||||||
|
|
||||||
# Setup Git Credentials
|
|
||||||
. "c:\steps\set_gitcredential.ps1"
|
|
||||||
|
|
||||||
if ($env:ENABLE_GPU -eq "true") {
|
|
||||||
# Install LLVMpipe software graphics driver
|
|
||||||
. "c:\steps\install_llvmpipe.ps1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Activate Unity
|
|
||||||
if ($env:SKIP_ACTIVATION -ne "true") {
|
|
||||||
. "c:\steps\activate.ps1"
|
|
||||||
|
|
||||||
# If we didn't activate successfully, exit with the exit code from the activation step.
|
|
||||||
if ($ACTIVATION_EXIT_CODE -ne 0) {
|
|
||||||
exit $ACTIVATION_EXIT_CODE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host "Skipping activation"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Build the project
|
# Build the project
|
||||||
. "c:\steps\build.ps1"
|
& "c:\steps\build.ps1"
|
||||||
|
|
||||||
# Free the seat for the activated license
|
# Free the seat for the activated license
|
||||||
if ($env:SKIP_ACTIVATION -ne "true") {
|
& "c:\steps\return_license.ps1"
|
||||||
. "c:\steps\return_license.ps1"
|
|
||||||
}
|
|
||||||
|
|
||||||
Get-Process
|
|
||||||
|
|
||||||
exit $BUILD_EXIT_CODE
|
|
||||||
|
56
dist/platforms/windows/install_llvmpipe.ps1
vendored
56
dist/platforms/windows/install_llvmpipe.ps1
vendored
@ -1,56 +0,0 @@
|
|||||||
$Private:repo = "mmozeiko/build-mesa"
|
|
||||||
$Private:downloadPath = "$Env:TEMP\mesa.zip"
|
|
||||||
$Private:extractPath = "$Env:TEMP\mesa"
|
|
||||||
$Private:destinationPath = "$Env:UNITY_PATH\Editor\"
|
|
||||||
$Private:version = "25.1.0"
|
|
||||||
|
|
||||||
$LLVMPIPE_INSTALLED = "false"
|
|
||||||
|
|
||||||
try {
|
|
||||||
# Get the release info from GitHub API (version fixed to decrease probability of breakage)
|
|
||||||
$releaseUrl = "https://api.github.com/repos/$repo/releases/tags/$version"
|
|
||||||
$release = Invoke-RestMethod -Uri $releaseUrl -Headers @{ "User-Agent" = "PowerShell" }
|
|
||||||
|
|
||||||
# Get the download URL for the zip asset
|
|
||||||
$zipUrl = $release.assets | Where-Object { $_.name -like "mesa-llvmpipe-x64*.zip" } | Select-Object -First 1 -ExpandProperty browser_download_url
|
|
||||||
|
|
||||||
if (-not $zipUrl) {
|
|
||||||
throw "No zip file found in the latest release."
|
|
||||||
}
|
|
||||||
|
|
||||||
# Download the zip file
|
|
||||||
Write-Host "Downloading $zipUrl..."
|
|
||||||
Invoke-WebRequest -Uri $zipUrl -OutFile $downloadPath
|
|
||||||
|
|
||||||
# Create extraction directory if it doesn't exist
|
|
||||||
if (-not (Test-Path $extractPath)) {
|
|
||||||
New-Item -ItemType Directory -Path $extractPath | Out-Null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Extract the zip file
|
|
||||||
Write-Host "Extracting $downloadPath to $extractPath..."
|
|
||||||
Expand-Archive -Path $downloadPath -DestinationPath $extractPath -Force
|
|
||||||
|
|
||||||
# Create destination directory if it doesn't exist
|
|
||||||
if (-not (Test-Path $destinationPath)) {
|
|
||||||
New-Item -ItemType Directory -Path $destinationPath | Out-Null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copy extracted files to destination
|
|
||||||
Write-Host "Copying files to $destinationPath..."
|
|
||||||
Copy-Item -Path "$extractPath\*" -Destination $destinationPath -Recurse -Force
|
|
||||||
|
|
||||||
Write-Host "Successfully downloaded, extracted, and copied Mesa files to $destinationPath"
|
|
||||||
|
|
||||||
$LLVMPIPE_INSTALLED = "true"
|
|
||||||
} catch {
|
|
||||||
Write-Error "An error occurred: $_"
|
|
||||||
} finally {
|
|
||||||
# Clean up temporary files
|
|
||||||
if (Test-Path $downloadPath) {
|
|
||||||
Remove-Item $downloadPath -Force
|
|
||||||
}
|
|
||||||
if (Test-Path $extractPath) {
|
|
||||||
Remove-Item $extractPath -Recurse -Force
|
|
||||||
}
|
|
||||||
}
|
|
61
dist/platforms/windows/return_license.ps1
vendored
61
dist/platforms/windows/return_license.ps1
vendored
@ -1,61 +0,0 @@
|
|||||||
# Return the active Unity license
|
|
||||||
|
|
||||||
Write-Output ""
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output "# Return License #"
|
|
||||||
Write-Output "###########################"
|
|
||||||
Write-Output ""
|
|
||||||
|
|
||||||
if (($null -ne ${env:UNITY_LICENSING_SERVER}))
|
|
||||||
{
|
|
||||||
Write-Output "Returning floating license: ""$env:FLOATING_LICENSE"""
|
|
||||||
Start-Process -FilePath "$Env:UNITY_PATH\Editor\Data\Resources\Licensing\Client\Unity.Licensing.Client.exe" `
|
|
||||||
-ArgumentList "--return-floating ""$env:FLOATING_LICENSE"" " `
|
|
||||||
-NoNewWindow `
|
|
||||||
-Wait
|
|
||||||
}
|
|
||||||
|
|
||||||
elseif (($null -ne ${env:UNITY_SERIAL}) -and ($null -ne ${env:UNITY_EMAIL}) -and ($null -ne ${env:UNITY_PASSWORD}))
|
|
||||||
{
|
|
||||||
#
|
|
||||||
# SERIAL LICENSE MODE
|
|
||||||
#
|
|
||||||
# This will return the license that is currently in use.
|
|
||||||
#
|
|
||||||
$RETURN_LICENSE_OUTPUT = Start-Process -FilePath "$Env:UNITY_PATH/Editor/Unity.exe" `
|
|
||||||
-NoNewWindow `
|
|
||||||
-PassThru `
|
|
||||||
-ArgumentList "-batchmode `
|
|
||||||
-quit `
|
|
||||||
-nographics `
|
|
||||||
-username $Env:UNITY_EMAIL `
|
|
||||||
-password $Env:UNITY_PASSWORD `
|
|
||||||
-returnlicense `
|
|
||||||
-projectPath c:/BlankProject `
|
|
||||||
-logfile -"
|
|
||||||
|
|
||||||
# Cache the handle so exit code works properly
|
|
||||||
# https://stackoverflow.com/questions/10262231/obtaining-exitcode-using-start-process-and-waitforexit-instead-of-wait
|
|
||||||
$unityHandle = $RETURN_LICENSE_OUTPUT.Handle
|
|
||||||
|
|
||||||
while ($true) {
|
|
||||||
if ($RETURN_LICENSE_OUTPUT.HasExited) {
|
|
||||||
$RETURN_LICENSE_EXIT_CODE = $RETURN_LICENSE_OUTPUT.ExitCode
|
|
||||||
|
|
||||||
# Display results
|
|
||||||
if ($RETURN_LICENSE_EXIT_CODE -eq 0)
|
|
||||||
{
|
|
||||||
Write-Output "License Return Succeeded"
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
Write-Output "License Return failed, with exit code $RETURN_LICENSE_EXIT_CODE"
|
|
||||||
Write-Output "::warning ::License Return failed! If this is a Pro License you might need to manually `
|
|
||||||
free the seat in your Unity admin panel or you might run out of seats to activate with."
|
|
||||||
}
|
|
||||||
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
Start-Sleep -Seconds 3
|
|
||||||
}
|
|
||||||
}
|
|
20
dist/platforms/windows/set_gitcredential.ps1
vendored
20
dist/platforms/windows/set_gitcredential.ps1
vendored
@ -1,20 +0,0 @@
|
|||||||
if ($null -eq ${env:GIT_PRIVATE_TOKEN}) {
|
|
||||||
Write-Host "GIT_PRIVATE_TOKEN unset skipping"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host "GIT_PRIVATE_TOKEN is set configuring git credentials"
|
|
||||||
|
|
||||||
git config --global credential.helper store
|
|
||||||
git config --global --replace-all url."https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
|
|
||||||
git config --global --add url."https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "git@github.com"
|
|
||||||
git config --global --add url."https://token:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "https://github.com/"
|
|
||||||
|
|
||||||
git config --global url."https://ssh:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "ssh://git@github.com/"
|
|
||||||
git config --global url."https://git:$env:GIT_PRIVATE_TOKEN@github.com/".insteadOf "git@github.com:"
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "---------- git config --list -------------"
|
|
||||||
git config --list
|
|
||||||
|
|
||||||
Write-Host "---------- git config --list --show-origin -------------"
|
|
||||||
git config --list --show-origin
|
|
6
dist/platforms/windows/steps/activate.ps1
vendored
Normal file
6
dist/platforms/windows/steps/activate.ps1
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Activates Unity
|
||||||
|
& "C:\Program Files\Unity\Hub\Editor\$Env:UNITY_VERSION\Editor\Unity.exe" -batchmode -quit -nographics `
|
||||||
|
-username $Env:UNITY_EMAIL `
|
||||||
|
-password $Env:UNITY_PASSWORD `
|
||||||
|
-serial $Env:UNITY_SERIAL `
|
||||||
|
-logfile | Out-Host
|
147
dist/platforms/windows/steps/build.ps1
vendored
Normal file
147
dist/platforms/windows/steps/build.ps1
vendored
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
#
|
||||||
|
# Set project path
|
||||||
|
#
|
||||||
|
$Env:UNITY_PROJECT_PATH="$Env:GITHUB_WORKSPACE\$Env:PROJECT_PATH"
|
||||||
|
Write-Output "$('Using project path "')$($Env:UNITY_PROJECT_PATH)$('".')"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Display the name for the build, doubles as the output name
|
||||||
|
#
|
||||||
|
|
||||||
|
Write-Output "$('Using build name "')$($Env:BUILD_NAME)$('".')"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Display the build's target platform;
|
||||||
|
#
|
||||||
|
|
||||||
|
Write-Output "$('Using build target "')$($Env:BUILD_TARGET)$('".')"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Display build path and file
|
||||||
|
#
|
||||||
|
|
||||||
|
Write-Output "$('Using build path "')$($Env:BUILD_PATH)$('" to save file "')$($Env:BUILD_FILE)$('".')"
|
||||||
|
$Env:BUILD_PATH_FULL="$Env:GITHUB_WORKSPACE\$Env:BUILD_PATH"
|
||||||
|
$Env:CUSTOM_BUILD_PATH="$Env:BUILD_PATH_FULL\$Env:BUILD_FILE"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Set the build method, must reference one of:
|
||||||
|
#
|
||||||
|
# - <NamespaceName.ClassName.MethodName>
|
||||||
|
# - <ClassName.MethodName>
|
||||||
|
#
|
||||||
|
# For example: `BuildCommand.PerformBuild`
|
||||||
|
#
|
||||||
|
# The method must be declared static and placed in project/Assets/Editor
|
||||||
|
#
|
||||||
|
if ($Env:BUILD_METHOD)
|
||||||
|
{
|
||||||
|
# User has provided their own build method.
|
||||||
|
# Assume they also bring their own script.
|
||||||
|
Write-Output "$('Using build method "')$($Env:BUILD_METHOD)$('".')"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# User has not provided their own build command.
|
||||||
|
#
|
||||||
|
# Use the script from this action which builds the scenes that are enabled in
|
||||||
|
# the project.
|
||||||
|
#
|
||||||
|
Write-Output "Using built-in build method."
|
||||||
|
|
||||||
|
# Create Editor directory if it does not exist
|
||||||
|
if(-Not (Test-Path -Path $Env:UNITY_PROJECT_PATH\Assets\Editor))
|
||||||
|
{
|
||||||
|
# We use -Force to suppress output, doesn't overwrite anything
|
||||||
|
New-Item -ItemType Directory -Force -Path $Env:UNITY_PROJECT_PATH\Assets\Editor
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copy the build script of Unity Builder action
|
||||||
|
Copy-Item -Path "c:\UnityBuilderAction" -Destination $Env:UNITY_PROJECT_PATH\Assets\Editor -Recurse
|
||||||
|
|
||||||
|
# Set the Build method to that of UnityBuilder Action
|
||||||
|
$Env:BUILD_METHOD="UnityBuilderAction.Builder.BuildProject"
|
||||||
|
|
||||||
|
# Verify recursive paths
|
||||||
|
Get-ChildItem -Path $UNITY_PROJECT_PATH\Assets\Editor -Recurse
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Pre-build debug information
|
||||||
|
#
|
||||||
|
|
||||||
|
Write-Output ""
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output "# Custom parameters #"
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output ""
|
||||||
|
|
||||||
|
Write-Output "$('"')$($Env:CUSTOM_PARAMETERS)$('"')"
|
||||||
|
|
||||||
|
Write-Output ""
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output "# Current build dir #"
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output ""
|
||||||
|
|
||||||
|
Write-Output "$('Creating "')$($Env:BUILD_PATH_FULL)$('" if it does not exist.')"
|
||||||
|
if (-Not (Test-Path -Path $Env:BUILD_PATH_FULL))
|
||||||
|
{
|
||||||
|
mkdir "$Env:BUILD_PATH_FULL"
|
||||||
|
}
|
||||||
|
Get-ChildItem $Env:BUILD_PATH_FULL
|
||||||
|
|
||||||
|
Write-Output ""
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output "# Project directory #"
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output ""
|
||||||
|
|
||||||
|
Get-ChildItem $Env:UNITY_PROJECT_PATH
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build
|
||||||
|
#
|
||||||
|
|
||||||
|
Write-Output ""
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output "# Building project #"
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output ""
|
||||||
|
|
||||||
|
& "C:\Program Files\Unity\Hub\Editor\$Env:UNITY_VERSION\Editor\Unity.exe" -quit -batchmode -nographics `
|
||||||
|
-projectPath $Env:UNITY_PROJECT_PATH `
|
||||||
|
-executeMethod $Env:BUILD_METHOD `
|
||||||
|
-buildTarget $Env:BUILD_TARGET `
|
||||||
|
-customBuildTarget $Env:BUILD_TARGET `
|
||||||
|
-customBuildPath $Env:CUSTOM_BUILD_PATH `
|
||||||
|
-buildVersion $Env:VERSION `
|
||||||
|
$Env:CUSTOM_PARAMETERS `
|
||||||
|
-logfile | Out-Host
|
||||||
|
|
||||||
|
# Catch exit code
|
||||||
|
$Env:BUILD_EXIT_CODE=$?
|
||||||
|
|
||||||
|
# Display results
|
||||||
|
if ($Env:BUILD_EXIT_CODE -eq 0)
|
||||||
|
{
|
||||||
|
Write-Output "Build Succeeded!"
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
Write-Output "$('Build failed, with exit code ')$($Env:BUILD_EXIT_CODE)$('"')"
|
||||||
|
}
|
||||||
|
|
||||||
|
# TODO: Determine if we need to set permissions on any files
|
||||||
|
|
||||||
|
#
|
||||||
|
# Results
|
||||||
|
#
|
||||||
|
|
||||||
|
Write-Output ""
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output "# Build output #"
|
||||||
|
Write-Output "###########################"
|
||||||
|
Write-Output ""
|
||||||
|
|
||||||
|
Get-ChildItem $Env:BUILD_PATH_FULL
|
||||||
|
Write-Output ""
|
6
dist/platforms/windows/steps/return_license.ps1
vendored
Normal file
6
dist/platforms/windows/steps/return_license.ps1
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Return the active Unity license
|
||||||
|
& "C:\Program Files\Unity\Hub\Editor\$Env:UNITY_VERSION\Editor\Unity.exe" -batchmode -quit -nographics `
|
||||||
|
-username $Env:UNITY_EMAIL `
|
||||||
|
-password $Env:UNITY_PASSWORD `
|
||||||
|
-returnlicense `
|
||||||
|
-logfile | Out-Host
|
BIN
dist/sourcemap-register.js
generated
vendored
BIN
dist/sourcemap-register.js
generated
vendored
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"licensingServiceBaseUrl": "%URL%",
|
|
||||||
"enableEntitlementLicensing": true,
|
|
||||||
"enableFloatingApi": true,
|
|
||||||
"clientConnectTimeoutSec": 5,
|
|
||||||
"clientHandshakeTimeoutSec": 10
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
hook: after
|
|
||||||
commands: |
|
|
||||||
echo "after-build hook test!"
|
|
@ -1,3 +0,0 @@
|
|||||||
hook: before
|
|
||||||
commands: |
|
|
||||||
echo "before-build hook test!!"
|
|
@ -1,3 +0,0 @@
|
|||||||
hook: after
|
|
||||||
commands: |
|
|
||||||
echo "after-build step test!"
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user