@@ -5,7 +5,6 @@ set -Eeuo pipefail
5
5
6
6
function docker-build() {
7
7
local image=" $1 " ; shift
8
- local prebuild_command=" $1 " ; shift
9
8
10
9
local cache=" $HOME /.cache"
11
10
if [[ -n ${XDG_CACHE_HOME:- } ]] ; then
@@ -22,26 +21,40 @@ function docker-build() {
22
21
docker exec " $containerId " bash -c " $@ "
23
22
}
24
23
25
- [[ -n $prebuild_command ]] && docker-exec " $prebuild_command "
24
+ function docker-exec-build() {
25
+ docker-exec " cd /src && ${1:- } ./scripts/node_build.bash"
26
+ }
26
27
27
28
case $image in
28
29
* armv7hf* | * aarch64* )
29
30
docker-exec " cross-build-start"
30
- docker-exec " cd /src && yarn build"
31
- docker-exec " cd /src && yarn test"
31
+ docker-exec-build
32
32
docker-exec " cross-build-end"
33
33
;;
34
+ * centos* )
35
+ # `__STDC_FORMAT_MACROS` is required on some older systems for access to
36
+ # some macros used by Node like `PRIx64`. In newer versions of Node this
37
+ # will already be set and we can remove it here.
38
+ local cpp_flags=" -D __STDC_FORMAT_MACROS"
39
+
40
+ # `-lrt` provides clock_*; required for gcc < 2.17 (in 2.17 they became
41
+ # part of the main C library).
42
+ local ld_flags=" -lrt"
43
+
44
+ docker-exec-build " . /opt/rh/devtoolset-6/enable && . /opt/rh/python27/enable && CPPFLAGS='$cpp_flags ' LDFLAGS='$ld_flags '"
45
+ ;;
34
46
* )
35
- docker-exec " cd /src && yarn build"
36
- docker-exec " cd /src && yarn test"
47
+ docker-exec-build
37
48
;;
38
49
esac
39
50
51
+ docker-exec " cd /src && ./node_modules/.bin/mocha"
52
+
40
53
docker kill " $containerId "
41
54
}
42
55
43
56
function mac-build() {
44
- yarn build
57
+ yarn build:node
45
58
yarn test
46
59
}
47
60
@@ -52,21 +65,22 @@ function main() {
52
65
local version
53
66
version=$( grep version ./package.json | head -1 | awk -F: ' { print $2 }' | sed ' s/[",]//g' | tr -d ' [:space:]' )
54
67
68
+ yarn build:nbin
69
+ yarn build:bundle
70
+
55
71
local binary_name=" node-$node_version -${TARGET:- darwin} "
56
72
if [[ $OSTYPE == " darwin" * ]]; then
57
73
binary_name=" $binary_name -x86_64"
58
74
mac-build
59
75
else
60
76
local image=" codercom/nbin-$TARGET "
61
- local prebuild_command=" "
62
77
case $TARGET in
63
78
" alpine" ) binary_name=" $binary_name -x86_64" ;;
64
79
" centos" )
65
- prebuild_command=" source /opt/rh/devtoolset-6/enable"
66
80
binary_name=" $binary_name -x86_64"
67
81
;;
68
82
esac
69
- docker-build " $image " " $prebuild_command "
83
+ docker-build " $image "
70
84
fi
71
85
72
86
mkdir -p " ./build/$version "
0 commit comments