1#!/usr/bin/env bash 2# shellcheck disable=SC2086 # we want word splitting 3 4set -ex 5 6# If we run in the fork (not from mesa or Marge-bot), reuse mainline kernel and rootfs, if exist. 7BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_MAINLINE_HOST_PATH}" 8if [ "$CI_PROJECT_PATH" != "$FDO_UPSTREAM_REPO" ]; then 9 if ! curl -s -X HEAD -L --retry 4 -f --retry-delay 60 \ 10 "https://${BASE_SYSTEM_MAINLINE_HOST_PATH}/done"; then 11 echo "Using kernel and rootfs from the fork, cached from mainline is unavailable." 12 BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_FORK_HOST_PATH}" 13 else 14 echo "Using the cached mainline kernel and rootfs." 15 fi 16fi 17 18rm -rf results 19mkdir -p results/job-rootfs-overlay/ 20 21cp artifacts/ci-common/capture-devcoredump.sh results/job-rootfs-overlay/ 22cp artifacts/ci-common/init-*.sh results/job-rootfs-overlay/ 23cp artifacts/ci-common/intel-gpu-freq.sh results/job-rootfs-overlay/ 24cp artifacts/ci-common/kdl.sh results/job-rootfs-overlay/ 25cp "$SCRIPTS_DIR"/setup-test-env.sh results/job-rootfs-overlay/ 26 27# Prepare env vars for upload. 28section_start variables "Variables passed through:" 29artifacts/ci-common/generate-env.sh | tee results/job-rootfs-overlay/set-job-env-vars.sh 30section_end variables 31 32tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ . 33ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}" 34 35ARTIFACT_URL="${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME:?}.tar.zst" 36 37touch results/lava.log 38tail -f results/lava.log & 39PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \ 40 submit \ 41 --dump-yaml \ 42 --pipeline-info "$CI_JOB_NAME: $CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \ 43 --rootfs-url-prefix "https://${BASE_SYSTEM_HOST_PATH}" \ 44 --kernel-url-prefix "${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}" \ 45 --kernel-external "${FORCE_KERNEL_TAG}" \ 46 --build-url "${ARTIFACT_URL}" \ 47 --job-rootfs-overlay-url "${FDO_HTTP_CACHE_URI:-}https://${JOB_ROOTFS_OVERLAY_PATH}" \ 48 --job-timeout-min ${JOB_TIMEOUT:-30} \ 49 --first-stage-init artifacts/ci-common/init-stage1.sh \ 50 --ci-project-dir "${CI_PROJECT_DIR}" \ 51 --device-type "${DEVICE_TYPE}" \ 52 --dtb-filename "${DTB}" \ 53 --jwt-file "${CI_JOB_JWT_FILE}" \ 54 --kernel-image-name "${KERNEL_IMAGE_NAME}" \ 55 --kernel-image-type "${KERNEL_IMAGE_TYPE}" \ 56 --boot-method "${BOOT_METHOD}" \ 57 --visibility-group "${VISIBILITY_GROUP}" \ 58 --lava-tags "${LAVA_TAGS}" \ 59 --mesa-job-name "$CI_JOB_NAME" \ 60 --structured-log-file "results/lava_job_detail.json" \ 61 --ssh-client-image "${LAVA_SSH_CLIENT_IMAGE}" \ 62 --project-name "${CI_PROJECT_NAME}" \ 63 >> results/lava.log 64