mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 17:52:36 +00:00
[MIRROR] Check node version in CBT (#3946)
* Check node version in CBT (#57461) * Check node version in CBT Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
This commit is contained in:
2
.github/RUNNING_A_SERVER.md
vendored
2
.github/RUNNING_A_SERVER.md
vendored
@@ -4,7 +4,7 @@ BYOND installed. You can get it from https://www.byond.com/download. Once you've
|
|||||||
that, extract the game files to wherever you want to keep them. This is a
|
that, extract the game files to wherever you want to keep them. This is a
|
||||||
sourcecode-only release, so the next step is to compile the server files.
|
sourcecode-only release, so the next step is to compile the server files.
|
||||||
|
|
||||||
Double-click `Build.bat` in the root directory of the source code. This'll take
|
Double-click `BUILD.bat` in the root directory of the source code. This'll take
|
||||||
a little while, and if everything's done right you'll get a message like this:
|
a little while, and if everything's done right you'll get a message like this:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -33,6 +33,18 @@ Space Station 13 is a paranoia-laden round-based roleplaying game set against th
|
|||||||
|
|
||||||
[Maps and Away Missions](.github/MAPS_AND_AWAY_MISSIONS.md)
|
[Maps and Away Missions](.github/MAPS_AND_AWAY_MISSIONS.md)
|
||||||
|
|
||||||
|
## :exclamation: How to compile :exclamation:
|
||||||
|
|
||||||
|
On **2021-01-04** we have changed the way to compile the codebase.
|
||||||
|
|
||||||
|
Find `BUILD.bat` here in the root folder of tgstation, and double click it to initiate the build. It consists of multiple steps and might take around 1-5 minutes to compile.
|
||||||
|
|
||||||
|
After it finishes, you can then [setup the server](.github/RUNNING_A_SERVER.md) normally by opening `tgstation.dmb` in DreamDaemon.
|
||||||
|
|
||||||
|
**Building tgstation in DreamMaker directly is now deprecated and might produce errors**, such as `'tgui.bundle.js': cannot find file`.
|
||||||
|
|
||||||
|
**[How to compile in VSCode and other build options](tools/build/README.md).**
|
||||||
|
|
||||||
## Requirements for contributors
|
## Requirements for contributors
|
||||||
[Guidelines for Contributors](.github/CONTRIBUTING.md)
|
[Guidelines for Contributors](.github/CONTRIBUTING.md)
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ function Download-Node {
|
|||||||
if (Test-Path $NodeTarget -PathType Leaf) {
|
if (Test-Path $NodeTarget -PathType Leaf) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
Write-Output "Downloading Node v$NodeVersion"
|
Write-Output "Downloading Node v$NodeVersion (may take a while)"
|
||||||
New-Item $NodeTargetDir -ItemType Directory -ErrorAction silentlyContinue | Out-Null
|
New-Item $NodeTargetDir -ItemType Directory -ErrorAction silentlyContinue | Out-Null
|
||||||
$WebClient = New-Object Net.WebClient
|
$WebClient = New-Object Net.WebClient
|
||||||
$WebClient.DownloadFile($NodeSource, $NodeTarget)
|
$WebClient.DownloadFile($NodeSource, $NodeTarget)
|
||||||
|
|||||||
@@ -2,18 +2,20 @@
|
|||||||
|
|
||||||
This build script is the recommended way to compile the game, including not only the DM code but also the JavaScript and any other dependencies.
|
This build script is the recommended way to compile the game, including not only the DM code but also the JavaScript and any other dependencies.
|
||||||
|
|
||||||
- VSCode: use `Ctrl+Shift+B` to build or `F5` to build and run.
|
- VSCode:
|
||||||
|
a) Press `Ctrl+Shift+B` to build.
|
||||||
- Windows: double-click `Build.bat` in the repository root to build.
|
b) Press `F5` to build and run with debugger attached.
|
||||||
|
- Windows:
|
||||||
- Linux: run `tools/build/build` from the repository root.
|
a) Double-click `BUILD.bat` in the repository root to build (will wait for a key press before it closes).
|
||||||
|
b) Double-click `tools/build/build.bat` to build (will exit as soon as it finishes building).
|
||||||
|
- Linux:
|
||||||
|
a) Run `tools/build/build` from the repository root.
|
||||||
|
|
||||||
The script will skip build steps whose inputs have not changed since the last run.
|
The script will skip build steps whose inputs have not changed since the last run.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
- On Windows, `Build.bat` will automatically install a private copy of Node.
|
- On Windows, `BUILD.bat` will automatically install a private (vendored) copy of Node.
|
||||||
|
|
||||||
- On Linux, install Node using your package manager or from <https://nodejs.org/en/download/>.
|
- On Linux, install Node using your package manager or from <https://nodejs.org/en/download/>.
|
||||||
|
|
||||||
## Why?
|
## Why?
|
||||||
|
|||||||
@@ -5,15 +5,30 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const { resolve: resolvePath } = require('path');
|
// Change working directory to project root
|
||||||
|
process.chdir(require('path').resolve(__dirname, '../../'));
|
||||||
|
|
||||||
|
// Validate NodeJS version
|
||||||
|
const NODE_VERSION = parseInt(process.versions.node.match(/(\d+)/)[1]);
|
||||||
|
const NODE_VERSION_TARGET = parseInt(require('fs')
|
||||||
|
.readFileSync('dependencies.sh', 'utf-8')
|
||||||
|
.match(/NODE_VERSION=(\d+)/)[1]);
|
||||||
|
if (NODE_VERSION < NODE_VERSION_TARGET) {
|
||||||
|
console.error('Your current Node.js version is out of date.');
|
||||||
|
console.error('You have two options:');
|
||||||
|
console.error(' a) Go to https://nodejs.org/ and install the latest LTS release of Node.js');
|
||||||
|
console.error(' b) Uninstall Node.js (our build system automatically downloads one)');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main
|
||||||
|
// --------------------------------------------------------
|
||||||
|
|
||||||
const { resolveGlob, stat } = require('./cbt/fs');
|
const { resolveGlob, stat } = require('./cbt/fs');
|
||||||
const { exec } = require('./cbt/process');
|
const { exec } = require('./cbt/process');
|
||||||
const { Task, runTasks } = require('./cbt/task');
|
const { Task, runTasks } = require('./cbt/task');
|
||||||
const { regQuery } = require('./cbt/winreg');
|
const { regQuery } = require('./cbt/winreg');
|
||||||
|
|
||||||
// Change working directory to project root
|
|
||||||
process.chdir(resolvePath(__dirname, '../../'));
|
|
||||||
|
|
||||||
const taskTgui = new Task('tgui')
|
const taskTgui = new Task('tgui')
|
||||||
.depends('tgui/.yarn/releases/*')
|
.depends('tgui/.yarn/releases/*')
|
||||||
.depends('tgui/.yarn/install-state.gz')
|
.depends('tgui/.yarn/install-state.gz')
|
||||||
|
|||||||
Reference in New Issue
Block a user