-
Notifications
You must be signed in to change notification settings - Fork 7
/
.travis.yml
53 lines (53 loc) · 1.65 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
---
sudo: required
notifications:
email: true
addons:
apt_packages:
- parallel
services:
- docker
branches:
only:
- master
before_install:
- sudo apt-get update
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
- sudo pip install docker-compose
- IMAGES=$(find . -type f -name docker-compose.yml ! -path "./.tests/*" -printf '%h\n' | sort)
install:
- |
# General configuration
stty cols 120
# tfold is a helper to create folded reports
tfold () {
title=$1
fold=$(echo $title | sed -r 's/[^-_A-Za-z\d]+/./g')
shift
echo -e "travis_fold:start:$fold\\n\\e[1;34m$title\\e[0m"
bash -xc "$*" 2>&1 &&
echo -e "\\e[32mOK\\e[0m $title\\n\\ntravis_fold:end:$fold" ||
( echo -e "\\e[41mKO\\e[0m $title\\n" && exit 1 )
}
export -f tfold
- |
run_builds () {
set -e
echo "$IMAGES" | parallel --gnu -j10% "tfold {} 'cd {} && docker-compose build > log || (tail -n 1000 log && false)'"
}
- |
run_tests () {
set -e
echo "$IMAGES" | parallel --gnu -j10% "tfold 'test {}' 'cd ./.tests/{} && make test; make clean'"
}
- |
build_substree_splits () {
set -e
tfold 'build substree splits' 'git config remote.origin.fetch "+refs/*:refs/*" && git config remote.origin.mirror true && git fetch --unshallow && docker run --rm -ti -e GH_TOKEN -v $PWD:/srv jderusse/gitsplit'
}
script:
- docker --version
- docker-compose --version
- (run_builds)
- (run_tests)
- (build_substree_splits)