blob: 7fe6b6276387d877ae709e966f007437bc3d1f41 (
plain)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
#! /bin/bash
# This script is executed in the travis-ci environment.
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
echo "OS X build not yet supported"
exit
fi
# List of docker images
images=("ghdl/ghdl-tools:ubuntu-mcode"
"ghdl/ghdl-tools:ubuntu1404-llvm"
"ghdl/ghdl-tools:ubuntu1204-llvm"
"ghdl/ghdl-tools:fedora-llvm-mcode")
# docker image index + identifier + compiler
regular="0+ubuntu+mcode 3+fedora+llvm"
nightly="1+ubuntu1404+llvm-3.5 2+ubuntu1204+llvm-3.8 3+fedora+mcode"
#release=()
# Selected build matrix
thismatrix=regular
#---
. dist/ansi_color.sh
#disable_color
# Display env (to debug)
printf "$ANSI_YELLOW[TRAVIS] Travis environment $ANSI_NOCOLOR\n"
env | grep TRAVIS
PKG_SHORTCOMMIT="$(printf $TRAVIS_COMMIT | cut -c1-10)"
PKG_VER=`grep Ghdl_Ver src/version.in | sed -e 's/.*"\(.*\)";/\1/'`
PKG_TAG="$TRAVIS_TAG"
if [ -z "$TRAVIS_TAG" ]; then
PKG_TAG="$(date -u +%Y%m%d)-$PKG_SHORTCOMMIT";
fi
cloned=$(pwd)
#### Per build function
task() {
printf "$ANSI_YELLOW[$1| BUILD] $2 $ANSI_NOCOLOR\n"
IFS='+' read -ra REFS <<< "$2"
DBLD=${REFS[2]}
DDIST=${REFS[1]}
DIMG=${images[${REFS[0]}]}
thisworkdir="../wrk-$1"
cp -r ./ "$thisworkdir" && cd "$thisworkdir"
./dist/linux/docker-buildtest.sh -i "$DIMG" $ENABLE_COLOR -t "$1" -b "$DBLD" -f "ghdl-$PKG_TAG-$DBLD-$DDIST.tgz"
cd "$cloned"
}
#### Start builds
printf "$ANSI_YELLOW[TRAVIS] Running matrix $thismatrix $ANSI_NOCOLOR\n"
eval blds='${'$thismatrix'}'
t=0; for thisbuild in $blds; do
task "$t" "$thisbuild" &
t=$(($t+1));
done
#### Wait end of builds
printf "$ANSI_YELLOW[TRAVIS] Waiting... $ANSI_NOCOLOR\n"
wait
#### Check results, disp logs
EXITCODE=0;
t=0; for b in $blds; do
workdir="../wrk-$t"
# Display log (with travis log folding commands)
printf "$ANSI_YELLOW[TRAVIS] Print BUILD $t log $ANSI_NOCOLOR\n"
echo "travis_fold:start:log-$t"
cat $workdir/log.log
echo "travis_fold:end:log-$t"
# Read the last line of the log
RESULT="$(tail -1 $workdir/log.log)"
# If it did not end with [$t|SUCCESSFUL], break the build
if [ "$RESULT" != "[$t|SUCCESSFUL]" ]; then
printf "$ANSI_RED[TRAVIS] BUILD $t failed $ANSI_NOCOLOR\n"
EXITCODE=1;
else
cp $workdir/ghdl-*.tgz .
fi
t=$(($t+1));
done
exit $EXITCODE
|