aboutsummaryrefslogtreecommitdiffstats
path: root/dist/linux
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-08-16 08:05:39 +0200
committerTristan Gingold <tgingold@free.fr>2017-08-16 08:05:39 +0200
commit61b24c93601ecf7b9013b0926d9bda74e9eddadd (patch)
treeb1fed87aa8a8bf9327ed0957358536a9ba798f3b /dist/linux
parent200e893607444cb3fe2a355430767215bee8fe70 (diff)
downloadghdl-61b24c93601ecf7b9013b0926d9bda74e9eddadd.tar.gz
ghdl-61b24c93601ecf7b9013b0926d9bda74e9eddadd.tar.bz2
ghdl-61b24c93601ecf7b9013b0926d9bda74e9eddadd.zip
Reimport appveyor and travis-ci scripts from v0.34
Diffstat (limited to 'dist/linux')
-rwxr-xr-xdist/linux/buildtest.sh55
-rwxr-xr-xdist/linux/docker-buildtest.sh26
-rwxr-xr-xdist/linux/travis-ci.sh77
3 files changed, 92 insertions, 66 deletions
diff --git a/dist/linux/buildtest.sh b/dist/linux/buildtest.sh
index f8347070d..86722b785 100755
--- a/dist/linux/buildtest.sh
+++ b/dist/linux/buildtest.sh
@@ -10,10 +10,10 @@ set -e
for arg in "$@"; do
shift
case "$arg" in
- "--color"|"-color") set -- "$@" "-c";;
- "--build"|"-build") set -- "$@" "-b";;
- "--file"|"-file") set -- "$@" "-f";;
- "--taskid"|"-taskid") set -- "$@" "-t";;
+ "--color"|"-color") set -- "$@" "-c";;
+ "--build"|"-build") set -- "$@" "-b";;
+ "--file"|"-file") set -- "$@" "-f";;
+ "--taskid"|"-taskid") set -- "$@" "-t";;
*) set -- "$@" "$arg"
esac
done
@@ -22,10 +22,12 @@ while getopts ":b:f:t:c" opt; do
case $opt in
c) enable_color;;
b) BLD=$OPTARG ;;
- f) PKG_FILE=$OPTARG;;
+ f) PKG_FILE=$OPTARG;;
t) TASK=$OPTARG;;
- \?) printf "$ANSI_RED[GHDL] Invalid option: -$OPTARG $ANSI_NOCOLOR\n" >&2; exit 1 ;;
- :) printf "$ANSI_RED[GHDL] Option -$OPTARG requires an argument. $ANSI_NOCOLOR\n" >&2; exit 1 ;;
+ \?) printf "$ANSI_RED[GHDL] Invalid option: -$OPTARG $ANSI_NOCOLOR\n" >&2
+ exit 1 ;;
+ :) printf "$ANSI_RED[GHDL] Option -$OPTARG requires an argument. $ANSI_NOCOLOR\n" >&2
+ exit 1 ;;
esac
done
@@ -33,7 +35,6 @@ done
printf "$ANSI_BLUE[$TASK| GHDL] Prepare $(pwd) $ANSI_NOCOLOR\n"
CDIR=$(pwd)
-mkdir logs
prefix="$CDIR/install-$BLD"
mkdir "$prefix"
mkdir "build-$BLD"
@@ -49,27 +50,30 @@ env 1>> ../log.log 2>&1
printf "$ANSI_BLUE[$TASK| GHDL - build] Configure $ANSI_NOCOLOR\n"
case "$BLD" in
mcode)
- ../configure "--prefix=$prefix" 1>> ../log.log 2>&1
- ;;
-
+ ../configure "--prefix=$prefix" 1>> ../log.log 2>&1
+ ;;
+
llvm)
- ../configure "--prefix=$prefix" "--with-llvm-config" 1>> ../log.log 2>&1
- ;;
-
+ ../configure "--prefix=$prefix" "--with-llvm-config" 1>> ../log.log 2>&1
+ ;;
+
llvm-3.5)
- ../configure "--prefix=$prefix" "--with-llvm-config=llvm-config-3.5" 1>> ../log.log 2>&1
- MAKEOPTS="CXX=clang++"
- ;;
+ ../configure "--prefix=$prefix" "--with-llvm-config=llvm-config-3.5" 1>> ../log.log 2>&1
+ MAKEOPTS="CXX=clang++"
+ ;;
llvm-3.8)
- ../configure "--prefix=$prefix" "--with-llvm-config=llvm-config-3.8" 1>> ../log.log 2>&1
- MAKEOPTS="CXX=clang++-3.8"
- ;;
+ ../configure "--prefix=$prefix" "--with-llvm-config=llvm-config-3.8" 1>> ../log.log 2>&1
+ MAKEOPTS="CXX=clang++-3.8"
+ ;;
- docker) printf "$ANSI_MAGENTA[$TASK| GHDL - build] Check docker container! $ANSI_NOCOLOR\n"; exit 0;;
+ docker)
+ printf "$ANSI_MAGENTA[$TASK| GHDL - build] Check docker container! $ANSI_NOCOLOR\n"
+ exit 0;;
- *) printf "$ANSI_RED[$TASK| GHDL - build] Unknown build $BLD $ANSI_NOCOLOR\n"
- exit 1;;
+ *)
+ printf "$ANSI_RED[$TASK| GHDL - build] Unknown build $BLD $ANSI_NOCOLOR\n"
+ exit 1;;
esac
#---
@@ -90,10 +94,11 @@ tar -zcvf "$PKG_FILE" -C "$prefix" . 1>> log.log 2>&1
export ENABLECOLOR="$ENABLECOLOR"
export TASK="$TASK"
export GHDL="$CDIR/install-$BLD/bin/ghdl"
-cd testsuite && ./testsuite.sh
+cd testsuite
+./testsuite.sh
cd ..
#---
# Do not remove this line, and don't write anything below, since it is used to identify successful builds
-echo "[$TASK|SUCCESSFUL]" 1>> log.log 2>&1 \ No newline at end of file
+echo "[$TASK|SUCCESSFUL]" 1>> log.log 2>&1
diff --git a/dist/linux/docker-buildtest.sh b/dist/linux/docker-buildtest.sh
index 919a314d6..a3f38a32c 100755
--- a/dist/linux/docker-buildtest.sh
+++ b/dist/linux/docker-buildtest.sh
@@ -10,13 +10,13 @@ set -e
for arg in "$@"; do
shift
case "$arg" in
- "--color"|"-color") set -- "$@" "-c";;
- "--grab"|"-grab") set -- "$@" "-g";;
- "--image"|"-image") set -- "$@" "-i";;
- "--build"|"-build") set -- "$@" "-b";;
- "--file"|"-file") set -- "$@" "-f";;
- "--taskid"|"-taskid") set -- "$@" "-t";;
- *) set -- "$@" "$arg"
+ "--color"|"-color") set -- "$@" "-c";;
+ "--grab"|"-grab") set -- "$@" "-g";;
+ "--image"|"-image") set -- "$@" "-i";;
+ "--build"|"-build") set -- "$@" "-b";;
+ "--file"|"-file") set -- "$@" "-f";;
+ "--taskid"|"-taskid") set -- "$@" "-t";;
+ *) set -- "$@" "$arg";;
esac
done
# Parse args
@@ -28,8 +28,10 @@ while getopts ":i:b:f:t:cg" opt; do
b) BLD=$OPTARG ;;
f) PKG_FILE=$OPTARG;;
t) TASK=$OPTARG;;
- \?) printf "$ANSI_RED[BUILD] Invalid option: -$OPTARG $ANSI_NOCOLOR\n" >&2; exit 1 ;;
- :) printf "$ANSI_RED[BUILD] Option -$OPTARG requires an argument $ANSI_NOCOLOR\n" >&2; exit 1 ;;
+ \?) printf "$ANSI_RED[BUILD] Invalid option: -$OPTARG $ANSI_NOCOLOR\n" >&2
+ exit 1 ;;
+ :) printf "$ANSI_RED[BUILD] Option -$OPTARG requires an argument $ANSI_NOCOLOR\n" >&2
+ exit 1 ;;
esac
done
@@ -45,7 +47,7 @@ printf "$ANSI_YELLOW[$TASK| BUILD] Docker run $DOCKER_IMG $BLD $PKG_FILE $ANSI_N
if [ -n "$GRAB_SRCS" ]; then
printf "$ANSI_YELLOW[$TASK| BUILD] Grab sources$ANSI_NOCOLOR\n"
-
+
p="mkdir /work && cd /work"
p="$p && curl -L https://github.com/tgingold/ghdl/archive/master.tar.gz | tar xz"
p="$p && mv ghdl-master/* ./ && rm -rf ghdl-master"
@@ -56,9 +58,9 @@ if [ -n "$GRAB_SRCS" ]; then
set -e
docker cp "ghdl_cmp:/work/$PKG_FILE" ./
docker rm ghdl_cmp
-
+
else
docker run --rm -tv $(pwd):/work:Z -w="/work" "$DOCKER_IMG" sh -c "./dist/linux/buildtest.sh $ENABLECOLOR-t $TASK -b $BLD -f $PKG_FILE"
-fi \ No newline at end of file
+fi
diff --git a/dist/linux/travis-ci.sh b/dist/linux/travis-ci.sh
index e72e2540c..7c36f6546 100755
--- a/dist/linux/travis-ci.sh
+++ b/dist/linux/travis-ci.sh
@@ -1,69 +1,88 @@
-#! /bin/sh
+#! /bin/bash
# This script is executed in the travis-ci environment.
-images=("ghdl/ghdl-tools:ubuntu-mcode" "ghdl/ghdl-tools:ubuntu1404-llvm" "ghdl/ghdl-tools:ubuntu1204-llvm" "ghdl/ghdl-tools:fedora-llvm-mcode")
+# 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
-#--- image + 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
-thismatrix=regular
+# 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 "${images[${REFS[0]}]}" $3-t "$1" -b "$DBLD" -f "ghdl-$PKG_VER-$DBLD-$PKG_TAG-${REFS[1]}-$PKG_SHORTCOMMIT.tgz"
+ ./dist/linux/docker-buildtest.sh -i "$DIMG" $ENABLE_COLOR -t "$1" -b "$DBLD" -f "ghdl-$PKG_TAG-$DBLD-$DDIST.tgz"
cd "$cloned"
- cp "$thisworkdir"/ghdl-*.tgz ./
- cp "$thisworkdir"/log.log "./log_$1.log"
}
-#---
-
-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`; fi
-
-cloned=$(pwd)
+#### 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" "$ENABLECOLOR" &
+ task "$t" "$thisbuild" &
t=$(($t+1));
done
+#### Wait end of builds
+
printf "$ANSI_YELLOW[TRAVIS] Waiting... $ANSI_NOCOLOR\n"
wait
-printf "$ANSI_YELLOW[TRAVIS] Done waiting. Show work dir content: $ANSI_NOCOLOR\n"
-ls -la
-printf "$ANSI_YELLOW[TRAVIS] Check results $ANSI_NOCOLOR\n"
+
+#### Check results, disp logs
+
EXITCODE=0;
t=0; for b in $blds; do
+ workdir="../wrk-$t"
+ # Display log
+ printf "$ANSI_YELLOW[TRAVIS] Print BUILD $t log $ANSI_NOCOLOR\n"
+ cat $workdir/log.log
+
# Read the last line of the log
- RESULT[$t]=$(awk '/./{line=$0} END{print line}' "log_$t.log")
+ RESULT="$(tail -1 $workdir/log.log)"
# If it did not end with [$t|SUCCESSFUL], break the build
- if [ "${RESULT[$t]}" != "[$t|SUCCESSFUL]" ]; then EXITCODE=$(($t+1)); fi
- # Anyway, always print the full log
- printf "$ANSI_YELLOW[TRAVIS] Print BUILD $t log $ANSI_NOCOLOR\n"
- cat "log_$t.log"
+ 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
-# The exit code indicates the last broken build (1:bnum)
-exit $EXITCODE \ No newline at end of file
+exit $EXITCODE