Last active
November 24, 2020 15:33
-
-
Save lukebayes/84b46f8bf624fbfd63dec9bcc3cb0ffe to your computer and use it in GitHub Desktop.
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
########################################################### | |
# Build script | |
########################################################### | |
PROJECTNAME=aspen | |
ROOTDIR=$(shell git rev-parse --show-toplevel) | |
# make dev-install ARCH=armv7l to get the right version of nodejs | |
# Ubuntu desktop is "x86_64", Raspberry Pi is "armv7l", Nodejs | |
# requires "x86_64" to be "x64" | |
ARCH:=$(shell arch | sed "s/86_//g") | |
PLATFORM:=$(shell uname | tr A-Z a-z) | |
DATADIR=/var/data/storymachine/cypress/js/$(PROJECTNAME) | |
DEV_DATADIR=${ROOTDIR}/js/$(PROJECTNAME)/data | |
# Nodejs | |
NODE=lib/nodejs/bin/node | |
NODE_MODULES_BIN=node_modules/.bin | |
########################################################### | |
# !!!!!!!!!!!NODE_VERSION MUST MATCH ELECTRON!!!!!!!!!!!!!! | |
NODE_VERSION=12.18.3 | |
########################################################### | |
NPM=lib/nodejs/bin/npm | |
# Values | |
SRC_FILES=$(shell find . -name "*js" ! -path "*node_modules*" ! -path "*.dist.js") | |
TEST_FILES=$(shell find . -name "*_test.js" ! -path "*node_modules*") | |
STATIC_FILES=static | |
DIST=dist | |
APP_DIST_JS="$(DIST)/app.js" | |
# Derived values | |
ESLINT=$(NODE_MODULES_BIN)/eslint | |
MOCHA=$(NODE_MODULES_BIN)/electron-mocha | |
NODEMON=${NODE_MODULES_BIN}/nodemon | |
NODE_FILENAME=node-v$(NODE_VERSION)-$(PLATFORM)-$(ARCH) | |
WEBPACK=$(NODE_MODULES_BIN)/webpack | |
PM2=$(NODE_MODULES_BIN)/pm2 | |
.PHONY: build test test-w test-debug dev-install build build-module lint clean | |
# Build the client app distribution | |
$(APP_DIST_JS): ${SRC_FILES} | |
${NODE} webpack -o $(APP_DIST_JS) --mode development src/app.js | |
gzip -f $(APP_DIST_JS) | |
# Build any source files | |
build: ${NODE} ${YARN} $(NODE_MODULES_BIN) $(APP_DIST_JS) | |
# Run all tests | |
test: ${NODE} | |
${MOCHA} ${TEST_FILES} | |
# Watch for file changes and re-run tests on save. | |
# NOTE: Requires when-changed (https://github.com/joh/when-changed) | |
test-w: ${NODE} | |
when-changed.py ./*.js src/**/*.js ${TEST_FILES} -c "make test" | |
# Open a new chrome tab at chrome://inspect and click the small blue link | |
# that says, "Open dedicated DevTools for Node." | |
test-debug: ${NODE} build | |
${MOCHA} ${TEST_FILES} --inspect-brk | |
pretty: build | |
${NODE} ${YARNJS} pretty | |
integrate: clean lint test | |
# Run the application | |
run: | |
export ELECTRON_ENABLE_LOGGING=1 && npm start | |
run-production: | |
/bin/bash -c "\ | |
PATH=./lib/nodejs/bin:./node_modules/.bin:$(PATH) \ | |
NODE_ENV=production \ | |
ELECTRON_ENABLE_LOGGING=1 \ | |
exec \ | |
npm start" | |
clean: | |
rm -rf dist/ | |
# Intall development dependencies (OS X and Linux only) | |
dev-install: $(NODE) $(NODE_MODULES_BIN) | |
# Download and unpack the Node binaries into lib/nodejs. | |
$(NODE): | |
mkdir -p tmp | |
wget -O tmp/nodejs.tar.xz --no-check-certificate "https://nodejs.org/dist/v$(NODE_VERSION)/$(NODE_FILENAME).tar.xz" | |
touch tmp/nodejs.tar.xz | |
mkdir -p lib/nodejs | |
tar -xvf tmp/nodejs.tar.xz -C lib/nodejs --strip 1 | |
touch lib/nodejs/README.md | |
rm -rf tmp | |
# Install dependencies | |
$(NODE_MODULES_BIN): package.json | |
HOME=~/.electron-gyp $(NPM) install | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment