aboutsummaryrefslogtreecommitdiffstats
path: root/dist/linux
diff options
context:
space:
mode:
author1138-4EB <1138-4EB@users.noreply.github.com>2017-02-14 19:13:00 +0100
committertgingold <tgingold@users.noreply.github.com>2017-02-14 19:13:00 +0100
commitde9c5ceb7923a896b888656fdd1f1cd238b830e0 (patch)
tree09b247593cab5d1258b74d3dded8d3feb1e32a21 /dist/linux
parentf7e455245d9d12f69e2bb8eb67a84c1961cc20f3 (diff)
downloadghdl-de9c5ceb7923a896b888656fdd1f1cd238b830e0.tar.gz
ghdl-de9c5ceb7923a896b888656fdd1f1cd238b830e0.tar.bz2
ghdl-de9c5ceb7923a896b888656fdd1f1cd238b830e0.zip
Replace travis-ci matrix with docker containers (#272)
* Extract tag declarations from <travis-ci.sh>. Rename it to <buildtest.sh> and allow to pass -b (BLD) and -f (PKG_FILE) as arguments. Save tag declarations in <travis-ci.sh>, with a different meaning now. Modify <.travis.yml> accordingly. * chmod +x ./dist/buildtest.sh. Can be removed bi changing permissions. * Replace travis builds with docker containers. ubu1404+llvm-3.5, ubu1204+llvm-3.8, ubu+mcode, fed+mcode and fed+llvm Add PKG_DTAG and SHORT_COMMIT after PKG_FILE, to avoid collisions. DOCKER_IMG used to set image to be used in docker build. <mv> is enough if the host dir is mounted in the container. Since multiple files are added, content in <dist> split to <dist/lin> and <dist/win>. Git depth set to 10 in <.travis.yml> * Fix paths lin/linux and win/windows. Remove '_compile'. Revome wrong placed old buildtest. Add conditional builds (3). Leave 2 fixed.
Diffstat (limited to 'dist/linux')
-rw-r--r--dist/linux/buildtest.sh71
-rw-r--r--dist/linux/docker-buildtest.sh22
-rw-r--r--dist/linux/envs/fedora_llvm.sh2
-rw-r--r--dist/linux/envs/fedora_mcode.sh2
-rw-r--r--dist/linux/envs/ubuntu1204_llvm38.sh2
-rw-r--r--dist/linux/envs/ubuntu1404_llvm35.sh2
-rw-r--r--dist/linux/envs/ubuntu_mcode.sh2
-rwxr-xr-xdist/linux/travis-ci.sh12
8 files changed, 115 insertions, 0 deletions
diff --git a/dist/linux/buildtest.sh b/dist/linux/buildtest.sh
new file mode 100644
index 000000000..884a30cb8
--- /dev/null
+++ b/dist/linux/buildtest.sh
@@ -0,0 +1,71 @@
+#! /bin/sh
+# This script is executed in the travis-ci environment.
+
+# Stop in case of error
+set -e
+
+while getopts ":b:f:" opt; do
+ case $opt in
+ b) BLD=$OPTARG ;;
+ f) PKG_FILE=$OPTARG;;
+ \?) echo "Invalid option: -$OPTARG" >&2; exit 1 ;;
+ :) echo "Option -$OPTARG requires an argument." >&2; exit 1 ;;
+ esac
+done
+
+CDIR=$(pwd)
+
+# Display environment
+echo "Environment:"
+env
+
+# Prepare
+prefix="$CDIR/install-$BLD"
+mkdir "$prefix"
+mkdir "build-$BLD"
+cd "build-$BLD"
+
+# Configure
+case "$BLD" in
+ mcode)
+ ../configure --prefix="$prefix"
+ MAKEOPTS=""
+ ;;
+
+ llvm)
+ ../configure --prefix="$prefix$" --with-llvm-config
+ ;;
+
+ llvm-3.5)
+ ../configure --prefix="$prefix" --with-llvm-config=llvm-config-3.5
+ MAKEOPTS="CXX=clang++"
+ ;;
+
+ llvm-3.8)
+ ../configure --prefix="$prefix" --with-llvm-config=llvm-config-3.8
+ MAKEOPTS="CXX=clang++-3.8"
+ ;;
+
+ docker) echo "Check docker container!"; exit 0;;
+
+ *)
+ echo "unknown build $BLD"
+ exit 1
+ ;;
+esac
+
+# Build
+make $MAKEOPTS
+make install
+cd ..
+
+# Package
+echo "creating $PKG_FILE"
+tar -zcvf "$PKG_FILE" -C "$prefix" .
+
+# Test
+export GHDL="$CDIR/install-$BLD/bin/ghdl"
+cd testsuite
+gnatmake get_entities
+./testsuite.sh
+cd .. \ No newline at end of file
diff --git a/dist/linux/docker-buildtest.sh b/dist/linux/docker-buildtest.sh
new file mode 100644
index 000000000..5c921b18e
--- /dev/null
+++ b/dist/linux/docker-buildtest.sh
@@ -0,0 +1,22 @@
+set -ev
+
+docker pull "$DOCKER_IMG"
+
+if [ -z "$DONTGRAB_SRCS" ]; then
+
+ 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"
+
+ docker run --name ghdl_cmp -it "$DOCKER_IMG" sh -c "$p && sh ./dist/linux/buildtest.sh -b $DBLD -f $PKG_FILE"
+ docker cp "ghdl_cmp:/work/$PKG_FILE" ./
+
+else
+
+ docker run --name ghdl_cmp -itv $(pwd):/work:Z "$DOCKER_IMG" sh -c "cd /work && sh ./dist/linux/buildtest.sh -b $DBLD -f $PKG_FILE"
+
+fi
+
+docker rm ghdl_cmp
+
+
diff --git a/dist/linux/envs/fedora_llvm.sh b/dist/linux/envs/fedora_llvm.sh
new file mode 100644
index 000000000..c44857c51
--- /dev/null
+++ b/dist/linux/envs/fedora_llvm.sh
@@ -0,0 +1,2 @@
+BLD=fed+llvm
+DOCKER_IMG="ghdl/ghdl-tools:fedora-llvm-mcode" \ No newline at end of file
diff --git a/dist/linux/envs/fedora_mcode.sh b/dist/linux/envs/fedora_mcode.sh
new file mode 100644
index 000000000..3ddb515bf
--- /dev/null
+++ b/dist/linux/envs/fedora_mcode.sh
@@ -0,0 +1,2 @@
+BLD=fed+mcode
+DOCKER_IMG="ghdl/ghdl-tools:fedora-llvm-mcode" \ No newline at end of file
diff --git a/dist/linux/envs/ubuntu1204_llvm38.sh b/dist/linux/envs/ubuntu1204_llvm38.sh
new file mode 100644
index 000000000..5f68d2ab0
--- /dev/null
+++ b/dist/linux/envs/ubuntu1204_llvm38.sh
@@ -0,0 +1,2 @@
+BLD=ubu1204+llvm-3.8
+DOCKER_IMG="ghdl/ghdl-tools:ubuntu1204-llvm" \ No newline at end of file
diff --git a/dist/linux/envs/ubuntu1404_llvm35.sh b/dist/linux/envs/ubuntu1404_llvm35.sh
new file mode 100644
index 000000000..bf4baf236
--- /dev/null
+++ b/dist/linux/envs/ubuntu1404_llvm35.sh
@@ -0,0 +1,2 @@
+BLD=ubu1404+llvm-3.5
+DOCKER_IMG="ghdl/ghdl-tools:ubuntu1404-llvm" \ No newline at end of file
diff --git a/dist/linux/envs/ubuntu_mcode.sh b/dist/linux/envs/ubuntu_mcode.sh
new file mode 100644
index 000000000..e6f7c3232
--- /dev/null
+++ b/dist/linux/envs/ubuntu_mcode.sh
@@ -0,0 +1,2 @@
+BLD=ubu+mcode
+DOCKER_IMG="ghdl/ghdl-tools:ubuntu-mcode" \ No newline at end of file
diff --git a/dist/linux/travis-ci.sh b/dist/linux/travis-ci.sh
new file mode 100755
index 000000000..1b683833c
--- /dev/null
+++ b/dist/linux/travis-ci.sh
@@ -0,0 +1,12 @@
+IFS='+' read -ra REFS <<< "$BLD"
+
+DBLD=${REFS[1]}
+PKG_DTAG=${REFS[0]}
+PKG_SHORTCOMMIT="$(echo $TRAVIS_COMMIT | cut -c1-10)"
+PKG_VER=`grep Ghdl_Ver src/version.in | sed -e 's/.*"\(.*\)";/\1/'`
+PKG_TAG="$TRAVIS_TAG"
+
+if [ -z "$BUILDTHIS" ]; then BUILDTHIS=$(echo "$TRAVIS_TAG"); fi
+if [ -z "$TRAVIS_TAG" ]; then PKG_TAG=`date -u +%Y%m%d`; fi
+
+export PKG_FILE="ghdl-$PKG_VER-$DBLD-$PKG_TAG-$PKG_DTAG-$PKG_SHORTCOMMIT.tgz" \ No newline at end of file