Speed-up docker based builds

Enable to:
- Use APT cache
- Use Bundler cache
- Use PhantomJS cache
This commit is contained in:
Kamil Trzcinski 2016-01-22 18:16:59 +01:00
parent 0e51ca7c48
commit edf93ecb6e
3 changed files with 12 additions and 28 deletions

View File

@ -9,7 +9,7 @@ variables:
MYSQL_ALLOW_EMPTY_PASSWORD: "1"
before_script:
- ./scripts/prepare_build.sh
- source ./scripts/prepare_build.sh
- ruby -v
- which ruby
- gem install bundler --no-ri --no-rdoc

View File

@ -1,22 +0,0 @@
#!/bin/bash
if [ -f /.dockerinit ]; then
export FLAGS=(--deployment --path /cache)
apt-get update -qq
apt-get install -y -qq nodejs
wget -q http://ftp.de.debian.org/debian/pool/main/p/phantomjs/phantomjs_1.9.0-1+b1_amd64.deb
dpkg -i phantomjs_1.9.0-1+b1_amd64.deb
cp config/database.yml.mysql config/database.yml
sed -i "s/username:.*/username: root/g" config/database.yml
sed -i "s/password:.*/password:/g" config/database.yml
sed -i "s/# socket:.*/host: mysql/g" config/database.yml
else
export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin
cp config/database.yml.mysql config/database.yml
sed -i "s/username\:.*$/username\: runner/" config/database.yml
sed -i "s/password\:.*$/password\: 'password'/" config/database.yml
sed -i "s/gitlab_ci_test/gitlab_ci_test_$((RANDOM/5000))/" config/database.yml
fi

View File

@ -1,10 +1,16 @@
#!/bin/bash
if [ -f /.dockerinit ]; then
wget -q https://gitlab.com/axil/phantomjs-debian/raw/master/phantomjs_1.9.8-0jessie_amd64.deb
dpkg -i phantomjs_1.9.8-0jessie_amd64.deb
# Docker runners use `/cache` folder which is persisted every build
if [ ! -e /cache/phantomjs_1.9.8-0jessie_amd64.deb ]; then
wget -q https://gitlab.com/axil/phantomjs-debian/raw/master/phantomjs_1.9.8-0jessie_amd64.deb
mv phantomjs_1.9.8-0jessie_amd64.deb /cache
fi
dpkg -i /cache/phantomjs_1.9.8-0jessie_amd64.deb
apt-get update -qq
apt-get install -y -qq libicu-dev libkrb5-dev cmake nodejs postgresql-client mysql-client
apt-get -o dir::cache::archives="/cache/apt" install -y -qq \
libicu-dev libkrb5-dev cmake nodejs postgresql-client mysql-client
cp config/database.yml.mysql config/database.yml
sed -i 's/username:.*/username: root/g' config/database.yml
@ -13,8 +19,8 @@ if [ -f /.dockerinit ]; then
cp config/resque.yml.example config/resque.yml
sed -i 's/localhost/redis/g' config/resque.yml
FLAGS=(--deployment --path /cache)
export FLAGS
export FLAGS=(--path /cache)
else
export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin
cp config/database.yml.mysql config/database.yml