diff --git a/ghaf-main-pipeline.groovy b/ghaf-main-pipeline.groovy index 3143bf8..4117ac7 100644 --- a/ghaf-main-pipeline.groovy +++ b/ghaf-main-pipeline.groovy @@ -52,6 +52,8 @@ pipeline { utils.nix_build('.#packages.x86_64-linux.nvidia-jetson-orin-nx-debug-from-x86_64', 'archive') utils.nix_build('.#packages.x86_64-linux.lenovo-x1-carbon-gen11-debug', 'archive') utils.nix_build('.#packages.riscv64-linux.microchip-icicle-kit-debug', 'archive') + // Build, but don't archive the build results: + utils.nix_build('.#packages.x86_64-linux.generic-x86_64-debug') utils.nix_build('.#packages.x86_64-linux.doc') } } @@ -75,6 +77,9 @@ pipeline { jenkins_url = "https://ghaf-jenkins-controller-dev.northeurope.cloudapp.azure.com" utils.boot_test('.#packages.x86_64-linux.nvidia-jetson-orin-agx-debug-from-x86_64', 'orin-agx', jenkins_url) utils.boot_test('.#packages.aarch64-linux.nvidia-jetson-orin-agx-debug', 'orin-agx', jenkins_url) + utils.boot_test('.#packages.x86_64-linux.nvidia-jetson-orin-nx-debug-from-x86_64', 'orin-nx', jenkins_url) + utils.boot_test('.#packages.aarch64-linux.nvidia-jetson-orin-nx-debug', 'orin-nx', jenkins_url) + utils.boot_test('.#packages.x86_64-linux.lenovo-x1-carbon-gen11-debug', 'lenovo-x1', jenkins_url) } } } diff --git a/ghaf-test-boot.groovy b/ghaf-test-boot.groovy index cbceddc..ac4593b 100644 --- a/ghaf-test-boot.groovy +++ b/ghaf-test-boot.groovy @@ -83,26 +83,40 @@ pipeline { println "Missing DEVICE_CONFIG_NAME parameter" sh "exit 1" } - mount_cmd = unmount_cmd = devstr = null if(["orin-agx"].contains(params.DEVICE_CONFIG_NAME)) { - // Device-sepcific configuration needed in other steps are passed - // as environment variables env.DEVICE = 'OrinAGX1' env.INCLUDE_TEST_TAGS = 'bootANDorin-agx' - // get usb hub serial number from test_config.json - hub_serial = get_test_conf_property(CONF_FILE_PATH, DEVICE, 'usbhub_serial') - mount_cmd = "/run/wrappers/bin/sudo AcronameHubCLI -u 0 -s ${hub_serial}; sleep 10" - unmount_cmd = "/run/wrappers/bin/sudo AcronameHubCLI -u 1 -s ${hub_serial}" - devstr = 'PSSD' + } else if(["orin-nx"].contains(params.DEVICE_CONFIG_NAME)) { + env.DEVICE = 'OrinNX1' + env.INCLUDE_TEST_TAGS = 'bootANDorin-nx' + } else if(["lenovo-x1"].contains(params.DEVICE_CONFIG_NAME)) { + env.DEVICE = 'LenovoX1-2' + env.INCLUDE_TEST_TAGS = 'bootANDlenovo-x1' } else { println "Error: unsupported device config '${params.DEVICE_CONFIG_NAME}'" sh "exit 1" } + hub_serial = get_test_conf_property(CONF_FILE_PATH, env.DEVICE, 'usbhub_serial') + mount_cmd = "/run/wrappers/bin/sudo AcronameHubCLI -u 0 -s ${hub_serial}; sleep 10" + unmount_cmd = "/run/wrappers/bin/sudo AcronameHubCLI -u 1 -s ${hub_serial}" // Mount the target disk sh "${mount_cmd}" // Read the device name - dev = run_cmd("lsblk -o model,name | grep ${devstr} | rev | cut -d ' ' -f 1 | rev | grep .") + dev = run_cmd("lsblk -o model,name | grep 'PSSD' | rev | cut -d ' ' -f 1 | rev | grep .") println "Using device '$dev'" + if(["lenovo-x1"].contains(params.DEVICE_CONFIG_NAME)) { + echo "Wiping filesystem..." + def SECTOR = 512 + def MIB_TO_SECTORS = 20480 + // Disk size in 512-byte sectors + def SECTORS = sh(script: "/run/wrappers/bin/sudo blockdev --getsz /dev/${dev}", returnStdout: true).trim() + // Unmount possible mounted filesystems + sh "sync; /run/wrappers/bin/sudo umount -q /dev/${dev}* || true" + // Wipe first 10MiB of disk + sh "/run/wrappers/bin/sudo dd if=/dev/zero of=/dev/${dev} bs=${SECTOR} count=${MIB_TO_SECTORS} conv=fsync status=none" + // Wipe last 10MiB of disk + sh "/run/wrappers/bin/sudo dd if=/dev/zero of=/dev/${dev} bs=${SECTOR} count=${MIB_TO_SECTORS} seek=\$(( ${SECTORS} - ${MIB_TO_SECTORS} )) conv=fsync status=none" + } // Write the image img_relpath = run_cmd("find ${TMP_IMG_DIR} -type f -print -quit | grep .") println "Using image '$img_relpath'" @@ -125,6 +139,8 @@ pipeline { withCredentials([ string(credentialsId: 'testagent-dut-pass', variable: 'DUT_PASS'), string(credentialsId: 'testagent-plug-pass', variable: 'PLUG_PASS'), + string(credentialsId: 'testagent-switch-token', variable: 'SW_TOKEN'), + string(credentialsId: 'testagent-switch-secret', variable: 'SW_SECRET'), ]) { dir('Robot-Framework/test-suites') { sh 'rm -f *.png output.xml report.html log.html' @@ -139,6 +155,8 @@ pipeline { -v PASSWORD:$DUT_PASS \ -v PLUG_USERNAME:ville-pekka.juntunen@unikie.com \ -v PLUG_PASSWORD:$PLUG_PASS \ + -v SWITCH_TOKEN:$SW_TOKEN \ + -v SWITCH_SECRET:$SW_SECRET \ -i $INCLUDE_TEST_TAGS . ''' }