From 015efa7d10ac488730001eccfa43db64f97e6cd1 Mon Sep 17 00:00:00 2001 From: Jan-Simon Möller Date: Thu, 9 Mar 2017 02:50:07 +0100 Subject: Add hardware test for release build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8d57767974ebc00c4fa5014a8e82f7eae099650e Signed-off-by: Jan-Simon Möller --- jjb/common/OLD/include-agl-test-nbd-short.sh | 129 +++++++++++++++++++++ jjb/common/include-agl-header.sh | 5 + jjb/common/include-agl-run-test-rsync-changeid.sh | 6 - jjb/common/include-agl-run-test-rsync-release.sh | 38 ++++++ jjb/common/include-agl-run-test-short-release.sh | 129 +++++++++++++++++++++ jjb/common/include-agl-test-nbd-short.sh | 129 --------------------- .../release-jjb-chinook-snapshot.yaml | 6 +- 7 files changed, 305 insertions(+), 137 deletions(-) create mode 100644 jjb/common/OLD/include-agl-test-nbd-short.sh create mode 100644 jjb/common/include-agl-run-test-rsync-release.sh create mode 100644 jjb/common/include-agl-run-test-short-release.sh delete mode 100644 jjb/common/include-agl-test-nbd-short.sh diff --git a/jjb/common/OLD/include-agl-test-nbd-short.sh b/jjb/common/OLD/include-agl-test-nbd-short.sh new file mode 100644 index 00000000..ed50503f --- /dev/null +++ b/jjb/common/OLD/include-agl-test-nbd-short.sh @@ -0,0 +1,129 @@ +# (c) 2016 Jan-Simon Moeller dl9pf(at)gmx.de +# License GPLv2 + +################################################################################ +## Run SHORT CI test +################################################################################ + +# test currently only for porter, rest WIP +TESTRUN=false +echo "## ${MACHINE} ##" + +case ${MACHINE} in + porter-nogfx) + + TESTRUN=true + TARGETMACHINE="porter" + ;; + porter) + TESTRUN=true + TARGETMACHINE="porter" + ;; + *) + TESTRUN=false + ;; +esac + + +TESTRUN=false + +if ${TESTRUN}; then + +echo "#################################" +echo "TEST ENABLED for ${TARGETMACHINE}" +echo "#################################" + +pushd tmp/deploy/images/${TARGETMACHINE}/ + +ROOTFSTOBOOT="none" +KERNELIMAGE="none" +NETBOOTIMAGE="none" +ls + +function checkrootfs(){ + if test -f ./"$1" ; then + eval ROOTFSTOBOOT="$1" + fi +} + + +checkrootfs core-image-minimal-${TARGETMACHINE}.ext4 +checkrootfs agl-image-ivi-${TARGETMACHINE}.ext4 +checkrootfs agl-image-ivi-qa-${TARGETMACHINE}.ext4 +checkrootfs agl-demo-platform-qa-${TARGETMACHINE}.ext4 + +if test x"none" = x"${ROOTFSTOBOOT}"; then + echo "No rootfs to boot. Aborting" + exit 1 +fi + + + +if test x"porter" = x"${TARGETMACHINE}"; then +KERNELIMAGE="zImage+dtb" +NETBOOTIMAGE="initramfs-netboot-image-porter.ext4.gz.u-boot" +fi + +if test x"none" = x"${KERNELIMAGE}"; then + echo "No kernelimage to boot. Aborting" + exit 1 +fi +if test x"none" = x"${NETBOOTIMAGE}"; then + echo "No netbootimage to boot. Aborting" + exit 1 +fi + +function maketmpfile() { + DFILE=`mktemp -u -p ./ | sed -e "s#./##g"` + eval cp -L \$$1 $DFILE + export $1="$DFILE" +} + +maketmpfile ROOTFSTOBOOT +maketmpfile KERNELIMAGE +maketmpfile NETBOOTIMAGE + +set | grep ROOTFSTOBOOT +set | grep KERNELIMAGE +set | grep NETBOOTIMAGE + +bash /opt/AGL/lava-agl/upload4lava.sh ${ROOTFSTOBOOT} +bash /opt/AGL/lava-agl/upload4lava.sh ${KERNELIMAGE} +bash /opt/AGL/lava-agl/upload4lava.sh ${NETBOOTIMAGE} + +cat < porterboot_nbd.yaml +actions: + - command: deploy_linaro_kernel + parameters: + kernel: 'http://localhost/porter/upload/\${KERNELIMAGE}' + nbdroot: 'http://localhost/porter/upload/\${ROOTFSTOBOOT}' + ramdisk: 'http://localhost/porter/upload/\${NETBOOTIMAGE}' + login_prompt: 'porter login:' + username: 'root' + - command: boot_linaro_image + parameters: + test_image_prompt: 'root@porter:~#' + - command: lava_command_run + parameters: + commands: + - "echo '#### START TEST ####'" + - "echo '#### END TEST ####'" + timeout: 3600 +device_type: 'renesas-porter' +logging_level: INFO +job_name: '${JOB_NAME}' +timeout: 1800 + +EOF + +cat /opt/AGL/lava-boot/lava-boot | sed -e 's#"~/.lava.yaml"#"/opt/AGL/lava-agl/lava.yaml"#' > ~/lava-boot +chmod a+x ~/lava-boot + +logfile=$(mktemp) +~/lava-boot porter.automotivelinux.org -j ./porterboot_nbd.yaml -v ROOTFSTOBOOT="${ROOTFSTOBOOT}" -v KERNELIMAGE=${KERNELIMAGE} -v NETBOOTIMAGE=${NETBOOTIMAGE} 2>&1 | tee $logfile + + +popd + + +fi \ No newline at end of file diff --git a/jjb/common/include-agl-header.sh b/jjb/common/include-agl-header.sh index 7268ebce..e6ca163f 100644 --- a/jjb/common/include-agl-header.sh +++ b/jjb/common/include-agl-header.sh @@ -38,6 +38,11 @@ export TARGETIMAGEnogfx="core-image-minimal" export TARGETSDK="populate_sdk" +export TARGETMACHINE=${MACHINE} +if test x"porter-nogfx" = x"${MACHINE}" ; then + export TARGETMACHINE="porter" +fi + # apply GERRIT_* if test -n "${GERRIT_PROJECT}"; then export TARGETPROJECT="${GERRIT_PROJECT}" diff --git a/jjb/common/include-agl-run-test-rsync-changeid.sh b/jjb/common/include-agl-run-test-rsync-changeid.sh index 170c6bf1..64165553 100644 --- a/jjb/common/include-agl-run-test-rsync-changeid.sh +++ b/jjb/common/include-agl-run-test-rsync-changeid.sh @@ -25,12 +25,6 @@ cd output pwd ls -alhR tmp/deploy/images -export TARGETMACHINE=${MACHINE} -if test x"porter-nogfx" = x"${MACHINE}" ; then -export TARGETMACHINE="porter" -fi - - # copy files to $DEST for i in DEVICE_DTB DEVICE_KERNEL DEVICE_INITRAMFS DEVICE_NBDROOT; do eval cp -avL tmp/deploy/images/${TARGETMACHINE}/$(echo "$"${i}) ${DEST}/ diff --git a/jjb/common/include-agl-run-test-rsync-release.sh b/jjb/common/include-agl-run-test-rsync-release.sh new file mode 100644 index 00000000..85605494 --- /dev/null +++ b/jjb/common/include-agl-run-test-rsync-release.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +#set -x +set -e + +echo "\n\n\n" +echo "#########################################" +echo "\n\n\n" + + +export RSYNCDST="/srv/download/AGL/upload/ci/${RELEASE_BRANCH}/${RELEASE_VERSION}" +export RSYNCSRC=$(pwd)/UPLOAD/ + +# construct upload folder +mv UPLOAD UPLOAD2 || true +rm -rf UPLOAD2 || true +mkdir -p UPLOAD/${MACHINE} +export DEST=$(pwd)/UPLOAD/${MACHINE} + + +cd $REPODIR + +cd output + +pwd +ls -alhR tmp/deploy/images + +# copy files to $DEST +for i in DEVICE_DTB DEVICE_KERNEL DEVICE_INITRAMFS DEVICE_NBDROOT; do + eval cp -avL tmp/deploy/images/${TARGETMACHINE}/$(echo "$"${i}) ${DEST}/ +done + +tree $DEST +ls -alhR $DEST + +ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 mkdir -p ${RSYNCDST} + +rsync -avr -L -e "ssh -o StrictHostKeyChecking=no" $RSYNCSRC jenkins-slave@10.30.72.8:$RSYNCDST diff --git a/jjb/common/include-agl-run-test-short-release.sh b/jjb/common/include-agl-run-test-short-release.sh new file mode 100644 index 00000000..11cfc5a1 --- /dev/null +++ b/jjb/common/include-agl-run-test-short-release.sh @@ -0,0 +1,129 @@ +# (c) 2016 Jan-Simon Moeller dl9pf(at)gmx.de +# License GPLv2 + +################################################################################ +## Run SHORT CI test +################################################################################ + + +set -x + +echo "## ${MACHINE} ##" +cd $REPODIR + +echo "default keyring config" +mkdir -p ~/.local/share/python_keyring/ +cat < ~/.local/share/python_keyring/keyringrc.cfg +[backend] +default-keyring=keyring.backends.file.PlaintextKeyring +EOF + +cat < ~/.local/token +$AGLLAVATOKEN +EOF + +lava-tool auth-add --token-file ~/.local/token https://agl-jenkins-user@porter.automotivelinux.org +rm ~/.local/token + +echo "## $TESTJOBFILE ##" + +if [ -e $TESTJOBFILE ] ; then + echo "Using $TESTJOBFILE ..." + cp $TESTJOBFILE testjob.yaml +else + echo "!! NO TESTJOBFILE - trying to continue with a default !!" +fi + +cat < testjob.yaml +# Your first LAVA JOB definition for a $MACHINE board +device_type: @REPLACE_DEVICE_TYPE@ +job_name: AGL-short-smoke + +protocols: + lava-xnbd: + port: auto + +timeouts: + job: + minutes: 30 + action: + minutes: 15 + connection: + minutes: 5 +priority: medium +visibility: public + +# ACTION_BLOCK +actions: +- deploy: + timeout: + minutes: 10 + to: nbd + dtb: + url: '@REPLACE_URL_PREFIX@/@REPLACE_DTB@' + kernel: + url: '@REPLACE_URL_PREFIX@/@REPLACE_KERNEL@' + initrd: + url: '@REPLACE_URL_PREFIX@/@REPLACE_INITRAMFS@' + allow_modify: false + nbdroot: + url: '@REPLACE_URL_PREFIX@/@REPLACE_NBDROOT@' + compression: @REPLACE_NBDROOT_COMPRESSION@ + os: debian + failure_retry: 2 + +# BOOT_BLOCK +- boot: + method: @REPLACE_BOOT_METHOD@ + commands: nbd + type: @REPLACE_BOOT_TYPE@ + prompts: ["root@@REPLACE_MACHINE@:~"] + auto_login: + login_prompt: "login:" + username: root + +EOF + +CHID=${RELEASE_BRANCH}/${RELEASE_VERSION}/${MACHINE} +# REPLACE_DEVICE_TYPE +sed -i -e "s#@REPLACE_DEVICE_TYPE@#${DEVICE_TYPE}#g" testjob.yaml +sed -i -e "s#@REPLACE_DTB@#${CHID}/${DEVICE_DTB}#g" testjob.yaml +sed -i -e "s#@REPLACE_KERNEL@#${CHID}/${DEVICE_KERNEL}#g" testjob.yaml +sed -i -e "s#@REPLACE_INITRAMFS@#${CHID}/${DEVICE_INITRAMFS}#g" testjob.yaml +sed -i -e "s#@REPLACE_NBDROOT@#${CHID}/${DEVICE_NBDROOT}#g" testjob.yaml +sed -i -e "s#@REPLACE_NBDROOT_COMPRESSION@#${DEVICE_NBDROOT_COMPRESSION}#g" testjob.yaml +sed -i -e "s#@REPLACE_BOOT_METHOD@#${DEVICE_BOOT_METHOD}#g" testjob.yaml +sed -i -e "s#@REPLACE_BOOT_TYPE@#${DEVICE_BOOT_TYPE}#g" testjob.yaml +sed -i -e "s#@REPLACE_MACHINE@#${DEVICE_NAME}#g" testjob.yaml +sed -i -e "s#@REPLACE_URL_PREFIX@#${DEVICE_URL_PREFIX}#g" testjob.yaml + +cat testjob.yaml + +lava-tool submit-job --block https://agl-jenkins-user@porter.automotivelinux.org testjob.yaml | tee .myjob + +MYJOB=`cat .myjob | grep "submitted as job" | sed -e "s#submitted as job id: ##g"` + +echo "#### JOBID: $MYJOB #####" + +( lava-tool job-status https://agl-jenkins-user@porter.automotivelinux.org $MYJOB | tee .status ) || true +STATUS=`grep "Job Status:" .status | sed -e "s#Job Status: ##g"` + +if [ x"Complete" = x"$STATUS" ] ; then + echo "YAY! $STATUS" + curl -o plain_output.yaml https://porter.automotivelinux.org/scheduler/job/$MYJOB/log_file/plain + cat plain_output.yaml | grep '"target",' | sed -e 's#- {"dt".*"lvl".*"msg":."##g' -e 's#"}$##g' + + # cleanup + #ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 rm -rf /srv/download/AGL/upload/ci/${CHID}/ + + exit 0 +else + echo "Nooooooooo! $STATUS" + curl -o plain_output.yaml https://porter.automotivelinux.org/scheduler/job/$MYJOB/log_file/plain + cat plain_output.yaml | grep '"target",' | sed -e 's#- {"dt".*"lvl".*"msg":."##g' -e 's#"}$##g' + + # cleanup + #ssh -o StrictHostKeyChecking=no jenkins-slave@10.30.72.8 rm -rf /srv/download/AGL/upload/ci/${CHID}/ + + exit 1 +fi diff --git a/jjb/common/include-agl-test-nbd-short.sh b/jjb/common/include-agl-test-nbd-short.sh deleted file mode 100644 index ed50503f..00000000 --- a/jjb/common/include-agl-test-nbd-short.sh +++ /dev/null @@ -1,129 +0,0 @@ -# (c) 2016 Jan-Simon Moeller dl9pf(at)gmx.de -# License GPLv2 - -################################################################################ -## Run SHORT CI test -################################################################################ - -# test currently only for porter, rest WIP -TESTRUN=false -echo "## ${MACHINE} ##" - -case ${MACHINE} in - porter-nogfx) - - TESTRUN=true - TARGETMACHINE="porter" - ;; - porter) - TESTRUN=true - TARGETMACHINE="porter" - ;; - *) - TESTRUN=false - ;; -esac - - -TESTRUN=false - -if ${TESTRUN}; then - -echo "#################################" -echo "TEST ENABLED for ${TARGETMACHINE}" -echo "#################################" - -pushd tmp/deploy/images/${TARGETMACHINE}/ - -ROOTFSTOBOOT="none" -KERNELIMAGE="none" -NETBOOTIMAGE="none" -ls - -function checkrootfs(){ - if test -f ./"$1" ; then - eval ROOTFSTOBOOT="$1" - fi -} - - -checkrootfs core-image-minimal-${TARGETMACHINE}.ext4 -checkrootfs agl-image-ivi-${TARGETMACHINE}.ext4 -checkrootfs agl-image-ivi-qa-${TARGETMACHINE}.ext4 -checkrootfs agl-demo-platform-qa-${TARGETMACHINE}.ext4 - -if test x"none" = x"${ROOTFSTOBOOT}"; then - echo "No rootfs to boot. Aborting" - exit 1 -fi - - - -if test x"porter" = x"${TARGETMACHINE}"; then -KERNELIMAGE="zImage+dtb" -NETBOOTIMAGE="initramfs-netboot-image-porter.ext4.gz.u-boot" -fi - -if test x"none" = x"${KERNELIMAGE}"; then - echo "No kernelimage to boot. Aborting" - exit 1 -fi -if test x"none" = x"${NETBOOTIMAGE}"; then - echo "No netbootimage to boot. Aborting" - exit 1 -fi - -function maketmpfile() { - DFILE=`mktemp -u -p ./ | sed -e "s#./##g"` - eval cp -L \$$1 $DFILE - export $1="$DFILE" -} - -maketmpfile ROOTFSTOBOOT -maketmpfile KERNELIMAGE -maketmpfile NETBOOTIMAGE - -set | grep ROOTFSTOBOOT -set | grep KERNELIMAGE -set | grep NETBOOTIMAGE - -bash /opt/AGL/lava-agl/upload4lava.sh ${ROOTFSTOBOOT} -bash /opt/AGL/lava-agl/upload4lava.sh ${KERNELIMAGE} -bash /opt/AGL/lava-agl/upload4lava.sh ${NETBOOTIMAGE} - -cat < porterboot_nbd.yaml -actions: - - command: deploy_linaro_kernel - parameters: - kernel: 'http://localhost/porter/upload/\${KERNELIMAGE}' - nbdroot: 'http://localhost/porter/upload/\${ROOTFSTOBOOT}' - ramdisk: 'http://localhost/porter/upload/\${NETBOOTIMAGE}' - login_prompt: 'porter login:' - username: 'root' - - command: boot_linaro_image - parameters: - test_image_prompt: 'root@porter:~#' - - command: lava_command_run - parameters: - commands: - - "echo '#### START TEST ####'" - - "echo '#### END TEST ####'" - timeout: 3600 -device_type: 'renesas-porter' -logging_level: INFO -job_name: '${JOB_NAME}' -timeout: 1800 - -EOF - -cat /opt/AGL/lava-boot/lava-boot | sed -e 's#"~/.lava.yaml"#"/opt/AGL/lava-agl/lava.yaml"#' > ~/lava-boot -chmod a+x ~/lava-boot - -logfile=$(mktemp) -~/lava-boot porter.automotivelinux.org -j ./porterboot_nbd.yaml -v ROOTFSTOBOOT="${ROOTFSTOBOOT}" -v KERNELIMAGE=${KERNELIMAGE} -v NETBOOTIMAGE=${NETBOOTIMAGE} 2>&1 | tee $logfile - - -popd - - -fi \ No newline at end of file diff --git a/jjb/release-jjb-chinook-snapshot/release-jjb-chinook-snapshot.yaml b/jjb/release-jjb-chinook-snapshot/release-jjb-chinook-snapshot.yaml index ae842c14..262da665 100644 --- a/jjb/release-jjb-chinook-snapshot/release-jjb-chinook-snapshot.yaml +++ b/jjb/release-jjb-chinook-snapshot/release-jjb-chinook-snapshot.yaml @@ -76,12 +76,14 @@ - ../common/include-agl-limit-parallelism.sh - ../common/include-agl-cat-auto-conf.sh - ../common/include-agl-local-conf-archiver.sh -# - ../common/include-agl-local-conf-isafw.sh + - ../common/include-agl-local-conf-isafw.sh - ../common/include-agl-local-conf-fstypes.sh - ../common/include-agl-local-conf-vmdk.sh - ../common/include-agl-bitbake-image.sh - ../common/include-agl-bitbake-sdk.sh - - ../common/include-agl-test-nbd-short.sh + - ../common/include-agl-run-test-prepare.sh + - ../common/include-agl-run-test-rsync-release.sh + - ../common/include-agl-run-test-short-release.sh - shell: !include-raw-escape: include-release-jjb-chinook-snapshot-rsync.sh -- cgit 1.2.3-korg