@rage-against-the-pixel/unity-cli 3.0.2 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -224
- package/dist/android-sdk.js +8 -1
- package/dist/android-sdk.js.map +1 -1
- package/dist/cli.js +180 -505
- package/dist/cli.js.map +1 -1
- package/dist/failure-markers.d.ts +17 -0
- package/dist/failure-markers.js +46 -0
- package/dist/failure-markers.js.map +1 -0
- package/dist/github-actions-ci.d.ts +1 -0
- package/dist/github-actions-ci.js +17 -3
- package/dist/github-actions-ci.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/license-client.d.ts +119 -2
- package/dist/license-client.js +737 -56
- package/dist/license-client.js.map +1 -1
- package/dist/logger-provider.d.ts +2 -0
- package/dist/logger-provider.js +3 -0
- package/dist/logger-provider.js.map +1 -1
- package/dist/logging.d.ts +5 -0
- package/dist/logging.js +47 -0
- package/dist/logging.js.map +1 -1
- package/dist/process-tracker.d.ts +71 -0
- package/dist/process-tracker.js +213 -0
- package/dist/process-tracker.js.map +1 -0
- package/dist/unity-cli.d.ts +97 -0
- package/dist/unity-cli.js +591 -0
- package/dist/unity-cli.js.map +1 -0
- package/dist/unity-editor.d.ts +25 -16
- package/dist/unity-editor.js +204 -107
- package/dist/unity-editor.js.map +1 -1
- package/dist/unity-installer.d.ts +139 -0
- package/dist/unity-installer.js +1018 -0
- package/dist/unity-installer.js.map +1 -0
- package/dist/unity-logging.d.ts +16 -1
- package/dist/unity-logging.js +55 -3
- package/dist/unity-logging.js.map +1 -1
- package/dist/unity-project.d.ts +15 -0
- package/dist/unity-project.js +80 -0
- package/dist/unity-project.js.map +1 -1
- package/dist/upm-cli.d.ts +8 -8
- package/dist/upm-cli.js +8 -8
- package/dist/upm-cli.js.map +1 -1
- package/dist/utilities.d.ts +27 -7
- package/dist/utilities.js +119 -63
- package/dist/utilities.js.map +1 -1
- package/package.json +10 -11
- package/dist/unity-hub.d.ts +0 -140
- package/dist/unity-hub.js +0 -1425
- package/dist/unity-hub.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,21 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://discord.gg/xQgMW9ufN4) [](https://www.npmjs.com/package/@rage-against-the-pixel/unity-cli) [](https://www.npmjs.com/package/@rage-against-the-pixel/unity-cli)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> [!WARNING]
|
|
6
|
+
> This package is in maintenance mode.
|
|
7
|
+
|
|
8
|
+
A thin companion to Unity's official CLI (`unity`) for CI/CD pipelines. v4 installs and wraps the official CLI and only bridges what it does not cover yet.
|
|
9
|
+
|
|
10
|
+
## Maintenance
|
|
11
|
+
|
|
12
|
+
In unity's infinite wisdom, they decided to rip off yet another one of my open source projects with a clone of their own. which has blessed me with more free time and ability to work on other projects. As always, I build these kinds of tools because there is a gap in tooling or some need of mine to fulfil. I only wish that one day I get credit for the hard work I've been doing over the last 20 years to bring games and joy to people's lives.
|
|
13
|
+
|
|
14
|
+
v4 is the last feature release. The repository stays open for security and crash fixes only, and there are no new commands. `@rage-against-the-pixel/unity-cli` v3 and v4 stay on npm.
|
|
15
|
+
|
|
16
|
+
Use Unity's official CLI for everything it covers. See [Use the Unity CLI](https://docs.unity.com/en-us/unity-cli/use-unity-cli). That includes Hub-free editor installs and uninstalls, modules, project create and open, templates, builds, tests, serial, floating and offline licenses, and service-account auth.
|
|
17
|
+
unity-cli v4 still covers:
|
|
18
|
+
|
|
19
|
+
- Installing the official Unity CLI on first use, with SHA-256 verification, for CI runners.
|
|
20
|
+
- Installing the Unity Package Manager CLI and packing signed packages with it.
|
|
21
|
+
- License activation and return with a Unity ID email and password, used when the official CLI cannot activate, such as a personal license on a headless runner.
|
|
22
|
+
- Unity 4.x and 5.x editors: installs from Unity's archives and the license file those editors read.
|
|
23
|
+
- Android target SDK setup for a project.
|
|
24
|
+
- Live Editor log and Unity Test Protocol output turned into GitHub Actions annotations, log groups and job summaries.
|
|
25
|
+
|
|
26
|
+
Send feature requests that the official CLI already covers to Unity.
|
|
6
27
|
|
|
7
28
|
> [!IMPORTANT]
|
|
8
|
-
> The documented commands can download, install, or run software from Unity (
|
|
29
|
+
> The documented commands can download, install, or run software from Unity (the Unity CLI, Editor, licensing tools, and similar binaries from Unity CDNs or services). That use is covered by Unity’s [Terms of Service](https://unity.com/legal/terms-of-service), the [Unity Editor Software Additional Terms](https://unity.com/legal/terms-of-service/software), and any other [Additional Terms](https://unity.com/legal/additional-terms) that apply to the offerings you use. Keep your Unity account, seats, and subscriptions in order, and read the agreements that actually bind you before relying on automation in CI or production. The full legal index is at [Unity Legal](https://unity.com/legal).
|
|
9
30
|
>
|
|
10
31
|
> Unity, Unity Hub, Unity Editor, and related names and logos are trademarks and other intellectual property of Unity Technologies Inc. and its affiliates. This project is independent and not affiliated with Unity. Names are used here only to describe what the commands talk to. If you ship Unity marks, artwork, or binaries, use Unity’s guidance, including their [IP policy](https://unity.com/legal/ip-policy-takedown-requests).
|
|
11
32
|
|
|
12
33
|
## Table of Contents
|
|
13
34
|
|
|
14
|
-
- [
|
|
35
|
+
- [Maintenance](#maintenance)
|
|
36
|
+
- [Upgrading from v3](#upgrading-from-v3)
|
|
15
37
|
- [Unity version support](docs/unity-version-support.md)
|
|
16
38
|
- [Installation](#installation)
|
|
17
39
|
- [Usage](#usage)
|
|
18
40
|
- [Common Commands](#common-commands)
|
|
19
|
-
- [
|
|
41
|
+
- [Official Unity CLI](#official-unity-cli)
|
|
20
42
|
- [Auth](#auth)
|
|
21
43
|
- [License Version](#license-version)
|
|
22
44
|
- [Activate License](#activate-license)
|
|
@@ -24,41 +46,35 @@ A powerful all-in-one command line utility for the Unity Game Engine. Automate U
|
|
|
24
46
|
- [License Context](#license-context)
|
|
25
47
|
- [Licensing Client Logs](#licensing-client-logs)
|
|
26
48
|
- [Licensing Audit Logs](#licensing-audit-logs)
|
|
27
|
-
- [Unity Hub](#unity-hub)
|
|
28
|
-
- [Hub Version](#hub-version)
|
|
29
|
-
- [Hub Path](#hub-path)
|
|
30
|
-
- [Hub Logs](#hub-logs)
|
|
31
|
-
- [Package Manager Logs](#package-manager-logs)
|
|
32
|
-
- [Unity Hub Install](#unity-hub-install)
|
|
33
|
-
- [Run Unity Hub Commands](#run-unity-hub-commands)
|
|
34
|
-
- [Setup Unity Editor](#setup-unity-editor)
|
|
35
|
-
- [Uninstall Unity Editor](#uninstall-unity-editor)
|
|
36
49
|
- [Unity Editor](#unity-editor)
|
|
50
|
+
- [Setup Unity Editor](#setup-unity-editor)
|
|
37
51
|
- [Run Unity Editor Commands](#run-unity-editor-commands)
|
|
38
|
-
- [List Project Templates](#list-project-templates)
|
|
39
|
-
- [Create Unity Project](#create-unity-project)
|
|
40
|
-
- [Open Unity Project](#open-unity-project)
|
|
41
52
|
- [Unity Editor Logs](#unity-editor-logs)
|
|
53
|
+
- [Deprecated Commands](#deprecated-commands)
|
|
42
54
|
- [Unity Package Manager](#unity-package-manager)
|
|
43
55
|
- [Install Unity Package Manager](#install-unity-package-manager)
|
|
44
56
|
- [UPM Version](#upm-version)
|
|
45
57
|
- [Pack a Unity Package](#pack-a-unity-package)
|
|
46
|
-
- [Deprecated Sign Package Command](#deprecated-sign-package-command)
|
|
47
58
|
- [Logging](#logging)
|
|
48
59
|
- [Local cli](#local-cli)
|
|
49
60
|
- [Github Actions](#github-actions)
|
|
50
61
|
|
|
51
|
-
##
|
|
62
|
+
## Upgrading from v3
|
|
52
63
|
|
|
53
|
-
|
|
64
|
+
v4 drops the Hub. Commands that need the official CLI install it on first use.
|
|
54
65
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
66
|
+
| v3 command | v4 |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| `install-all-tools`, `hub-install` | Removed. The official CLI installs on first use, with no Hub needed |
|
|
69
|
+
| `hub`, `hub-path`, `hub-version`, `hub-logs`, `package-manager-logs` | Removed. Use `unity env`, `unity logs`, `unity doctor` |
|
|
70
|
+
| `sign-package` | Removed. Use `upm-pack` |
|
|
71
|
+
| `uninstall-unity` | Deprecated, same options, forwards to `unity uninstall <version> --yes` |
|
|
72
|
+
| `list-project-templates` | Deprecated, same options, forwards to `unity templates list --editor <version>` |
|
|
73
|
+
| `create-project` | Deprecated, same options, forwards to `unity projects create <name> --path <path> --editor-version <version> --template <id> --no-cloud` |
|
|
74
|
+
| `open-project` | Deprecated, same options, forwards to `unity open <project>` |
|
|
75
|
+
| `upm-install`, `upm-version`, `upm-pack` | Unchanged |
|
|
76
|
+
|
|
77
|
+
`setup-unity` exports `UNITY_CLI_PATH` instead of `UNITY_HUB_PATH`. Only the commands above are forwarded; unknown commands are not passed to `unity`.
|
|
62
78
|
|
|
63
79
|
## Installation
|
|
64
80
|
|
|
@@ -67,7 +83,7 @@ npm install -g @rage-against-the-pixel/unity-cli
|
|
|
67
83
|
```
|
|
68
84
|
|
|
69
85
|
> [!IMPORTANT]
|
|
70
|
-
> Requires Node
|
|
86
|
+
> Requires Node v24 or higher.
|
|
71
87
|
|
|
72
88
|
## Usage
|
|
73
89
|
|
|
@@ -77,7 +93,7 @@ In general, the command structure is:
|
|
|
77
93
|
unity-cli [command] {options} <args...>
|
|
78
94
|
```
|
|
79
95
|
|
|
80
|
-
With options always using double dashes (`--option`) and arguments passed directly to Unity
|
|
96
|
+
With options always using double dashes (`--option`) and arguments passed directly to Unity commands as they normally would with single dashes (`-arg`). Each option typically has a short alias using a single dash (`-o`), except for commands where we pass through arguments, as those get confused by the command parser.
|
|
81
97
|
|
|
82
98
|
### Common Commands
|
|
83
99
|
|
|
@@ -93,22 +109,20 @@ With options always using double dashes (`--option`) and arguments passed direct
|
|
|
93
109
|
unity-cli --help
|
|
94
110
|
```
|
|
95
111
|
|
|
96
|
-
###
|
|
112
|
+
### Official Unity CLI
|
|
97
113
|
|
|
98
|
-
|
|
114
|
+
Every command that needs the official Unity CLI installs it on first use. It downloads the latest release from Unity's CDN, checks the SHA-256 that Unity's release manifest lists, caches it in the runner tool cache (`unity-cli/<version>/<arch>`), adds it to the `PATH`, and exports `UNITY_CLI_PATH` and `UNITY_CLI_VERSION`. Later steps in the same job read `UNITY_CLI_VERSION` and reuse that copy. It also sets `UNITY_NON_INTERACTIVE`, `UNITY_NO_UPDATE_CHECK` and `UNITY_NO_CONSENT_PROMPT` so the CLI never prompts or updates itself mid-job.
|
|
99
115
|
|
|
100
|
-
|
|
101
|
-
- `--auto-update`: If any tools are installed, they're automatically updated to the latest versions. Cannot be used with `--hub-version` or `--upm-version`.
|
|
102
|
-
- `--hub-version <version>`: Specify to install a specific version of Unity Hub. Cannot be used with `--auto-update`.
|
|
103
|
-
- `--upm-version <version>`: Specify to install a specific version of the Unity Package Manager cli. Cannot be used with `--auto-update`.
|
|
104
|
-
- `--json`: Print hub path, UPM CLI version, and resolved UPM CLI path as JSON.
|
|
116
|
+
To use a specific release, pass `--unity-cli-version <version>` to any command or set `UNITY_CLI_VERSION`:
|
|
105
117
|
|
|
106
118
|
```bash
|
|
107
|
-
unity-cli
|
|
119
|
+
unity-cli --unity-cli-version 1.0.0-beta.14 setup-unity --unity-version 6000
|
|
108
120
|
```
|
|
109
121
|
|
|
110
122
|
### Auth
|
|
111
123
|
|
|
124
|
+
Every license command tries the official Unity CLI first. When it fails, unity-cli falls back to `Unity.Licensing.Client` (the copy the official CLI downloads) with your Unity ID email and password. Unity 4.x and 5.x editors read their own license file, so when `UNITY_EDITOR_PATH` points at one of them, unity-cli uses the licensing client directly and patches it for that editor.
|
|
125
|
+
|
|
112
126
|
#### License Version
|
|
113
127
|
|
|
114
128
|
`license-version`: Print the Unity License Client version.
|
|
@@ -122,23 +136,28 @@ unity-cli license-version
|
|
|
122
136
|
`activate-license [options]`: Activate a Unity license.
|
|
123
137
|
|
|
124
138
|
- `-l`, `--license`: License type (personal, professional, floating). Required.
|
|
125
|
-
- `-e`, `--email`: Email associated with the Unity account.
|
|
126
|
-
- `-p`, `--password`: Password for the Unity account.
|
|
127
|
-
- `-s`, `--serial`: License serial number. Required when activating a professional license.
|
|
139
|
+
- `-e`, `--email`: Email associated with the Unity account. Used when the official CLI cannot activate a personal or professional license. Defaults to `UNITY_USERNAME`.
|
|
140
|
+
- `-p`, `--password`: Password for the Unity account. Used when the official CLI cannot activate a personal or professional license. Defaults to `UNITY_PASSWORD`.
|
|
141
|
+
- `-s`, `--serial`: License serial number. Required when activating a professional license. Defaults to `UNITY_SERIAL`.
|
|
142
|
+
- `-f`, `--license-file`: A cached license file (`Unity_lic.ulf`) from an earlier activation on a machine with the same identity: a path, the raw XML, or base64. Defaults to `UNITY_LICENSE`. Falls back to the email and password when it cannot be used.
|
|
128
143
|
- `-c`, `--config`: Path to the configuration file, raw JSON, or base64 encoded JSON string. Required when activating a floating license.
|
|
129
144
|
- `--json`: Prints the last line of output as JSON string.
|
|
130
145
|
- `--verbose`: Enable verbose logging.
|
|
131
146
|
|
|
132
147
|
```bash
|
|
133
|
-
unity-cli activate-license --license personal
|
|
148
|
+
UNITY_USERNAME=<your-email> UNITY_PASSWORD=<your-password> unity-cli activate-license --license personal
|
|
134
149
|
```
|
|
135
150
|
|
|
151
|
+
> [!NOTE]
|
|
152
|
+
> Prefer the environment variables over `--email` and `--password`: values on a command line are visible to other processes on the machine. The Unity Licensing Client fallback still receives them as arguments, which Unity's client requires, so the official CLI stays the first choice.
|
|
153
|
+
|
|
136
154
|
##### Return License
|
|
137
155
|
|
|
138
156
|
`return-license [options]`: Return a Unity license.
|
|
139
157
|
|
|
140
158
|
- `-l`, `--license`: License type (personal, professional, floating)
|
|
141
|
-
- `-t`, `--token`: Floating license token.
|
|
159
|
+
- `-t`, `--token`: Floating license token from activation. When given, the floating license is returned with the Unity Licensing Client.
|
|
160
|
+
- `--when <auto|always|never>`: Defaults to `auto`, which skips returning a personal or professional license on GitHub-hosted macOS and Linux runners. Those runners report one machine identity to Unity across every job and repository, so a return there revokes the license for all of them. Windows and self-hosted runners always return.
|
|
142
161
|
- `--verbose`: Enable verbose logging.
|
|
143
162
|
|
|
144
163
|
```bash
|
|
@@ -147,12 +166,20 @@ unity-cli return-license --license personal
|
|
|
147
166
|
|
|
148
167
|
#### License Context
|
|
149
168
|
|
|
150
|
-
`license-context`: Print the current license
|
|
169
|
+
`license-context`: Print the current license state from the official CLI and the Unity Licensing Client.
|
|
151
170
|
|
|
152
171
|
```bash
|
|
153
172
|
unity-cli license-context
|
|
154
173
|
```
|
|
155
174
|
|
|
175
|
+
#### License File Path
|
|
176
|
+
|
|
177
|
+
`license-file-path`: Prints the path to the machine's Unity license file (`Unity_lic.ulf`).
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
unity-cli license-file-path
|
|
181
|
+
```
|
|
182
|
+
|
|
156
183
|
#### Licensing Client Logs
|
|
157
184
|
|
|
158
185
|
`licensing-client-logs`: Prints the path to the Unity Licensing Client log file.
|
|
@@ -169,78 +196,11 @@ unity-cli licensing-client-logs
|
|
|
169
196
|
unity-cli licensing-audit-logs
|
|
170
197
|
```
|
|
171
198
|
|
|
172
|
-
### Unity
|
|
173
|
-
|
|
174
|
-
#### Hub Version
|
|
175
|
-
|
|
176
|
-
`hub-version`: Print the Unity Hub version.
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
unity-cli hub-version
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
#### Hub Path
|
|
183
|
-
|
|
184
|
-
`hub-path`: Print the path to the Unity Hub executable.
|
|
185
|
-
|
|
186
|
-
- `--json`: Prints the last line of output as JSON string.
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
unity-cli hub-path
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
#### Hub Logs
|
|
193
|
-
|
|
194
|
-
`hub-logs`: Prints the path to the Unity Hub log file.
|
|
195
|
-
|
|
196
|
-
```bash
|
|
197
|
-
unity-cli hub-logs
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
#### Package Manager Logs
|
|
201
|
-
|
|
202
|
-
`package-manager-logs`: Prints the path to the Unity Package Manager log file.
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
unity-cli package-manager-logs
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
#### Unity Hub Install
|
|
209
|
-
|
|
210
|
-
`hub-install [options]`: Install or update the Unity Hub.
|
|
211
|
-
|
|
212
|
-
- `--auto-update`: Automatically updates the Unity Hub if it is already installed. Cannot be used with `--hub-version`.
|
|
213
|
-
- `--hub-version`: Specify to install a specific version of Unity Hub. Cannot be used with `--auto-update`.
|
|
214
|
-
- `--verbose`: Enable verbose logging.
|
|
215
|
-
- `--json`: Prints the last line of output as JSON string.
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
unity-cli hub-install
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
#### Run Unity Hub Commands
|
|
222
|
-
|
|
223
|
-
`hub [options] <args...>`: Run commands directly to the Unity Hub. (You need not to pass `--headless` or `--` to this command).
|
|
224
|
-
|
|
225
|
-
- `--verbose`: Enable verbose logging.
|
|
226
|
-
- `--json`: Prints the last line of output as a json string, which contains the operation results.
|
|
227
|
-
- `<args...>`: Arguments to pass directly to the Unity Hub executable.
|
|
228
|
-
|
|
229
|
-
Lists available Unity Hub commands:
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
unity-cli --verbose hub help
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
Gets a list of installed editors:
|
|
236
|
-
|
|
237
|
-
```bash
|
|
238
|
-
unity-cli hub editors --installed
|
|
239
|
-
```
|
|
199
|
+
### Unity Editor
|
|
240
200
|
|
|
241
201
|
#### Setup Unity Editor
|
|
242
202
|
|
|
243
|
-
`setup-unity [options]`: Find or install the Unity Editor for a project or specific version.
|
|
203
|
+
`setup-unity [options]`: Find or install the Unity Editor for a project or specific version. 2017.4 and newer install with `unity install`. 5.x installs from Unity's download archive, because the official CLI reads one-digit majors as Unity 6 shorthand. 4.x installs from Unity's legacy installers on Windows and macOS.
|
|
244
204
|
|
|
245
205
|
- `-p`, `--unity-project <unityProject>` The path to a Unity project or `none` to skip project detection.
|
|
246
206
|
- `-u`, `--unity-version <unityVersion>` The Unity version to get (e.g. `2020.3.1f1`, `2021.x`, `2022.1.*`, `6000`). If specified, it will override the version read from the project.
|
|
@@ -249,35 +209,25 @@ unity-cli hub editors --installed
|
|
|
249
209
|
- `-a`, `--arch <arch>` The Unity architecture to get (e.g. `x86_64`, `arm64`). Defaults to the architecture of the current process.
|
|
250
210
|
- `-b`, `--build-targets <buildTargets>` The Unity build target to get/install as comma-separated values (e.g. `iOS,Android`).
|
|
251
211
|
- `-m`, `--modules <modules>` The Unity module to get/install as comma-separated values (e.g. `ios,android`).
|
|
252
|
-
- `-i`, `--install-path <installPath>` The path to install the Unity Editor to. By default, it will be installed to the
|
|
212
|
+
- `-i`, `--install-path <installPath>` The path to install the Unity Editor to. By default, it will be installed to the official CLI's install path.
|
|
253
213
|
- `--verbose` Enable verbose logging.
|
|
254
214
|
- `--json` Prints the last line of output as JSON string.
|
|
255
215
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
```bash
|
|
259
|
-
unity-cli setup-unity --unity-version 6000 --modules android,ios
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
#### Uninstall Unity Editor
|
|
216
|
+
With only `--unity-project`, it installs the modules for every build profile saved under the project's `Assets` folder (Unity 6 and newer). `--modules` or `--build-targets` replace that list.
|
|
263
217
|
|
|
264
|
-
`
|
|
218
|
+
It exports `UNITY_CLI_PATH`, `UNITY_EDITOR_PATH`, `UNITY_EDITOR_VERSION`, `UNITY_EDITOR_CHANGESET`, `UNITY_EDITOR_CHANNELS` and, with a project, `UNITY_PROJECT_PATH`. With a project and the `android` module, it also installs the project's Android target SDK.
|
|
265
219
|
|
|
266
|
-
|
|
267
|
-
- `-u`, `--unity-version <unityVersion>` The Unity version to get (e.g. `2020.3.1f1`, `2021.x`, `2022.1.*`, `6000`). If unspecified, then `--unity-editor` must be specified.
|
|
268
|
-
- `-c`, `--changeset <changeset>` The Unity changeset to get (e.g. `1234567890ab`).
|
|
269
|
-
- `-a`, `--arch <arch>` The Unity architecture to get (e.g. `x86_64`, `arm64`). Defaults to the architecture of the current process.
|
|
270
|
-
- `--verbose` Enable verbose logging.
|
|
220
|
+
Installs the latest Unity 6 version with Android and iOS modules:
|
|
271
221
|
|
|
272
222
|
```bash
|
|
273
|
-
unity-cli
|
|
223
|
+
unity-cli setup-unity --unity-version 6000 --modules android,ios
|
|
274
224
|
```
|
|
275
225
|
|
|
276
|
-
### Unity Editor
|
|
277
|
-
|
|
278
226
|
#### Run Unity Editor Commands
|
|
279
227
|
|
|
280
|
-
`run [options] <args...>`: Run Unity Editor command line arguments
|
|
228
|
+
`run [options] <args...>`: Run Unity Editor command line arguments with live Editor log and Unity Test Protocol annotations.
|
|
229
|
+
|
|
230
|
+
Runs with a project go through the official CLI's `unity run` for 2019.1 and newer editors. Runs without a project, older editors, Linux runs that need `xvfb`, and x86_64 editors under Rosetta launch the editor directly. Set `UNITY_CLI_DIRECT_LAUNCH=true` to always launch the editor directly.
|
|
281
231
|
|
|
282
232
|
- `--unity-editor <unityEditor>` The path to the Unity Editor executable. If unspecified, `--unity-project` or the `UNITY_EDITOR_PATH` environment variable must be set.
|
|
283
233
|
- `--unity-project <unityProject>` The path to a Unity project. If unspecified, the `UNITY_PROJECT_PATH` environment variable will be used, otherwise no project will be specified.
|
|
@@ -295,65 +245,6 @@ unity-cli uninstall-unity --unity-version 6000
|
|
|
295
245
|
unity-cli run --unity-project <path-to-project> -quit -batchmode -executeMethod StartCommandLineBuild
|
|
296
246
|
```
|
|
297
247
|
|
|
298
|
-
#### List Project Templates
|
|
299
|
-
|
|
300
|
-
> [!NOTE]
|
|
301
|
-
> Regex patterns are supported for the `--template` option. For example, to create a 3D project with either the standard or cross-platform template, you can use `com.unity.template.3d(-cross-platform)?`.
|
|
302
|
-
|
|
303
|
-
`list-project-templates [options]`: List available Unity project templates for an editor.
|
|
304
|
-
|
|
305
|
-
- `-u`, `--unity-version <unityVersion>` The Unity version to get (e.g. `2020.3.1f1`, `2021.x`, `2022.1.*`, `6000`). If unspecified, then `--unity-editor` must be specified.
|
|
306
|
-
- `-e`, `--unity-editor <unityEditor>` The path to the Unity Editor executable. If unspecified, `-u`, `--unity-version` or the `UNITY_EDITOR_PATH` environment variable must be set.
|
|
307
|
-
- `--verbose` Enable verbose logging.
|
|
308
|
-
- `--json` Prints the last line of output as JSON string.
|
|
309
|
-
|
|
310
|
-
Lists available project templates for Unity 6:
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
unity-cli list-project-templates --unity-version 6000
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
#### Create Unity Project
|
|
317
|
-
|
|
318
|
-
`create-project [options]`: Create a new Unity project.
|
|
319
|
-
|
|
320
|
-
- `-n`, `--name <projectName>` The name of the new Unity project. If unspecified, the project will be created in the specified path or the current working directory.
|
|
321
|
-
- `-p`, `--path <projectPath>` The path to create the new Unity project. If unspecified, the current working directory will be used.
|
|
322
|
-
- `-t`, `--template <projectTemplate>` The name of the template package to use for creating the unity project. Supports regex patterns. (default:
|
|
323
|
-
`com.unity.template.3d(-cross-platform)?`)
|
|
324
|
-
- `-u`, `--unity-version <unityVersion>` The Unity version to get (e.g. `2020.3.1f1`, `2021.x`, `2022.1.*`, `6000`). If unspecified, then `--unity-editor` must be specified.
|
|
325
|
-
- `-e`, `--unity-editor <unityEditor>` The path to the Unity Editor executable. If unspecified, `-u`, `--unity-version`, or the `UNITY_EDITOR_PATH` environment variable must be set.
|
|
326
|
-
- `--verbose` Enable verbose logging.
|
|
327
|
-
- `--json` Prints the last line of output as JSON string.
|
|
328
|
-
|
|
329
|
-
Creates a new Unity project named "MyGame" using the latest version of Unity 6 and the 3D template:
|
|
330
|
-
|
|
331
|
-
```bash
|
|
332
|
-
unity-cli create-project --name "MyGame" --template com.unity.template.3d(-cross-platform)? --unity-version 6000
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
#### Open Unity Project
|
|
336
|
-
|
|
337
|
-
`open-project [options]`: Open a Unity project in the Unity Editor.
|
|
338
|
-
|
|
339
|
-
- `-p`, `--unity-project <unityProject>` The path to a Unity project. If unspecified, the `UNITY_PROJECT_PATH` environment variable or the current working directory will be used.
|
|
340
|
-
- `-u`, `--unity-version <unityVersion>` The Unity version to get (e.g. `2020.3.1f1`, `2021.x`, `2022.1.*`, `6000`). If specified, it will override the version read from the project.
|
|
341
|
-
- `-t`, `--build-target <buildTarget>` The Unity build target to switch the project to (e.g. `StandaloneWindows64`, `StandaloneOSX`, `iOS`, `Android`, etc).
|
|
342
|
-
- `--verbose` Enable verbose logging.
|
|
343
|
-
|
|
344
|
-
Opens a specific Unity project with the latest Unity 6 version and switches the active platform to Android:
|
|
345
|
-
|
|
346
|
-
```bash
|
|
347
|
-
unity-cli open-project --unity-project <path-to-project> --unity-version 6000 --build-target Android
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
> [!TIP]
|
|
351
|
-
> If you run this command in the same directory as your Unity project, you can omit the `--unity-project`, `--unity-version`, and `--unity-editor` options.
|
|
352
|
-
|
|
353
|
-
```bash
|
|
354
|
-
unity-cli open-project
|
|
355
|
-
```
|
|
356
|
-
|
|
357
248
|
#### Unity Editor Logs
|
|
358
249
|
|
|
359
250
|
`editor-logs`: Prints the path to the Unity Editor log files.
|
|
@@ -362,8 +253,14 @@ unity-cli open-project
|
|
|
362
253
|
unity-cli editor-logs
|
|
363
254
|
```
|
|
364
255
|
|
|
256
|
+
### Deprecated Commands
|
|
257
|
+
|
|
258
|
+
`uninstall-unity`, `list-project-templates`, `create-project` and `open-project` keep their v3 options, print a deprecation warning that names the replacement, and forward to the official Unity CLI (see [Upgrading from v3](#upgrading-from-v3)). `create-project --template` takes a template id or id prefix; v3 regex patterns are no longer compiled, and only their leading literal part is matched. Run `unity-cli <command> --help` for the options.
|
|
259
|
+
|
|
365
260
|
### Unity Package Manager
|
|
366
261
|
|
|
262
|
+
Unity publishes the pack and sign tool as its own CLI. See [Unity Package Manager CLI workflow](https://docs.unity3d.com/Manual/upm-cli.html). The commands below call that same `upm` binary.
|
|
263
|
+
|
|
367
264
|
#### Install Unity Package Manager
|
|
368
265
|
|
|
369
266
|
`upm-install [options]`: Download and install the Unity Package Manager cli (pack/sign).
|
|
@@ -402,27 +299,6 @@ unity-cli upm-version
|
|
|
402
299
|
unity-cli upm-pack --source <path-to-package-folder> --destination <output-path>
|
|
403
300
|
```
|
|
404
301
|
|
|
405
|
-
#### Deprecated Sign Package Command
|
|
406
|
-
|
|
407
|
-
> [!WARNING]
|
|
408
|
-
> **Deprecated:** The `sign-package` command is deprecated. Use `unity-cli upm-pack --source <path-to-package-folder> --destination <output-path>` with `UNITY_ORGANIZATION_ID` or `UNITY_ORG_ID`, `UPM_SERVICE_ACCOUNT_KEY_ID`, and `UPM_SERVICE_ACCOUNT_KEY_SECRET` (or secure prompts).
|
|
409
|
-
|
|
410
|
-
`sign-package [options]`: [Deprecated] Sign a Unity package using Unity Editor 6000.3+ batch mode (`-upmPack`). Use `unity-cli upm-pack` with organization and service account credentials for new workflows.
|
|
411
|
-
|
|
412
|
-
- `--package <package>` Required. The fully qualified path to the folder that contains the package.json file for the package you want to sign. Note: Don't include package.json in this parameter value.
|
|
413
|
-
- `--output <output>` Optional. The output directory where you want to save the signed tarball file (.tgz). If unspecified, the package contents will be updated in place with the signed .attestation.p7m file.
|
|
414
|
-
- `--email <email>` Email associated with the Unity account. If unspecified, the `UNITY_USERNAME` environment variable will be used.
|
|
415
|
-
- `--password <password>` The password of the Unity account. If unspecified, the `UNITY_PASSWORD` environment variable will be used.
|
|
416
|
-
- `--organization <organization>` The Organization ID you copied from the Unity Cloud Dashboard. If unspecified, the `UNITY_ORGANIZATION_ID` environment variable will be used.
|
|
417
|
-
- `--verbose` Enable verbose logging.
|
|
418
|
-
|
|
419
|
-
> [!NOTE]
|
|
420
|
-
> The `--output` option is optional. If not specified, the package contents will be updated in place with the signed `.attestation.p7m` file. Otherwise a signed `.tgz` file will be created in the specified output directory.
|
|
421
|
-
|
|
422
|
-
```bash
|
|
423
|
-
unity-cli sign-package --package <path-to-package-folder> --email <your-email> --password <your-password> --organization <your-organization-id>
|
|
424
|
-
```
|
|
425
|
-
|
|
426
302
|
## Logging
|
|
427
303
|
|
|
428
304
|
### Local cli
|
|
@@ -439,21 +315,7 @@ When `GITHUB_ACTIONS=true`, the logger emits GitHub workflow commands automatica
|
|
|
439
315
|
- Defaults to `info` level; add `--verbose` (or temporarily set `ACTIONS_STEP_DEBUG=true`) to surface `debug` lines.
|
|
440
316
|
- `Logger.annotate(...)` escapes `%`, `\r`, and `\n`, then includes `file`, `line`, `endLine`, `col`, `endColumn`, and `title` metadata so annotations are clickable in the Checks UI.
|
|
441
317
|
- `startGroup`/`endGroup` become `::group::` / `::endgroup::` blocks.
|
|
442
|
-
- `CI_mask`, `CI_setEnvironmentVariable`, and `
|
|
318
|
+
- `CI_mask`, `CI_setEnvironmentVariable`, `CI_setOutput` and `CI_addPath` write to the corresponding GitHub-provided files when those features are configured.
|
|
443
319
|
- **Job summary (`GITHUB_STEP_SUMMARY`) is opt-in:** set `UNITY_CLI_WORKFLOW_SUMMARY` to `1`, `true`, `yes`, or `on` (case-insensitive) so `CI_appendWorkflowSummary` can append the rich markdown block from Unity log / UTP parsing. If unset, summary output is skipped (annotations and stdout behavior are unchanged).
|
|
444
320
|
|
|
445
321
|
The same command line you run locally therefore produces colorized console output on your machine and rich annotations once it runs inside Actions.
|
|
446
|
-
|
|
447
|
-
### Additional CI Environments
|
|
448
|
-
|
|
449
|
-
At the moment, only GitHub Actions is supported for enhanced logging. If you would like to see support for additional CI environments, please open a pull request or feature request on the GitHub repository.
|
|
450
|
-
|
|
451
|
-
#### Roadmap
|
|
452
|
-
|
|
453
|
-
- [ ] Support Azure DevOps logging commands
|
|
454
|
-
- [ ] Support GitLab CI logging commands
|
|
455
|
-
- [ ] Support Bitbucket Pipelines logging commands
|
|
456
|
-
- [ ] Support Jenkins logging commands
|
|
457
|
-
- [ ] Support CircleCI logging commands
|
|
458
|
-
- [ ] Support Travis CI logging commands
|
|
459
|
-
- [ ] Support TeamCity logging commands
|
package/dist/android-sdk.js
CHANGED
|
@@ -39,7 +39,14 @@ async function CheckAndroidSdkInstalled(editor, projectPath) {
|
|
|
39
39
|
const javaSdk = await getJDKPath(editor);
|
|
40
40
|
await execSdkManager(sdkManagerPath, javaSdk, ['--licenses']);
|
|
41
41
|
await execSdkManager(sdkManagerPath, javaSdk, ['--update']);
|
|
42
|
-
|
|
42
|
+
try {
|
|
43
|
+
await execSdkManager(sdkManagerPath, javaSdk, ['platform-tools', `platforms;android-${androidTargetSdk}`]);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
// sdkmanager sometimes fails to unzip a package it just downloaded; a second attempt downloads it again
|
|
47
|
+
logger.warn(`${error}\nRetrying the Android SDK install...`);
|
|
48
|
+
await execSdkManager(sdkManagerPath, javaSdk, ['platform-tools', `platforms;android-${androidTargetSdk}`]);
|
|
49
|
+
}
|
|
43
50
|
sdkPath = await getAndroidSdkPath(editor, androidTargetSdk);
|
|
44
51
|
if (!sdkPath) {
|
|
45
52
|
throw new Error(`Failed to install android-${androidTargetSdk} in ${editor.editorRootPath}`);
|
package/dist/android-sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-sdk.js","sourceRoot":"","sources":["../src/android-sdk.ts"],"names":[],"mappings":";;;;;AAqBA,
|
|
1
|
+
{"version":3,"file":"android-sdk.js","sourceRoot":"","sources":["../src/android-sdk.ts"],"names":[],"mappings":"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"}
|