Skip to content

Commit dc6d32d

Browse files
Enable ccache for Alpine builds on Travis CI
1 parent 0c87cf7 commit dc6d32d

File tree

8 files changed

+118
-0
lines changed

8 files changed

+118
-0
lines changed

.travis.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ services:
3030
echo "Skip build of $Dockerfile as it's not changed."
3131
exit
3232
fi
33+
if [ "alpine" = "$VARIANT" ]; then
34+
mkdir -p ccache
35+
(
36+
cd ccache
37+
nc -l -p 5678 < cache.tar.gz &
38+
nc -l -p 1234 > new-cache.tar.gz &
39+
)
40+
fi
3341
3442
script: ./test-build.sh $NODE_VERSION $VARIANT
3543

@@ -112,6 +120,19 @@ jobs:
112120
- NODE_VERSION: "10"
113121
- VARIANT: "alpine"
114122

123+
after_success:
124+
- ccache -s
125+
addons:
126+
apt:
127+
packages:
128+
- netcat
129+
before_cache:
130+
- ls -l cache/
131+
- mv ccache/new-cache.tar.gz ccache/cache.tar.gz
132+
cache:
133+
directories:
134+
- ccache/
135+
115136
- stage: Build
116137
before_script: *auto_skip
117138
env:
@@ -130,6 +151,19 @@ jobs:
130151
- NODE_VERSION: "11"
131152
- VARIANT: "alpine"
132153

154+
after_success:
155+
- ccache -s
156+
addons:
157+
apt:
158+
packages:
159+
- netcat
160+
before_cache:
161+
- ls -l cache/
162+
- mv ccache/new-cache.tar.gz ccache/cache.tar.gz
163+
cache:
164+
directories:
165+
- ccache/
166+
133167
- stage: Build
134168
before_script: *auto_skip
135169
env:
@@ -154,6 +188,19 @@ jobs:
154188
- NODE_VERSION: "6"
155189
- VARIANT: "alpine"
156190

191+
after_success:
192+
- ccache -s
193+
addons:
194+
apt:
195+
packages:
196+
- netcat
197+
before_cache:
198+
- ls -l cache/
199+
- mv ccache/new-cache.tar.gz ccache/cache.tar.gz
200+
cache:
201+
directories:
202+
- ccache/
203+
157204
- stage: Build
158205
before_script: *auto_skip
159206
env:
@@ -184,6 +231,19 @@ jobs:
184231
- NODE_VERSION: "8"
185232
- VARIANT: "alpine"
186233

234+
after_success:
235+
- ccache -s
236+
addons:
237+
apt:
238+
packages:
239+
- netcat
240+
before_cache:
241+
- ls -l cache/
242+
- mv ccache/new-cache.tar.gz ccache/cache.tar.gz
243+
cache:
244+
directories:
245+
- ccache/
246+
187247
- stage: Build
188248
before_script: *auto_skip
189249
env:

10/alpine/Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN addgroup -g 1000 node \
1111
curl \
1212
g++ \
1313
gcc \
14+
ccache \
1415
gnupg \
1516
libgcc \
1617
linux-headers \
@@ -38,10 +39,16 @@ RUN addgroup -g 1000 node \
3839
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3940
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
4041
&& cd "node-v$NODE_VERSION" \
42+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
43+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
44+
&& ( nc "$(ip route | awk '/default/ { print $3 }')" 5678 | tar -xj -C / ) || true \
4145
&& ./configure \
4246
&& make -j$(getconf _NPROCESSORS_ONLN) \
4347
&& make install \
48+
&& rm -f /usr/local/bin/gcc /usr/local/bin/g++ \
4449
&& apk del .build-deps \
50+
&& tar -czf - /root/.ccache/ | nc -w 3 "$(ip route | awk '/default/ { print $3 }')" 1234 \
51+
&& rm -rf /root/.ccache/ \
4552
&& cd .. \
4653
&& rm -Rf "node-v$NODE_VERSION" \
4754
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt

11/alpine/Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN addgroup -g 1000 node \
1111
curl \
1212
g++ \
1313
gcc \
14+
ccache \
1415
gnupg \
1516
libgcc \
1617
linux-headers \
@@ -38,10 +39,16 @@ RUN addgroup -g 1000 node \
3839
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3940
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
4041
&& cd "node-v$NODE_VERSION" \
42+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
43+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
44+
&& ( nc "$(ip route | awk '/default/ { print $3 }')" 5678 | tar -xj -C / ) || true \
4145
&& ./configure \
4246
&& make -j$(getconf _NPROCESSORS_ONLN) \
4347
&& make install \
48+
&& rm -f /usr/local/bin/gcc /usr/local/bin/g++ \
4449
&& apk del .build-deps \
50+
&& tar -czf - /root/.ccache/ | nc -w 3 "$(ip route | awk '/default/ { print $3 }')" 1234 \
51+
&& rm -rf /root/.ccache/ \
4552
&& cd .. \
4653
&& rm -Rf "node-v$NODE_VERSION" \
4754
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt

