Skip to content

Commit 2075104

Browse files
Added ccache for alpine build
1 parent 9a9e542 commit 2075104

File tree

9 files changed

+74
-9
lines changed

9 files changed

+74
-9
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.ccache

.travis.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
dist: trusty
44
sudo: false
55

6-
language: generic
6+
language: cpp
7+
8+
cache: ccache
79

810
services:
911
- docker
@@ -12,6 +14,10 @@ addons:
1214
packages:
1315
- docker-ce
1416

17+
before_script:
18+
- if [ ! -d "$HOME/.ccache" ]; then mkdir "$HOME/.ccache" ; fi
19+
- ln -s $HOME/.ccache .
20+
1521
script: ./test-build.sh $NODE_VERSION $VARIANT
1622

1723
stages:

10/alpine/Dockerfile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ FROM alpine:3.7
22

33
ENV NODE_VERSION 10.1.0
44

5+
COPY .ccache /root/.ccache
6+
57
RUN addgroup -g 1000 node \
68
&& adduser -u 1000 -G node -s /bin/sh -D node \
79
&& apk add --no-cache \
810
libstdc++ \
911
&& apk add --no-cache --virtual .build-deps \
1012
binutils-gold \
13+
ccache \
1114
curl \
1215
g++ \
1316
gcc \
@@ -37,13 +40,17 @@ RUN addgroup -g 1000 node \
3740
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3841
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
3942
&& cd "node-v$NODE_VERSION" \
43+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
44+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
4045
&& ./configure \
4146
&& make -j$(getconf _NPROCESSORS_ONLN) \
4247
&& make install \
4348
&& apk del .build-deps \
4449
&& cd .. \
4550
&& rm -Rf "node-v$NODE_VERSION" \
46-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
51+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
52+
&& rm /usr/local/bin/gcc \
53+
&& rm /usr/local/bin/g++
4754

4855
ENV YARN_VERSION 1.6.0
4956

6/alpine/Dockerfile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ FROM alpine:3.4
22

33
ENV NODE_VERSION 6.14.2
44

5+
COPY .ccache /root/.ccache
6+
57
RUN addgroup -g 1000 node \
68
&& adduser -u 1000 -G node -s /bin/sh -D node \
79
&& apk add --no-cache \
810
libstdc++ \
911
&& apk add --no-cache --virtual .build-deps \
1012
binutils-gold \
13+
ccache \
1114
curl \
1215
g++ \
1316
gcc \
@@ -37,13 +40,17 @@ RUN addgroup -g 1000 node \
3740
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3841
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
3942
&& cd "node-v$NODE_VERSION" \
43+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
44+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
4045
&& ./configure \
4146
&& make -j$(getconf _NPROCESSORS_ONLN) \
4247
&& make install \
4348
&& apk del .build-deps \
4449
&& cd .. \
4550
&& rm -Rf "node-v$NODE_VERSION" \
46-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
51+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
52+
&& rm /usr/local/bin/gcc \
53+
&& rm /usr/local/bin/g++
4754

4855
ENV YARN_VERSION 1.6.0
4956

8/alpine/Dockerfile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ FROM alpine:3.6
22

33
ENV NODE_VERSION 8.11.1
44

5+
COPY .ccache /root/.ccache
6+
57
RUN addgroup -g 1000 node \
68
&& adduser -u 1000 -G node -s /bin/sh -D node \
79
&& apk add --no-cache \
810
libstdc++ \
911
&& apk add --no-cache --virtual .build-deps \
1012
binutils-gold \
13+
ccache \
1114
curl \
1215
g++ \
1316
gcc \
@@ -37,13 +40,17 @@ RUN addgroup -g 1000 node \
3740
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3841
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
3942
&& cd "node-v$NODE_VERSION" \
43+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
44+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
4045
&& ./configure \
4146
&& make -j$(getconf _NPROCESSORS_ONLN) \
4247
&& make install \
4348
&& apk del .build-deps \
4449
&& cd .. \
4550
&& rm -Rf "node-v$NODE_VERSION" \
46-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
51+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
52+
&& rm /usr/local/bin/gcc \
53+
&& rm /usr/local/bin/g++
4754

