1 | #!/usr/bin/env bash
|
---|
2 | # shellcheck disable=SC2086 # we want word splitting
|
---|
3 |
|
---|
4 | set -ex
|
---|
5 |
|
---|
6 | # If we run in the fork (not from mesa or Marge-bot), reuse mainline kernel and rootfs, if exist.
|
---|
7 | BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_MAINLINE_HOST_PATH}"
|
---|
8 | if [ "$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
|
---|
16 | fi
|
---|
17 |
|
---|
18 | rm -rf results
|
---|
19 | mkdir -p results/job-rootfs-overlay/
|
---|
20 |
|
---|
21 | cp artifacts/ci-common/capture-devcoredump.sh results/job-rootfs-overlay/
|
---|
22 | cp artifacts/ci-common/init-*.sh results/job-rootfs-overlay/
|
---|
23 | cp artifacts/ci-common/intel-gpu-freq.sh results/job-rootfs-overlay/
|
---|
24 | cp artifacts/ci-common/kdl.sh results/job-rootfs-overlay/
|
---|
25 | cp "$SCRIPTS_DIR"/setup-test-env.sh results/job-rootfs-overlay/
|
---|
26 |
|
---|
27 | # Prepare env vars for upload.
|
---|
28 | section_start variables "Variables passed through:"
|
---|
29 | artifacts/ci-common/generate-env.sh | tee results/job-rootfs-overlay/set-job-env-vars.sh
|
---|
30 | section_end variables
|
---|
31 |
|
---|
32 | tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ .
|
---|
33 | ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}"
|
---|
34 |
|
---|
35 | ARTIFACT_URL="${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME:?}.tar.zst"
|
---|
36 |
|
---|
37 | touch results/lava.log
|
---|
38 | tail -f results/lava.log &
|
---|
39 | PYTHONPATH=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
|
---|