b43c6c43b4
Since introduction of gitignore the vendor folder contains also gitignores which affects detection when to update a cache. We explicitly cache only apt and ruby folders.
48 lines
1.5 KiB
Bash
Executable file
48 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
retry() {
|
|
if eval "$@"; then
|
|
return 0
|
|
fi
|
|
|
|
for i in 2 1; do
|
|
sleep 3s
|
|
echo "Retrying $i..."
|
|
if eval "$@"; then
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
if [ -f /.dockerenv ] || [ -f ./dockerinit ]; then
|
|
mkdir -p vendor/apt
|
|
|
|
# Install phantomjs package
|
|
pushd vendor/apt
|
|
if [ ! -e 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
|
|
fi
|
|
dpkg -i phantomjs_1.9.8-0jessie_amd64.deb
|
|
popd
|
|
|
|
# Try to install packages
|
|
retry 'apt-get update -yqqq; apt-get -o dir::cache::archives="vendor/apt" install -y -qq --force-yes \
|
|
libicu-dev libkrb5-dev cmake nodejs postgresql-client mysql-client unzip'
|
|
|
|
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
|
|
|
|
cp config/resque.yml.example config/resque.yml
|
|
sed -i 's/localhost/redis/g' config/resque.yml
|
|
|
|
export FLAGS=(--path vendor --retry 3)
|
|
else
|
|
export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin
|
|
cp config/database.yml.mysql config/database.yml
|
|
sed "s/username\:.*$/username\: runner/" -i config/database.yml
|
|
sed "s/password\:.*$/password\: 'password'/" -i config/database.yml
|
|
sed "s/gitlabhq_test/gitlabhq_test_$((RANDOM/5000))/" -i config/database.yml
|
|
fi
|