mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2026-08-24 02:24:23 -05:00
Remove scripting that attempts to find and install node (#20082)
* Remove scripting that attempts to find and install node * Remove using direction in start-gui.sh * Remove unneeded npm_global files - only used to install node * Handle guess where node or npm is not installed * Add setup-node to test scripts workflow * make sure to checkout submodules
This commit is contained in:
@@ -77,12 +77,18 @@ jobs:
|
|||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
- name: Setup Python environment
|
- name: Setup Python environment
|
||||||
uses: Chia-Network/actions/setup-python@main
|
uses: Chia-Network/actions/setup-python@main
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python.major-dot-minor }}
|
python-version: ${{ matrix.python.major-dot-minor }}
|
||||||
|
|
||||||
|
- name: Setup Node per .nvmrc in GUI
|
||||||
|
uses: actions/setup-node@v5
|
||||||
|
with:
|
||||||
|
node-version-file: chia-blockchain-gui/.nvmrc
|
||||||
|
|
||||||
- uses: ./.github/actions/install
|
- uses: ./.github/actions/install
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python.major-dot-minor }}
|
python-version: ${{ matrix.python.major-dot-minor }}
|
||||||
|
|||||||
-30
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "npm_global",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"lockfileVersion": 3,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"name": "npm_global",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"license": "ISC",
|
|
||||||
"dependencies": {
|
|
||||||
"n": "^10.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/n": {
|
|
||||||
"version": "10.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/n/-/n-10.2.0.tgz",
|
|
||||||
"integrity": "sha512-zlLXwSEMQgAHmsXtcZwNuA2W5rLdAJyg51DI47ubDWE0Bss0ji9sbK3eD6vM7kKgRLTFm/i4+FvE4SXvphaSHg==",
|
|
||||||
"os": [
|
|
||||||
"!win32"
|
|
||||||
],
|
|
||||||
"bin": {
|
|
||||||
"n": "bin/n"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "npm_global",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "",
|
|
||||||
"main": "index.js",
|
|
||||||
"scripts": {
|
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
|
||||||
},
|
|
||||||
"keywords": [],
|
|
||||||
"author": "",
|
|
||||||
"license": "ISC",
|
|
||||||
"dependencies": {
|
|
||||||
"n": "^10.2.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+12
-115
@@ -29,14 +29,17 @@ fi
|
|||||||
# Allows overriding the branch or commit to build in chia-blockchain-gui
|
# Allows overriding the branch or commit to build in chia-blockchain-gui
|
||||||
SUBMODULE_BRANCH=$1
|
SUBMODULE_BRANCH=$1
|
||||||
|
|
||||||
nodejs_is_installed() {
|
do_check_npm_install() {
|
||||||
if ! npm version >/dev/null 2>&1; then
|
if ! command -v npm >/dev/null 2>&1; then
|
||||||
return 1
|
echo "npm is not installed. Please install NodeJS>=20 and npm>=10 manually"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v node >/dev/null 2>&1; then
|
||||||
|
echo "NodeJS is not installed. Please install NodeJS>=20 and npm>=10 manually"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install_npm_locally() {
|
|
||||||
NODEJS_VERSION="$(node -v | cut -d'.' -f 1 | sed -e 's/^v//')"
|
NODEJS_VERSION="$(node -v | cut -d'.' -f 1 | sed -e 's/^v//')"
|
||||||
NPM_VERSION="$(npm -v | cut -d'.' -f 1)"
|
NPM_VERSION="$(npm -v | cut -d'.' -f 1)"
|
||||||
|
|
||||||
@@ -48,42 +51,8 @@ do_install_npm_locally() {
|
|||||||
echo "Current npm version($(npm -v)) is less than 10. GUI app requires npm>=10."
|
echo "Current npm version($(npm -v)) is less than 10. GUI app requires npm>=10."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$(uname)" = "OpenBSD" ] || [ "$(uname)" = "FreeBSD" ]; then
|
echo "Please install NodeJS>=20 and/or npm>=10 manually"
|
||||||
# `n` package does not support OpenBSD/FreeBSD
|
exit 1
|
||||||
echo "Please install NodeJS>=20 and/or npm>=10 manually"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
NPM_GLOBAL="${SCRIPT_DIR}/build_scripts/npm_global"
|
|
||||||
# install-gui.sh can be executed
|
|
||||||
echo "cd ${NPM_GLOBAL}"
|
|
||||||
cd "${NPM_GLOBAL}"
|
|
||||||
if [ "$NPM_VERSION" -lt "6" ]; then
|
|
||||||
# Ubuntu image of Amazon ec2 instance surprisingly uses nodejs@3.5.2
|
|
||||||
# which doesn't support `npm ci` as of 27th Jan, 2022
|
|
||||||
echo "npm install"
|
|
||||||
npm install
|
|
||||||
else
|
|
||||||
echo "npm ci"
|
|
||||||
npm ci
|
|
||||||
fi
|
|
||||||
export N_PREFIX=${SCRIPT_DIR}/.n
|
|
||||||
PATH="${N_PREFIX}/bin:$(npm prefix)/node_modules/.bin:${PATH}"
|
|
||||||
export PATH
|
|
||||||
# `n 20` here installs nodejs@20 under $N_PREFIX directory
|
|
||||||
echo "n 20"
|
|
||||||
n 20
|
|
||||||
echo "Current NodeJS version: $(node -v)"
|
|
||||||
echo "Current npm version: $(npm -v)"
|
|
||||||
if [ "$(node -v | cut -d'.' -f 1 | sed -e 's/^v//')" -lt "20" ]; then
|
|
||||||
echo "Error: Failed to install NodeJS>=20"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ "$(npm -v | cut -d'.' -f 1)" -lt "10" ]; then
|
|
||||||
echo "Error: Failed to install npm>=10"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
cd "${SCRIPT_DIR}"
|
|
||||||
else
|
else
|
||||||
echo "Found NodeJS $(node -v)"
|
echo "Found NodeJS $(node -v)"
|
||||||
echo "Found npm $(npm -v)"
|
echo "Found npm $(npm -v)"
|
||||||
@@ -106,79 +75,7 @@ patch_inconsistent_npm_issue() {
|
|||||||
ln -s "$(command -v npm)" "${node_module_dir}/.bin/npm"
|
ln -s "$(command -v npm)" "${node_module_dir}/.bin/npm"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Manage npm and other install requirements on an OS specific basis
|
do_check_npm_install
|
||||||
if [ "$(uname)" = "Linux" ]; then
|
|
||||||
#LINUX=1
|
|
||||||
if type apt-get >/dev/null 2>&1; then
|
|
||||||
# Debian/Ubuntu
|
|
||||||
|
|
||||||
# Check if we are running a Raspberry PI 4
|
|
||||||
if [ "$(uname -m)" = "aarch64" ] &&
|
|
||||||
[ "$(uname -n)" = "raspberrypi" ]; then
|
|
||||||
# Check if NodeJS & NPM is installed
|
|
||||||
type npm >/dev/null 2>&1 || {
|
|
||||||
echo >&2 "Please install NODEJS&NPM manually"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
if ! nodejs_is_installed; then
|
|
||||||
echo "nodejs is not installed. Installing..."
|
|
||||||
echo "sudo apt-get install -y npm nodejs libxss1"
|
|
||||||
sudo apt-get install -y npm nodejs libxss1
|
|
||||||
fi
|
|
||||||
do_install_npm_locally
|
|
||||||
fi
|
|
||||||
elif type yum >/dev/null 2>&1 && [ ! -f "/etc/redhat-release" ] && [ ! -f "/etc/centos-release" ] && [ ! -f /etc/rocky-release ] && [ ! -f /etc/fedora-release ]; then
|
|
||||||
# AMZN 2
|
|
||||||
if ! nodejs_is_installed; then
|
|
||||||
echo "Installing nodejs on Amazon Linux 2."
|
|
||||||
curl -sL https://rpm.nodesource.com/setup_20.x | sudo bash -
|
|
||||||
sudo yum install -y nodejs
|
|
||||||
fi
|
|
||||||
do_install_npm_locally
|
|
||||||
elif type yum >/dev/null 2>&1 && [ ! -f /etc/rocky-release ] && [ ! -f /etc/fedora-release ] && [ -f /etc/redhat-release ] || [ -f /etc/centos-release ]; then
|
|
||||||
# CentOS or Redhat
|
|
||||||
if ! nodejs_is_installed; then
|
|
||||||
echo "Installing nodejs on CentOS/Redhat."
|
|
||||||
curl -sL https://rpm.nodesource.com/setup_20.x | sudo bash -
|
|
||||||
sudo yum install -y nodejs
|
|
||||||
fi
|
|
||||||
do_install_npm_locally
|
|
||||||
elif type yum >/dev/null 2>&1 && [ -f /etc/rocky-release ] || [ -f /etc/fedora-release ]; then
|
|
||||||
# RockyLinux
|
|
||||||
if ! nodejs_is_installed; then
|
|
||||||
echo "Installing nodejs on RockyLinux/Fedora"
|
|
||||||
sudo dnf module enable nodejs:20
|
|
||||||
sudo dnf install -y nodejs
|
|
||||||
fi
|
|
||||||
do_install_npm_locally
|
|
||||||
elif type pacman >/dev/null 2>&1 && [ -f /etc/arch-release ]; then
|
|
||||||
#Arch Linux
|
|
||||||
if ! nodejs_is_installed; then
|
|
||||||
echo "Installing nodejs on Arch Linux"
|
|
||||||
sudo pacman -S nodejs npm
|
|
||||||
fi
|
|
||||||
do_install_npm_locally
|
|
||||||
fi
|
|
||||||
elif [ "$(uname)" = "Darwin" ] && type brew >/dev/null 2>&1; then
|
|
||||||
# MacOS
|
|
||||||
if ! nodejs_is_installed; then
|
|
||||||
echo "Installing nodejs on MacOS"
|
|
||||||
brew install npm
|
|
||||||
fi
|
|
||||||
do_install_npm_locally
|
|
||||||
elif [ "$(uname)" = "OpenBSD" ]; then
|
|
||||||
if ! nodejs_is_installed; then
|
|
||||||
echo "Installing nodejs"
|
|
||||||
pkg_add node
|
|
||||||
fi
|
|
||||||
do_install_npm_locally
|
|
||||||
elif [ "$(uname)" = "FreeBSD" ]; then
|
|
||||||
if ! nodejs_is_installed; then
|
|
||||||
echo "Installing nodejs"
|
|
||||||
pkg install node
|
|
||||||
fi
|
|
||||||
do_install_npm_locally
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
|||||||
@@ -11,13 +11,6 @@ SCRIPT_DIR=$(
|
|||||||
|
|
||||||
echo "### Checking GUI dependencies"
|
echo "### Checking GUI dependencies"
|
||||||
|
|
||||||
if [ -d "${SCRIPT_DIR}/.n" ]; then
|
|
||||||
export N_PREFIX="${SCRIPT_DIR}/.n"
|
|
||||||
export PATH="${N_PREFIX}/bin:${PATH}"
|
|
||||||
echo "Loading nodejs/npm from"
|
|
||||||
echo " ${N_PREFIX}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$VIRTUAL_ENV" ]; then
|
if [ -z "$VIRTUAL_ENV" ]; then
|
||||||
echo "This requires the chia python virtual environment."
|
echo "This requires the chia python virtual environment."
|
||||||
echo "Execute '. ./activate' before running."
|
echo "Execute '. ./activate' before running."
|
||||||
|
|||||||
Reference in New Issue
Block a user