@ludeo/cli 1.4.7 → 1.4.8
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 +52 -19
- package/README.npm.md +222 -0
- package/package.json +4 -2
- package/scripts/build-readme.js +54 -0
package/README.md
CHANGED
|
@@ -27,7 +27,33 @@ ludeo auth status
|
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
### 2. Upload Your Build
|
|
30
|
-
|
|
30
|
+
|
|
31
|
+
#### Interactive Mode (Recommended for First-Time Users)
|
|
32
|
+
Simply run the upload command without flags to start the interactive wizard:
|
|
33
|
+
```bash
|
|
34
|
+
ludeo builds upload
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The interactive mode will guide you through:
|
|
38
|
+
1. **Game ID** - Enter your game's unique identifier
|
|
39
|
+
2. **Build Creation Type** - Choose between `new`, or `sdkFree`
|
|
40
|
+
3. **Build Type** - Select `major` or `minor` (with warning for major builds)
|
|
41
|
+
4. **Major Version Selection** - If creating a minor build, select from existing major versions
|
|
42
|
+
5. **Game Version** - Enter the version number (e.g., 1.2.3)
|
|
43
|
+
6. **SDK Version** - Enter the Ludeo SDK version (not required for sdkFree)
|
|
44
|
+
7. **Executable Path** - Path to your game executable relative to build directory
|
|
45
|
+
8. **Local Directory** - Path to your build files
|
|
46
|
+
9. **Changes Description** - Optional description of what changed
|
|
47
|
+
|
|
48
|
+
Before uploading, you'll see a summary of all options and the equivalent CLI command for future use in scripts or CI/CD pipelines.
|
|
49
|
+
|
|
50
|
+
To disable interactive mode (for CI/CD or scripts):
|
|
51
|
+
```bash
|
|
52
|
+
ludeo builds upload --no-interactive [flags...]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### Command-Line Mode
|
|
56
|
+
Upload your game build with a simple command. The CLI supports two build creation types (**modification builds are not supported from the CLI—use [Studio Labs](https://studio.ludeo.com) for those**):
|
|
31
57
|
|
|
32
58
|
#### New Build (Complete build from scratch) - DEFAULT
|
|
33
59
|
```bash
|
|
@@ -52,21 +78,6 @@ ludeo builds upload \
|
|
|
52
78
|
--sdk-version "2.0.0"
|
|
53
79
|
```
|
|
54
80
|
|
|
55
|
-
#### Modification Build (Based on an existing build)
|
|
56
|
-
```bash
|
|
57
|
-
ludeo builds upload \
|
|
58
|
-
--game-id YOUR_GAME_ID \
|
|
59
|
-
--exec-path game.exe \
|
|
60
|
-
--local-directory ./builds \
|
|
61
|
-
--build-creation-type modification \
|
|
62
|
-
--build-type minor \
|
|
63
|
-
--game-version "1.2.4" \
|
|
64
|
-
--sdk-version "2.0.0" \
|
|
65
|
-
--base-build-id EXISTING_BUILD_ID \
|
|
66
|
-
--major-build-id MAJOR_BUILD_ID \
|
|
67
|
-
--changes-description "Minor bug fixes"
|
|
68
|
-
```
|
|
69
|
-
|
|
70
81
|
#### SDK Free Build (Performance testing without Ludeo SDK)
|
|
71
82
|
```bash
|
|
72
83
|
ludeo builds upload \
|
|
@@ -81,11 +92,12 @@ ludeo builds upload \
|
|
|
81
92
|
|
|
82
93
|
### 3. Build Types and Requirements
|
|
83
94
|
|
|
84
|
-
**Build Creation Types:**
|
|
95
|
+
**Build Creation Types (CLI):**
|
|
85
96
|
- `new`: Complete build from scratch (requires game-version, sdk-version, build-type) **[DEFAULT]**
|
|
86
|
-
- `modification`: Based on an existing build (requires base-build-id, game-version, sdk-version, build-type)
|
|
87
97
|
- `sdkFree`: Performance testing without Ludeo SDK (requires game-version, build-type; sdk-version not required)
|
|
88
98
|
|
|
99
|
+
**Note:** Modification builds (builds based on an existing build) are **not supported from the CLI**. Create modification builds from [Studio Labs](https://studio.ludeo.com) only.
|
|
100
|
+
|
|
89
101
|
**Build Types:**
|
|
90
102
|
- `major`: Major version build
|
|
91
103
|
- `minor`: Minor version build (requires major-build-id)
|
|
@@ -93,6 +105,26 @@ ludeo builds upload \
|
|
|
93
105
|
**Additional Flags:**
|
|
94
106
|
- `--runtime-environment`: Runtime environment (windows/proton) - only available for Ludeo admins
|
|
95
107
|
- `--request-id`: Optional request ID for tracking
|
|
108
|
+
- `--no-interactive`: Disable interactive prompts (for CI/CD or scripts)
|
|
109
|
+
- `--dry-run`: Preview the upload without making any changes
|
|
110
|
+
|
|
111
|
+
#### Dry-Run Mode
|
|
112
|
+
Preview what would be uploaded without making any changes:
|
|
113
|
+
```bash
|
|
114
|
+
ludeo builds upload --dry-run \
|
|
115
|
+
--game-id YOUR_GAME_ID \
|
|
116
|
+
--exec-path game.exe \
|
|
117
|
+
--local-directory ./builds \
|
|
118
|
+
--build-type major \
|
|
119
|
+
--game-version "1.2.3" \
|
|
120
|
+
--sdk-version "2.0.0"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Dry-run will:
|
|
124
|
+
- Validate all parameters and directory structure
|
|
125
|
+
- Scan and display all files that would be uploaded
|
|
126
|
+
- Show total file count and size
|
|
127
|
+
- NOT create any build metadata or upload files
|
|
96
128
|
|
|
97
129
|
### 4. Manage Builds
|
|
98
130
|
```bash
|
|
@@ -111,9 +143,11 @@ ludeo auth logout
|
|
|
111
143
|
|
|
112
144
|
## Features
|
|
113
145
|
|
|
146
|
+
- **Interactive Mode**: Guided wizard for easy build uploads - just run `ludeo builds upload` and follow the prompts
|
|
114
147
|
- **Easy Upload**: Upload complete game builds with a single command
|
|
115
148
|
- **Large File Support**: Automatically handles large files and multiple files
|
|
116
149
|
- **Progress Tracking**: Real-time progress updates during uploads
|
|
150
|
+
- **Dry-Run Mode**: Preview uploads without making changes using `--dry-run`
|
|
117
151
|
- **Cross-Platform**: Works on Windows, macOS, and Linux
|
|
118
152
|
- **Automatic Updates**: Keep your CLI up to date with npm
|
|
119
153
|
|
|
@@ -230,4 +264,3 @@ Need help? Here's how to get support:
|
|
|
230
264
|
3. Contact the Ludeo platform team for additional assistance
|
|
231
265
|
|
|
232
266
|
For detailed documentation and advanced usage, visit the [Ludeo Developer Portal](https://developers.ludeo.com).
|
|
233
|
-
|
package/README.npm.md
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Ludeo CLI
|
|
2
|
+
|
|
3
|
+
The official Ludeo CLI tool for uploading game builds to the Ludeo platform. Install via npm for easy setup and automatic updates.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @ludeo/cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Verify the installation:
|
|
12
|
+
```bash
|
|
13
|
+
ludeo version
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
### 1. Authentication
|
|
19
|
+
Get your access token from the Ludeo platform and save it:
|
|
20
|
+
```bash
|
|
21
|
+
ludeo auth set-token --access-token YOUR_ACCESS_TOKEN
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
You can also check if a token is saved:
|
|
25
|
+
```bash
|
|
26
|
+
ludeo auth status
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2. Upload Your Build
|
|
30
|
+
|
|
31
|
+
#### Interactive Mode (Recommended for First-Time Users)
|
|
32
|
+
Simply run the upload command without flags to start the interactive wizard:
|
|
33
|
+
```bash
|
|
34
|
+
ludeo builds upload
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The interactive mode will guide you through:
|
|
38
|
+
1. **Game ID** - Enter your game's unique identifier
|
|
39
|
+
2. **Build Creation Type** - Choose between `new`, or `sdkFree`
|
|
40
|
+
3. **Build Type** - Select `major` or `minor` (with warning for major builds)
|
|
41
|
+
4. **Major Version Selection** - If creating a minor build, select from existing major versions
|
|
42
|
+
5. **Game Version** - Enter the version number (e.g., 1.2.3)
|
|
43
|
+
6. **SDK Version** - Enter the Ludeo SDK version (not required for sdkFree)
|
|
44
|
+
7. **Executable Path** - Path to your game executable relative to build directory
|
|
45
|
+
8. **Local Directory** - Path to your build files
|
|
46
|
+
9. **Changes Description** - Optional description of what changed
|
|
47
|
+
|
|
48
|
+
Before uploading, you'll see a summary of all options and the equivalent CLI command for future use in scripts or CI/CD pipelines.
|
|
49
|
+
|
|
50
|
+
To disable interactive mode (for CI/CD or scripts):
|
|
51
|
+
```bash
|
|
52
|
+
ludeo builds upload --no-interactive [flags...]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### Command-Line Mode
|
|
56
|
+
Upload your game build with a simple command. The CLI supports two build creation types (**modification builds are not supported from the CLI—use [Studio Labs](https://studio.ludeo.com) for those**):
|
|
57
|
+
|
|
58
|
+
#### New Build (Complete build from scratch) - DEFAULT
|
|
59
|
+
```bash
|
|
60
|
+
# With explicit build-creation-type
|
|
61
|
+
ludeo builds upload \
|
|
62
|
+
--game-id YOUR_GAME_ID \
|
|
63
|
+
--exec-path game.exe \
|
|
64
|
+
--local-directory ./builds \
|
|
65
|
+
--build-creation-type new \
|
|
66
|
+
--build-type major \
|
|
67
|
+
--game-version "1.2.3" \
|
|
68
|
+
--sdk-version "2.0.0" \
|
|
69
|
+
--changes-description "Bug fixes and performance improvements"
|
|
70
|
+
|
|
71
|
+
# Or simply omit --build-creation-type (defaults to "new")
|
|
72
|
+
ludeo builds upload \
|
|
73
|
+
--game-id YOUR_GAME_ID \
|
|
74
|
+
--exec-path game.exe \
|
|
75
|
+
--local-directory ./builds \
|
|
76
|
+
--build-type major \
|
|
77
|
+
--game-version "1.2.3" \
|
|
78
|
+
--sdk-version "2.0.0"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### SDK Free Build (Performance testing without Ludeo SDK)
|
|
82
|
+
```bash
|
|
83
|
+
ludeo builds upload \
|
|
84
|
+
--game-id YOUR_GAME_ID \
|
|
85
|
+
--exec-path game.exe \
|
|
86
|
+
--local-directory ./builds \
|
|
87
|
+
--build-creation-type sdkFree \
|
|
88
|
+
--build-type major \
|
|
89
|
+
--game-version "1.2.3" \
|
|
90
|
+
--changes-description "Performance testing build"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 3. Build Types and Requirements
|
|
94
|
+
|
|
95
|
+
**Build Creation Types (CLI):**
|
|
96
|
+
- `new`: Complete build from scratch (requires game-version, sdk-version, build-type) **[DEFAULT]**
|
|
97
|
+
- `sdkFree`: Performance testing without Ludeo SDK (requires game-version, build-type; sdk-version not required)
|
|
98
|
+
|
|
99
|
+
**Note:** Modification builds (builds based on an existing build) are **not supported from the CLI**. Create modification builds from [Studio Labs](https://studio.ludeo.com) only.
|
|
100
|
+
|
|
101
|
+
**Build Types:**
|
|
102
|
+
- `major`: Major version build
|
|
103
|
+
- `minor`: Minor version build (requires major-build-id)
|
|
104
|
+
|
|
105
|
+
**Additional Flags:**
|
|
106
|
+
- `--runtime-environment`: Runtime environment (windows/proton) - only available for Ludeo admins
|
|
107
|
+
- `--request-id`: Optional request ID for tracking
|
|
108
|
+
- `--no-interactive`: Disable interactive prompts (for CI/CD or scripts)
|
|
109
|
+
- `--dry-run`: Preview the upload without making any changes
|
|
110
|
+
|
|
111
|
+
#### Dry-Run Mode
|
|
112
|
+
Preview what would be uploaded without making any changes:
|
|
113
|
+
```bash
|
|
114
|
+
ludeo builds upload --dry-run \
|
|
115
|
+
--game-id YOUR_GAME_ID \
|
|
116
|
+
--exec-path game.exe \
|
|
117
|
+
--local-directory ./builds \
|
|
118
|
+
--build-type major \
|
|
119
|
+
--game-version "1.2.3" \
|
|
120
|
+
--sdk-version "2.0.0"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Dry-run will:
|
|
124
|
+
- Validate all parameters and directory structure
|
|
125
|
+
- Scan and display all files that would be uploaded
|
|
126
|
+
- Show total file count and size
|
|
127
|
+
- NOT create any build metadata or upload files
|
|
128
|
+
|
|
129
|
+
### 4. Manage Builds
|
|
130
|
+
```bash
|
|
131
|
+
# List your builds
|
|
132
|
+
ludeo builds list --game-id YOUR_GAME_ID
|
|
133
|
+
|
|
134
|
+
# Get build details
|
|
135
|
+
ludeo builds get --game-id YOUR_GAME_ID --build-id BUILD_ID
|
|
136
|
+
|
|
137
|
+
# Check if token is saved
|
|
138
|
+
ludeo auth status
|
|
139
|
+
|
|
140
|
+
# Remove saved token when done
|
|
141
|
+
ludeo auth logout
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Features
|
|
145
|
+
|
|
146
|
+
- **Interactive Mode**: Guided wizard for easy build uploads - just run `ludeo builds upload` and follow the prompts
|
|
147
|
+
- **Easy Upload**: Upload complete game builds with a single command
|
|
148
|
+
- **Large File Support**: Automatically handles large files and multiple files
|
|
149
|
+
- **Progress Tracking**: Real-time progress updates during uploads
|
|
150
|
+
- **Dry-Run Mode**: Preview uploads without making changes using `--dry-run`
|
|
151
|
+
- **Cross-Platform**: Works on Windows, macOS, and Linux
|
|
152
|
+
- **Automatic Updates**: Keep your CLI up to date with npm
|
|
153
|
+
|
|
154
|
+
## Updating
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npm update -g @ludeo/cli
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## CI/CD Integration
|
|
161
|
+
|
|
162
|
+
### GitHub Actions
|
|
163
|
+
```yaml
|
|
164
|
+
- name: Install Ludeo CLI
|
|
165
|
+
run: npm install -g @ludeo/cli
|
|
166
|
+
|
|
167
|
+
- name: Upload Build
|
|
168
|
+
run: |
|
|
169
|
+
ludeo auth set-token --access-token ${{ secrets.LUDEO_ACCESS_TOKEN }}
|
|
170
|
+
ludeo builds upload \
|
|
171
|
+
--game-id ${{ env.GAME_ID }} \
|
|
172
|
+
--exec-path game.exe \
|
|
173
|
+
--local-directory ./builds \
|
|
174
|
+
--build-creation-type new \
|
|
175
|
+
--build-type major \
|
|
176
|
+
--game-version ${{ env.GAME_VERSION }} \
|
|
177
|
+
--sdk-version ${{ env.SDK_VERSION }}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Troubleshooting
|
|
181
|
+
|
|
182
|
+
### Installation Issues
|
|
183
|
+
|
|
184
|
+
**Binary not found error:**
|
|
185
|
+
```bash
|
|
186
|
+
npm rebuild @ludeo/cli
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Permission issues (macOS/Linux):**
|
|
190
|
+
```bash
|
|
191
|
+
sudo npm install -g @ludeo/cli
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Windows issues:**
|
|
195
|
+
- Run PowerShell as Administrator
|
|
196
|
+
- Ensure Node.js is properly installed
|
|
197
|
+
|
|
198
|
+
### Common Issues
|
|
199
|
+
|
|
200
|
+
**Authentication errors:**
|
|
201
|
+
- Verify your access token is valid
|
|
202
|
+
- Check if token is saved with `ludeo auth status`
|
|
203
|
+
- Make sure you've saved your token with `ludeo auth set-token`
|
|
204
|
+
|
|
205
|
+
**Upload failures:**
|
|
206
|
+
- Ensure your build directory exists and is readable
|
|
207
|
+
- Check your internet connection
|
|
208
|
+
- Verify file paths are correct
|
|
209
|
+
|
|
210
|
+
**Large files:**
|
|
211
|
+
- Large files may take time to upload
|
|
212
|
+
- Ensure stable internet connection
|
|
213
|
+
|
|
214
|
+
## Support
|
|
215
|
+
|
|
216
|
+
Need help? Here's how to get support:
|
|
217
|
+
|
|
218
|
+
1. Check this README and troubleshooting section
|
|
219
|
+
2. Run `npm rebuild @ludeo/cli` if you encounter issues
|
|
220
|
+
3. Contact the Ludeo platform team for additional assistance
|
|
221
|
+
|
|
222
|
+
For detailed documentation and advanced usage, visit the [Ludeo Developer Portal](https://developers.ludeo.com).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ludeo/cli",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.8",
|
|
4
4
|
"description": "Ludeo CLI - Upload game builds and manage content on the Ludeo platform",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"author": "Ludeo Team",
|
|
28
28
|
"license": "MIT",
|
|
29
|
+
"readme": "README.npm.md",
|
|
29
30
|
"repository": {
|
|
30
31
|
"type": "git",
|
|
31
32
|
"url": "git+https://github.com/ludeo/cli.git"
|
|
@@ -37,7 +38,8 @@
|
|
|
37
38
|
"bin/",
|
|
38
39
|
"dist/",
|
|
39
40
|
"scripts/",
|
|
40
|
-
"LICENSE"
|
|
41
|
+
"LICENSE",
|
|
42
|
+
"README.npm.md"
|
|
41
43
|
],
|
|
42
44
|
"os": [
|
|
43
45
|
"win32",
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Build README variants from docs/readme/*.md fragments.
|
|
4
|
+
* - README.md = full (repo, includes Testing) — for GitHub
|
|
5
|
+
* - README.npm.md = usage only (no Testing) — for NPM package page
|
|
6
|
+
*
|
|
7
|
+
* Run: node scripts/build-readme.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const fs = require('fs');
|
|
11
|
+
const path = require('path');
|
|
12
|
+
|
|
13
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
14
|
+
const README_DIR = path.join(ROOT, 'docs', 'readme');
|
|
15
|
+
|
|
16
|
+
const FRAGMENTS_ORDER = [
|
|
17
|
+
'01-title-intro.md',
|
|
18
|
+
'02-installation.md',
|
|
19
|
+
'03-quick-start.md',
|
|
20
|
+
'04-features.md',
|
|
21
|
+
'05-testing.md',
|
|
22
|
+
'06-updating.md',
|
|
23
|
+
'07-cicd.md',
|
|
24
|
+
'08-troubleshooting.md',
|
|
25
|
+
'09-support.md',
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const NPM_EXCLUDE = new Set(['05-testing.md']);
|
|
29
|
+
|
|
30
|
+
function buildVariant(excludeSet) {
|
|
31
|
+
const parts = [];
|
|
32
|
+
for (const name of FRAGMENTS_ORDER) {
|
|
33
|
+
if (excludeSet && excludeSet.has(name)) continue;
|
|
34
|
+
const file = path.join(README_DIR, name);
|
|
35
|
+
if (!fs.existsSync(file)) {
|
|
36
|
+
console.warn(`Warning: fragment missing: ${name}`);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
parts.push(fs.readFileSync(file, 'utf8').trim());
|
|
40
|
+
}
|
|
41
|
+
return parts.join('\n\n');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function main() {
|
|
45
|
+
const repoReadme = buildVariant(null);
|
|
46
|
+
const npmReadme = buildVariant(NPM_EXCLUDE);
|
|
47
|
+
|
|
48
|
+
fs.writeFileSync(path.join(ROOT, 'README.md'), repoReadme + '\n', 'utf8');
|
|
49
|
+
fs.writeFileSync(path.join(ROOT, 'README.npm.md'), npmReadme + '\n', 'utf8');
|
|
50
|
+
|
|
51
|
+
console.log('Built README.md (repo, full) and README.npm.md (npm, usage only)');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
main();
|