4855
ENV YARN_VERSION 1.5.1
4956

9/alpine/Dockerfile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ FROM alpine:3.6
22

33
ENV NODE_VERSION 9.11.1
44

5+
COPY .ccache /root/.ccache
6+
57
RUN addgroup -g 1000 node \
68
&& adduser -u 1000 -G node -s /bin/sh -D node \
79
&& apk add --no-cache \
810
libstdc++ \
911
&& apk add --no-cache --virtual .build-deps \
1012
binutils-gold \
13+
ccache \
1114
curl \
1215
g++ \
1316
gcc \
@@ -37,13 +40,17 @@ RUN addgroup -g 1000 node \
3740
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3841
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
3942
&& cd "node-v$NODE_VERSION" \
43+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
44+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
4045
&& ./configure \
4146
&& make -j$(getconf _NPROCESSORS_ONLN) \
4247
&& make install \
4348
&& apk del .build-deps \
4449
&& cd .. \
4550
&& rm -Rf "node-v$NODE_VERSION" \
46-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
51+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
52+
&& rm /usr/local/bin/gcc \
53+
&& rm /usr/local/bin/g++
4754

4855
ENV YARN_VERSION 1.5.1
4956

Dockerfile-alpine.template

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ FROM alpine:3.4
22

33
ENV NODE_VERSION 0.0.0
44

5+
COPY .ccache /root/.ccache
6+
57
RUN addgroup -g 1000 node \
68
&& adduser -u 1000 -G node -s /bin/sh -D node \
79
&& apk add --no-cache \
810
libstdc++ \
911
&& apk add --no-cache --virtual .build-deps \
1012
binutils-gold \
13+
ccache \
1114
curl \
1215
g++ \
1316
gcc \
@@ -30,13 +33,17 @@ RUN addgroup -g 1000 node \
3033
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3134
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
3235
&& cd "node-v$NODE_VERSION" \
36+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
37+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
3338
&& ./configure \
3439
&& make -j$(getconf _NPROCESSORS_ONLN) \
3540
&& make install \
3641
&& apk del .build-deps \
3742
&& cd .. \
3843
&& rm -Rf "node-v$NODE_VERSION" \
39-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
44+
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
45+
&& rm /usr/local/bin/gcc \
46+
&& rm /usr/local/bin/g++
4047

4148
ENV YARN_VERSION 0.0.0
4249

test-build.sh

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,25 @@ function build () {
3232

3333
info "Building $full_tag..."
3434

35-
if ! docker build --cpuset-cpus="0,1" -t node:"$full_tag" "$path"; then
36-
fatal "Build of $full_tag failed!"
35+
if [[ "$variant" =~ alpine* ]]; then
36+
if [ ! -d .ccache ]; then
37+
mkdir .ccache
38+
fi;
39+
40+
cp -r .ccache "$path"
41+
42+
if ! docker build --cpuset-cpus="0,1" -t node:"$full_tag" "$path"; then
43+
fatal "Build of $full_tag failed!"
44+
fi
45+
46+
info "Extracting compile cache"
47+
docker run --rm node:"$full_tag" tar -c -C /root/.ccache . | tar x -C "$path/.ccache"
48+
cp -r "$path/.ccache" . && rm -r "$path/.ccache"
49+
50+
else
51+
if ! docker build --cpuset-cpus="0,1" -t node:"$full_tag" "$path"; then
52+
fatal "Build of $full_tag failed!"
53+
fi
3754
fi
3855
info "Build of $full_tag succeeded."
3956

travis.yml.template

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
dist: trusty
22
sudo: false
33

4-
language: generic
4+
language: cpp
5+
6+
cache: ccache
57

68
services:
79
- docker
@@ -10,6 +12,10 @@ addons:
1012
packages:
1113
- docker-ce
1214

15+
before_script:
16+
- if [ ! -d "$HOME/.ccache" ]; then mkdir "$HOME/.ccache" ; fi
17+
- ln -s $HOME/.ccache .
18+
1319
script: ./test-build.sh $NODE_VERSION $VARIANT
1420

1521
stages:

0 commit comments

Comments
 (0)