From 12749e50a290fc1c1a80322d0317de0c699f54d0 Mon Sep 17 00:00:00 2001 From: Alessandro Thea Date: Tue, 28 Feb 2017 00:53:18 +0100 Subject: [PATCH 1/3] Simplified build script, first version --- tests/ci/test_build.sh | 75 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 tests/ci/test_build.sh diff --git a/tests/ci/test_build.sh b/tests/ci/test_build.sh new file mode 100755 index 000000000..540344d88 --- /dev/null +++ b/tests/ci/test_build.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + + +SH_SOURCE=${BASH_SOURCE} +IPBUS_ROOT=$(cd $(dirname ${SH_SOURCE})/../.. && pwd) +PROJECTS=(sim enclustra_ax3_pm3_a35 enclustra_ax3_pm3_a50 kc705_basex kc705_gmii kcu105_basex) + +if (( $# != 1 )); then + echo "No project specified." + echo "Available projects: ${PROJECTS[@]}" + + exit -1 +fi +PROJ=$1 +if [[ ! " ${PROJECTS[@]} " =~ " ${PROJ} " ]]; then + # whatever you want to do when arr doesn't contain value + echo "Project ${PROJ} not known." + echo "Available projects: ${PROJECTS[@]}" + exit -1 +fi + +# Stop on the first error +set -e + +echo "#------------------------------------------------" +echo "Building Project ${PROJ}" +echo "#------------------------------------------------" +if [[ "$PROJ" == "sim" ]]; then + ipbb proj create sim sim ipbus-firmware:boards/sim + cd $(ipbb proj path ${PROJ}) + ipbb sim ipcores fli project +else + ipbb proj create vivado -t top_${PROJ}.dep ${PROJ} ipbus-firmware:projects/example + cd $(ipbb proj path ${PROJ}) + ipbb vivado project synth impl bitfile +fi + +exit 0 + + +# Simulation +ipbb proj create sim sim ipbus-firmware:boards/sim +cd proj/sim +set +e +{ +ipbb sim ipcores fli project && ./vsim -c work.top -do "run 10 us; quit" +} || { + echo "ERROR: sim test failed" >> ${TEST_ROOT}/failures.log +} +set -e + +# Vivado projects +TEST_PROJ_ARRAY=(enclustra_ax3_pm3_a35 enclustra_ax3_pm3_a50 kc705_basex kc705_gmii kcu105_basex) + +for TEST_PROJ in "${TEST_PROJ_ARRAY[@]}"; do + echo "#------------------------------------------------" + echo "# Testing ${TEST_PROJ}" + echo "#------------------------------------------------" + cd ${TEST_ROOT} + ipbb proj create vivado -t top_${TEST_PROJ}.dep ${TEST_PROJ} ipbus-firmware:projects/example + cd proj/${TEST_PROJ} + set +e + ipbb vivado project synth impl bitfile || echo "ERROR: ${TEST_PROJ} build failed" >> ${TEST_ROOT}/failures.log + set -e +done + +echo "#------------------------------------------------" +echo "# Summary" +echo "#------------------------------------------------" + +if [ -f ${TEST_ROOT}/failures.log ]; then + echo "Build Error detected!" + cat ${TEST_ROOT}/failures.log + return -1 +fi From fe24fe71539221cf0c335b95ccd2a990d2a40acd Mon Sep 17 00:00:00 2001 From: Alessandro Thea Date: Tue, 28 Feb 2017 01:00:29 +0100 Subject: [PATCH 2/3] Cleaned up ci script. --- tests/ci/test_build.sh | 43 ++---------------------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/tests/ci/test_build.sh b/tests/ci/test_build.sh index 540344d88..cd7679b19 100755 --- a/tests/ci/test_build.sh +++ b/tests/ci/test_build.sh @@ -27,49 +27,10 @@ echo "Building Project ${PROJ}" echo "#------------------------------------------------" if [[ "$PROJ" == "sim" ]]; then ipbb proj create sim sim ipbus-firmware:boards/sim - cd $(ipbb proj path ${PROJ}) - ipbb sim ipcores fli project + ipbb sim -p ${PROJ} ipcores fli project else ipbb proj create vivado -t top_${PROJ}.dep ${PROJ} ipbus-firmware:projects/example - cd $(ipbb proj path ${PROJ}) - ipbb vivado project synth impl bitfile + ipbb vivado -p ${PROJ} project synth impl bitfile fi exit 0 - - -# Simulation -ipbb proj create sim sim ipbus-firmware:boards/sim -cd proj/sim -set +e -{ -ipbb sim ipcores fli project && ./vsim -c work.top -do "run 10 us; quit" -} || { - echo "ERROR: sim test failed" >> ${TEST_ROOT}/failures.log -} -set -e - -# Vivado projects -TEST_PROJ_ARRAY=(enclustra_ax3_pm3_a35 enclustra_ax3_pm3_a50 kc705_basex kc705_gmii kcu105_basex) - -for TEST_PROJ in "${TEST_PROJ_ARRAY[@]}"; do - echo "#------------------------------------------------" - echo "# Testing ${TEST_PROJ}" - echo "#------------------------------------------------" - cd ${TEST_ROOT} - ipbb proj create vivado -t top_${TEST_PROJ}.dep ${TEST_PROJ} ipbus-firmware:projects/example - cd proj/${TEST_PROJ} - set +e - ipbb vivado project synth impl bitfile || echo "ERROR: ${TEST_PROJ} build failed" >> ${TEST_ROOT}/failures.log - set -e -done - -echo "#------------------------------------------------" -echo "# Summary" -echo "#------------------------------------------------" - -if [ -f ${TEST_ROOT}/failures.log ]; then - echo "Build Error detected!" - cat ${TEST_ROOT}/failures.log - return -1 -fi From 3e90070ea6f0c3d9ee33c0b9679356a543956f79 Mon Sep 17 00:00:00 2001 From: Alessandro Thea Date: Tue, 28 Feb 2017 17:47:55 +0100 Subject: [PATCH 3/3] test_build script: cleanup old projects before building --- tests/ci/test_build.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/ci/test_build.sh b/tests/ci/test_build.sh index cd7679b19..7749dca65 100755 --- a/tests/ci/test_build.sh +++ b/tests/ci/test_build.sh @@ -2,7 +2,9 @@ SH_SOURCE=${BASH_SOURCE} -IPBUS_ROOT=$(cd $(dirname ${SH_SOURCE})/../.. && pwd) +IPBUS_PATH=$(cd $(dirname ${SH_SOURCE})/../.. && pwd) +WORK_ROOT=$(cd ${IPBUS_PATH}/../.. && pwd) + PROJECTS=(sim enclustra_ax3_pm3_a35 enclustra_ax3_pm3_a50 kc705_basex kc705_gmii kcu105_basex) if (( $# != 1 )); then @@ -21,16 +23,24 @@ fi # Stop on the first error set -e +set -x +cd ${WORK_ROOT} +rm -rf proj/${PROJ} echo "#------------------------------------------------" echo "Building Project ${PROJ}" echo "#------------------------------------------------" if [[ "$PROJ" == "sim" ]]; then ipbb proj create sim sim ipbus-firmware:boards/sim - ipbb sim -p ${PROJ} ipcores fli project + ipbb sim -p ${PROJ} ipcores + ipbb sim -p ${PROJ} fli + ipbb sim -p ${PROJ} project else ipbb proj create vivado -t top_${PROJ}.dep ${PROJ} ipbus-firmware:projects/example - ipbb vivado -p ${PROJ} project synth impl bitfile + ipbb vivado -p ${PROJ} project + ipbb vivado -p ${PROJ} synth + ipbb vivado -p ${PROJ} impl + ipbb vivado -p ${PROJ} bitfile fi exit 0