aboutsummaryrefslogtreecommitdiffstats
path: root/dist/travis/travis-ci.sh
diff options
context:
space:
mode:
Diffstat (limited to 'dist/travis/travis-ci.sh')
-rwxr-xr-xdist/travis/travis-ci.sh89
1 files changed, 30 insertions, 59 deletions
diff --git a/dist/travis/travis-ci.sh b/dist/travis/travis-ci.sh
index e9e419c66..1f5596600 100755
--- a/dist/travis/travis-ci.sh
+++ b/dist/travis/travis-ci.sh
@@ -2,21 +2,12 @@
# This script is executed in the travis-ci environment.
build_img_ghdl() {
- # Build ghdl/ghdl from ghdl/run
- echo "travis_fold:start:build_run"
- travis_time_start
- printf "$ANSI_BLUE[DOCKER build] ghdl : ${IMAGE_TAG}$ANSI_NOCOLOR\n"
-
- PKG=`ls | grep -oP 'ghdl-.*tgz'`
- mkdir tmp-img && cd tmp-img
- cp ../$PKG ./
- cp ../BUILD_TOOLS ./
- echo "FROM ghdl/run:$IMAGE_TAG" > Dockerfile
- echo "ADD $PKG /usr/local" >> Dockerfile
- docker build -t ghdl/ghdl:$IMAGE_TAG .
- cd ..
- travis_time_finish
- echo "travis_fold:end:build_run"
+ travis_start "build_run" "$ANSI_BLUE[DOCKER build] ghdl/ghdl:${IMAGE_TAG}$ANSI_NOCOLOR"
+ docker build -t ghdl/ghdl:$IMAGE_TAG . -f-<<EOF
+FROM ghdl/run:$IMAGE_TAG
+ADD `ls | grep -oP 'ghdl-.*tgz'` /usr/local
+EOF
+ travis_finish "build_run"
}
#---
@@ -25,17 +16,14 @@ set -e
scriptdir=$(dirname $0)
-. "$scriptdir/travis-utils.sh"
-. "$scriptdir/../ansi_color.sh"
-#disable_color
+. "$scriptdir/utils.sh"
# Display env (to debug)
-echo -en "travis_fold:start:travis_env\r"
-printf "$ANSI_YELLOW[TRAVIS] Travis environment $ANSI_NOCOLOR\n"
+travis_start "travis_env" "$ANSI_YELLOW[TRAVIS] Travis environment $ANSI_NOCOLOR"
env | grep TRAVIS
-echo -en "travis_fold:end:travis_env\r"
+travis_finish "travis_env"
if [ "$IMAGE" = "" ]; then
@@ -44,69 +32,53 @@ if [ "$IMAGE" = "" ]; then
fi
-echo "travis_fold:start:fetch"
+travis_start "fetch" "$ANSI_YELLOW[GHDL - build] git fetch --unshallow $ANSI_NOCOLOR"
# The command 'git describe' (used for version) needs the history. Get it.
# But the following command fails if the repository is complete.
git fetch --unshallow || true
-echo "travis_fold:end:fetch"
+travis_finish "fetch"
+
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
- # Install gnat compiler (use cache)
+ travis_start "ada" "$ANSI_YELLOW[GHDL - build] Install gnat compiler (use cache) $ANSI_NOCOLOR"
./dist/macosx/install-ada.sh || exit 1
PATH=$PWD/gnat/bin:$PATH
+ travis_finish "ada"
fi
-# Compute package name
-
-PKG_SHORTCOMMIT="$(printf $TRAVIS_COMMIT | cut -c1-10)"
-PKG_VER=`grep "ghdl_version=" configure | sed -e 's/.*"\(.*\)";/\1/'`
-if [ -z "$TRAVIS_TAG" ]; then
- # No tag: use date + commit id
- PKG_TAG="$(date -u +%Y%m%d)-$PKG_SHORTCOMMIT";
-elif expr "$TRAVIS_TAG" : 'v[0-9].*' > /dev/null; then
- # Remove leading 'v' in tags in the filenames.
- PKG_TAG="$(echo $TRAVIS_TAG | cut -c2-)"
-else
- # Regular tag (like snapshots), nothing to change.
- PKG_TAG="$TRAVIS_TAG"
-fi
-
-# Extract from IMAGE (defined in .travis.yml)
-IFS='+' read -ra REFS <<< "$IMAGE"
-DDIST=${REFS[0]} # Linux distro (eg: ubuntuXX, fedoraXX)
-DBLD=${REFS[1]} # Build/backend (eg: mcode, llvm)
-DGPL=${REFS[2]} # GPL or not
-
-PKG_NAME="ghdl-${PKG_TAG}-${DDIST}-${DBLD}"
-BUILD_CMD_OPTS="$ENABLECOLOR -b $DBLD"
-if [ "$DGPL" = "gpl" ]; then
- BUILD_CMD_OPTS="$BUILD_CMD_OPTS --gpl"
- PKG_NAME="ghdl-gpl-${PKG_TAG}"
-fi
-BUILD_CMD_OPTS="${BUILD_CMD_OPTS} -p $PKG_NAME"
+# Get build command options
+travis_start "opts" "$ANSI_YELLOW[GHDL - build] Get build command options $ANSI_NOCOLOR"
+buildCmdOpts
echo "build cmd: $BUILD_CMD_OPTS"
-
+travis_finish "opts"
# Build
+RUN="docker run --rm -t -e TRAVIS=$TRAVIS -v $(pwd):/work -w /work"
+
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
bash -c "${scriptdir}/build.sh $BUILD_CMD_OPTS"
else
# Assume linux
- # Build version.tmp and replace version.in with it (so that the version is
- # correctly set).
+ travis_start "version" "$ANSI_YELLOW[GHDL - build] Build version.tmp and replace version.in with it (so that the version is correctly set) $ANSI_NOCOLOR"
# This is a little bit hack-ish, as it assumes that 'git' is not
# available in docker (otherwise it will describe as -dirty
# because this modifies the source file version.in).
ghdl_version_line=`grep -e '^ghdl_version' configure`
make -f Makefile.in srcdir=. $ghdl_version_line version.tmp
cp version.tmp src/version.in
+ travis_finish "version"
- # Run build in docker
IMAGE_TAG=`echo $IMAGE | sed -e 's/+/-/g'`
- docker run --rm -t -v $(pwd):/work -w "/work" ghdl/build:$IMAGE_TAG bash -c "${scriptdir}/build.sh $BUILD_CMD_OPTS"
+
+ travis_start "pull" "$ANSI_YELLOW[GHDL - build] Docker pull ghdl/build:$IMAGE $ANSI_NOCOLOR"
+ docker pull ghdl/build:$IMAGE_TAG
+ travis_finish "pull"
+
+ # Run build in docker
+ $RUN "ghdl/build:$IMAGE_TAG" bash -c "${scriptdir}/build.sh $BUILD_CMD_OPTS"
fi
if [ ! -f build_ok ]; then
@@ -114,7 +86,6 @@ if [ ! -f build_ok ]; then
exit 1
fi
-
# Test
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
@@ -123,7 +94,7 @@ else
# Build ghdl/ghdl:$IMAGE_TAG image
build_img_ghdl
# Run test in docker container
- docker run --rm -t -v $(pwd):/work -w "/work" ghdl/ghdl:$IMAGE_TAG bash -c "GHDL=ghdl ${scriptdir}/test.sh $BUILD_CMD_OPTS"
+ $RUN "ghdl/ghdl:$IMAGE_TAG" bash -c "GHDL=ghdl ${scriptdir}/test.sh $BUILD_CMD_OPTS"
fi
if [ ! -f test_ok ]; then