-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild.sh
45 lines (37 loc) · 1.23 KB
/
build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh
set -e
id="$(id -u)"
if [ "$id" -ne 0 ]; then
echo "This script uses functionality which requires root privileges"
exit 1
fi
if [ $# -lt 1 ]; then
echo "Usage: $0 <output-directory>"
exit 1
fi
# Set file references
__filename="$(readlink -f "$0")"
__dirname="$(dirname "$__filename")"
# Configuration
VERSION="$(jq -r .version < "${__dirname}/package.json")"
NAME="$(jq -r .name < "${__dirname}/package.json")"
HASH="$(git -C "${__dirname}" log -1 --oneline | awk '{ print $1 }')"
NAME="${NAME}-${VERSION}-${HASH}"
NODE_VERSION="6"
OUTDIR="$1"
# Start acbuild, clean up on exit
acbuild begin "docker://mhart/alpine-node:${NODE_VERSION}"
trap '{ export EXT=$?; acbuild end && exit $EXT; }' EXIT
# Build
acbuild --debug set-name "$NAME"
acbuild --debug set-exec -- /usr/bin/node /var/www/index.js
acbuild --debug run -- apk update
acbuild --debug copy-to-dir "$__dirname"/* /var/www/
acbuild --debug run -- npm install --quiet --production --prefix=/var/www
# Config
acbuild --debug port add http tcp 80
acbuild --debug environment add PORT 80
acbuild --debug environment add NODE_ENV 'production'
acbuild --debug environment add STORAGE_PATH '/var/crash-reports'
# Finalize
acbuild --debug write --overwrite "${OUTDIR}/${NAME}.aci"