6/alpine/Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN addgroup -g 1000 node \
1111
curl \
1212
g++ \
1313
gcc \
14+
ccache \
1415
gnupg \
1516
libgcc \
1617
linux-headers \
@@ -38,10 +39,16 @@ RUN addgroup -g 1000 node \
3839
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3940
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
4041
&& cd "node-v$NODE_VERSION" \
42+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
43+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
44+
&& ( nc "$(ip route | awk '/default/ { print $3 }')" 5678 | tar -xj -C / ) || true \
4145
&& ./configure \
4246
&& make -j$(getconf _NPROCESSORS_ONLN) \
4347
&& make install \
48+
&& rm -f /usr/local/bin/gcc /usr/local/bin/g++ \
4449
&& apk del .build-deps \
50+
&& tar -czf - /root/.ccache/ | nc -w 3 "$(ip route | awk '/default/ { print $3 }')" 1234 \
51+
&& rm -rf /root/.ccache/ \
4552
&& cd .. \
4653
&& rm -Rf "node-v$NODE_VERSION" \
4754
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt

8/alpine/Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN addgroup -g 1000 node \
1111
curl \
1212
g++ \
1313
gcc \
14+
ccache \
1415
gnupg \
1516
libgcc \
1617
linux-headers \
@@ -38,10 +39,16 @@ RUN addgroup -g 1000 node \
3839
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3940
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
4041
&& cd "node-v$NODE_VERSION" \
42+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
43+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
44+
&& ( nc "$(ip route | awk '/default/ { print $3 }')" 5678 | tar -xj -C / ) || true \
4145
&& ./configure \
4246
&& make -j$(getconf _NPROCESSORS_ONLN) \
4347
&& make install \
48+
&& rm -f /usr/local/bin/gcc /usr/local/bin/g++ \
4449
&& apk del .build-deps \
50+
&& tar -czf - /root/.ccache/ | nc -w 3 "$(ip route | awk '/default/ { print $3 }')" 1234 \
51+
&& rm -rf /root/.ccache/ \
4552
&& cd .. \
4653
&& rm -Rf "node-v$NODE_VERSION" \
4754
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt

Dockerfile-alpine.template

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN addgroup -g 1000 node \
1111
curl \
1212
g++ \
1313
gcc \
14+
ccache \
1415
gnupg \
1516
libgcc \
1617
linux-headers \
@@ -30,10 +31,16 @@ RUN addgroup -g 1000 node \
3031
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
3132
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
3233
&& cd "node-v$NODE_VERSION" \
34+
&& ln -s /usr/bin/ccache /usr/local/bin/gcc \
35+
&& ln -s /usr/bin/ccache /usr/local/bin/g++ \
36+
&& ( nc "$(ip route | awk '/default/ { print $3 }')" 5678 | tar -xj -C / ) || true \
3337
&& ./configure \
3438
&& make -j$(getconf _NPROCESSORS_ONLN) \
3539
&& make install \
40+
&& rm -f /usr/local/bin/gcc /usr/local/bin/g++ \
3641
&& apk del .build-deps \
42+
&& tar -czf - /root/.ccache/ | nc -w 3 "$(ip route | awk '/default/ { print $3 }')" 1234 \
43+
&& rm -rf /root/.ccache/ \
3744
&& cd .. \
3845
&& rm -Rf "node-v$NODE_VERSION" \
3946
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt

travis.yml.template

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ services:
2828
echo "Skip build of $Dockerfile as it's not changed."
2929
exit
3030
fi
31+
if [ "alpine" = "$VARIANT" ]; then
32+
mkdir -p ccache
33+
(
34+
cd ccache
35+
nc -l -p 5678 < cache.tar.gz &
36+
nc -l -p 1234 > new-cache.tar.gz &
37+
)
38+
fi
3139

3240
script: ./test-build.sh $NODE_VERSION $VARIANT
3341

update.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,21 @@ function add_stage() {
192192
env:
193193
- NODE_VERSION: "'"${version}"'"
194194
- VARIANT: "'"${variant}"'"' >> .travis.yml
195+
if [ "alpine" = "${variant}" ]; then
196+
echo '
197+
after_success:
198+
- ccache -s
199+
addons:
200+
apt:
201+
packages:
202+
- netcat
203+
before_cache:
204+
- ls -l ccache/
205+
- mv ccache/new-cache.tar.gz ccache/cache.tar.gz
206+
cache:
207+
directories:
208+
- ccache/' >> .travis.yml
209+
fi
195210
}
196211

197212
echo '# DO NOT MODIFY. THIS FILE IS AUTOGENERATED #

0 commit comments

Comments
 (0)