-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Added n as a local npm dependency * Fixed an issue where install-gui.sh failed due to incompatible npm version * Updated tab spaces * Fixed for nodejs@3 environment * Fixed a minor issue * Install compatible npm locally if it's missing * Updated start-gui.sh * Fixed a minor issue * Install npm localy if it's missing for BSD OSes * Replaced tabs to spaces * Added missing new line
- Loading branch information
1 parent
92fc34c
commit 1a815df
Showing
5 changed files
with
177 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"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": "^8.0.2" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,67 +2,130 @@ | |
set -e | ||
export NODE_OPTIONS="--max-old-space-size=3000" | ||
|
||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) | ||
SCRIPT_DIR=$(dirname "$(readlink -f "$0")") | ||
|
||
if [ "${SCRIPT_DIR}" != "$(pwd)" ]; then | ||
echo "Please change working directory by the command below" | ||
echo " cd ${SCRIPT_DIR}" | ||
exit 1 | ||
fi | ||
|
||
if [ -z "$VIRTUAL_ENV" ]; then | ||
echo "This requires the chia python virtual environment." | ||
echo "Execute '. ./activate' before running." | ||
exit 1 | ||
exit 1 | ||
fi | ||
|
||
if [ "$(id -u)" = 0 ]; then | ||
echo "The Chia Blockchain GUI can not be installed or run by the root user." | ||
exit 1 | ||
exit 1 | ||
fi | ||
|
||
# Allows overriding the branch or commit to build in chia-blockchain-gui | ||
SUBMODULE_BRANCH=$1 | ||
|
||
install_npm_locally(){ | ||
NPM_VERSION="$(npm -v | cut -d'.' -f 1)" | ||
if [ "$NPM_VERSION" -lt "7" ]; then | ||
echo "Current npm version($(npm -v)) is less than 7. GUI app requires npm>=7." | ||
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 [email protected] | ||
# 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 | ||
export PATH="${N_PREFIX}/bin:$(npm bin):${PATH}" | ||
echo "n 16" | ||
n 16 | ||
echo "Current npm version: $(npm -v)" | ||
if [ "$(npm -v | cut -d'.' -f 1)" -lt "7" ]; then | ||
echo "Error: Failed to install npm>=7" | ||
exit 1 | ||
fi | ||
cd "${SCRIPT_DIR}" | ||
else | ||
echo "Found npm $(npm -v)" | ||
fi | ||
} | ||
|
||
UBUNTU=false | ||
# Manage npm and other install requirements on an OS specific basis | ||
if [ "$(uname)" = "Linux" ]; then | ||
#LINUX=1 | ||
if type apt-get; then | ||
# Debian/Ubuntu | ||
UBUNTU=true | ||
|
||
# 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 | ||
sudo apt-get install -y npm nodejs libxss1 | ||
sudo npm install -g n | ||
export N_PREFIX=${SCRIPT_DIR}/.n | ||
n stable | ||
fi | ||
elif type yum && [ ! -f "/etc/redhat-release" ] && [ ! -f "/etc/centos-release" ] && [ ! -f /etc/rocky-release ] && [ ! -f /etc/fedora-release ]; then | ||
# AMZN 2 | ||
echo "Installing on Amazon Linux 2." | ||
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - | ||
sudo yum install -y nodejs | ||
elif type yum && [ ! -f /etc/rocky-release ] && [ ! -f /etc/fedora-release ] && [ -f /etc/redhat-release ] || [ -f /etc/centos-release ]; then | ||
# CentOS or Redhat | ||
echo "Installing on CentOS/Redhat." | ||
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - | ||
sudo yum install -y nodejs | ||
elif type yum && [ -f /etc/rocky-release ] || [ -f /etc/fedora-release ]; then | ||
# RockyLinux | ||
echo "Installing on RockyLinux/Fedora" | ||
sudo dnf module enable nodejs:12 | ||
sudo dnf install -y nodejs | ||
fi | ||
|
||
elif [ "$(uname)" = "Darwin" ] && type brew && ! npm version >/dev/null 2>&1; then | ||
# Install npm if not installed | ||
brew install npm | ||
#LINUX=1 | ||
if type apt-get; then | ||
# Debian/Ubuntu | ||
UBUNTU=true | ||
|
||
# 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 ! npm version >/dev/null 2>&1; then | ||
# If npm/node is not installed, install them | ||
echo "nodejs is not installed. Installing..." | ||
echo "sudo apt-get install -y npm nodejs libxss1" | ||
sudo apt-get install -y npm nodejs libxss1 | ||
fi | ||
|
||
install_npm_locally | ||
fi | ||
elif type yum && [ ! -f "/etc/redhat-release" ] && [ ! -f "/etc/centos-release" ] && [ ! -f /etc/rocky-release ] && [ ! -f /etc/fedora-release ]; then | ||
# AMZN 2 | ||
if ! npm version >/dev/null 2>&1; then | ||
# If npm/node is not installed, install them | ||
echo "Installing nodejs on Amazon Linux 2." | ||
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - | ||
sudo yum install -y nodejs | ||
fi | ||
|
||
install_npm_locally | ||
elif type yum && [ ! -f /etc/rocky-release ] && [ ! -f /etc/fedora-release ] && [ -f /etc/redhat-release ] || [ -f /etc/centos-release ]; then | ||
# CentOS or Redhat | ||
if ! npm version >/dev/null 2>&1; then | ||
# If npm/node is not installed, install them | ||
echo "Installing nodejs on CentOS/Redhat." | ||
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - | ||
sudo yum install -y nodejs | ||
fi | ||
|
||
install_npm_locally | ||
elif type yum && [ -f /etc/rocky-release ] || [ -f /etc/fedora-release ]; then | ||
# RockyLinux | ||
if ! npm version >/dev/null 2>&1; then | ||
# If npm/node is not installed, install them | ||
echo "Installing nodejs on RockyLinux/Fedora" | ||
sudo dnf module enable nodejs:12 | ||
sudo dnf install -y nodejs | ||
fi | ||
|
||
install_npm_locally | ||
fi | ||
elif [ "$(uname)" = "Darwin" ] && type brew; then | ||
if ! npm version >/dev/null 2>&1; then | ||
# If npm/node is not installed, install them | ||
echo "Installing nodejs on MacOS" | ||
brew install npm | ||
fi | ||
|
||
install_npm_locally | ||
elif [ "$(uname)" = "OpenBSD" ]; then | ||
pkg_add node | ||
pkg_add node | ||
install_npm_locally | ||
elif [ "$(uname)" = "FreeBSD" ]; then | ||
pkg install node | ||
pkg install node | ||
install_npm_locally | ||
fi | ||
|
||
echo "" | ||
|
@@ -71,30 +134,30 @@ echo "" | |
# Pipelines directly, so skip unless you are completing a source/developer install. | ||
# Ubuntu special cases above. | ||
if [ ! "$CI" ]; then | ||
echo "Running git submodule update --init --recursive." | ||
echo "" | ||
git submodule update --init --recursive | ||
echo "Running git submodule update." | ||
echo "" | ||
git submodule update | ||
cd chia-blockchain-gui | ||
|
||
if [ "$SUBMODULE_BRANCH" ]; | ||
then | ||
echo "Running git submodule update --init --recursive." | ||
echo "" | ||
git submodule update --init --recursive | ||
echo "Running git submodule update." | ||
echo "" | ||
git submodule update | ||
cd chia-blockchain-gui | ||
|
||
if [ "$SUBMODULE_BRANCH" ]; | ||
then | ||
git fetch | ||
git checkout "$SUBMODULE_BRANCH" | ||
git checkout "$SUBMODULE_BRANCH" | ||
git pull | ||
echo "" | ||
echo "Building the GUI with branch $SUBMODULE_BRANCH" | ||
echo "" | ||
fi | ||
|
||
npm ci | ||
npm audit fix || true | ||
npm run build | ||
python ../installhelper.py | ||
echo "" | ||
echo "Building the GUI with branch $SUBMODULE_BRANCH" | ||
echo "" | ||
fi | ||
|
||
npm ci | ||
npm audit fix || true | ||
npm run build | ||
python ../installhelper.py | ||
else | ||
echo "Skipping node.js in install.sh on MacOS ci." | ||
echo "Skipping node.js in install.sh on MacOS ci." | ||
fi | ||
|
||
echo "" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters