mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-14 05:49:55 +00:00
The current s3cp implementation does not work anymore after the migration, and instead of fixing it and propagating the fix down to us, it's simpler to directly use curl. Uprev mesa [1][2] to adapt these changes. Also replace broken s3cp command with a curl wrapper call in drm-ci. [1] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34120 [2] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34244 Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com> Patchwork: https://patchwork.freedesktop.org/patch/645597/ Signed-off-by: Rob Clark <robdclark@chromium.org>
104 lines
3.6 KiB
Bash
Executable File
104 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: MIT
|
|
# shellcheck disable=SC2086 # we want word splitting
|
|
# shellcheck disable=SC1091 # paths only become valid at runtime
|
|
|
|
# If we run in the fork (not from mesa or Marge-bot), reuse mainline kernel and rootfs, if exist.
|
|
_check_artifact_path() {
|
|
_url="https://${1}/${2}"
|
|
if curl -s -o /dev/null -I -L -f --retry 4 --retry-delay 15 "${_url}"; then
|
|
echo -n "${_url}"
|
|
fi
|
|
}
|
|
|
|
get_path_to_artifact() {
|
|
_mainline_artifact="$(_check_artifact_path ${BASE_SYSTEM_MAINLINE_HOST_PATH} ${1})"
|
|
if [ -n "${_mainline_artifact}" ]; then
|
|
echo -n "${_mainline_artifact}"
|
|
return
|
|
fi
|
|
_fork_artifact="$(_check_artifact_path ${BASE_SYSTEM_FORK_HOST_PATH} ${1})"
|
|
if [ -n "${_fork_artifact}" ]; then
|
|
echo -n "${_fork_artifact}"
|
|
return
|
|
fi
|
|
set +x
|
|
error "Sorry, I couldn't find a viable built path for ${1} in either mainline or a fork." >&2
|
|
echo "" >&2
|
|
echo "If you're working on CI, this probably means that you're missing a dependency:" >&2
|
|
echo "this job ran ahead of the job which was supposed to upload that artifact." >&2
|
|
echo "" >&2
|
|
echo "If you aren't working on CI, please ping @mesa/ci-helpers to see if we can help." >&2
|
|
echo "" >&2
|
|
echo "This job is going to fail, because I can't find the resources I need. Sorry." >&2
|
|
set -x
|
|
exit 1
|
|
}
|
|
|
|
. "${SCRIPTS_DIR}/setup-test-env.sh"
|
|
|
|
section_start prepare_rootfs "Preparing root filesystem"
|
|
|
|
set -ex
|
|
|
|
section_switch rootfs "Assembling root filesystem"
|
|
ROOTFS_URL="$(get_path_to_artifact lava-rootfs.tar.zst)"
|
|
[ $? != 1 ] || exit 1
|
|
|
|
rm -rf results
|
|
mkdir -p results/job-rootfs-overlay/
|
|
|
|
artifacts/ci-common/export-gitlab-job-env-for-dut.sh \
|
|
> results/job-rootfs-overlay/set-job-env-vars.sh
|
|
cp artifacts/ci-common/init-*.sh results/job-rootfs-overlay/
|
|
cp "$SCRIPTS_DIR"/setup-test-env.sh results/job-rootfs-overlay/
|
|
|
|
tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ .
|
|
s3_upload job-rootfs-overlay.tar.gz "https://${JOB_ARTIFACTS_BASE}"
|
|
|
|
# Prepare env vars for upload.
|
|
section_switch variables "Environment variables passed through to device:"
|
|
cat results/job-rootfs-overlay/set-job-env-vars.sh
|
|
|
|
section_switch lava_submit "Submitting job for scheduling"
|
|
|
|
touch results/lava.log
|
|
tail -f results/lava.log &
|
|
PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \
|
|
--farm "${FARM}" \
|
|
--device-type "${DEVICE_TYPE}" \
|
|
--boot-method "${BOOT_METHOD}" \
|
|
--job-timeout-min $((CI_JOB_TIMEOUT/60 - 5)) \
|
|
--dump-yaml \
|
|
--pipeline-info "$CI_JOB_NAME: $CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
|
|
--rootfs-url "${ROOTFS_URL}" \
|
|
--kernel-url-prefix "https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}" \
|
|
--kernel-external "${EXTERNAL_KERNEL_TAG}" \
|
|
--first-stage-init artifacts/ci-common/init-stage1.sh \
|
|
--dtb-filename "${DTB}" \
|
|
--jwt-file "${S3_JWT_FILE}" \
|
|
--kernel-image-name "${KERNEL_IMAGE_NAME}" \
|
|
--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
|
|
--visibility-group "${VISIBILITY_GROUP}" \
|
|
--lava-tags "${LAVA_TAGS}" \
|
|
--mesa-job-name "$CI_JOB_NAME" \
|
|
--structured-log-file "results/lava_job_detail.json" \
|
|
--ssh-client-image "${LAVA_SSH_CLIENT_IMAGE}" \
|
|
--project-name "${CI_PROJECT_NAME}" \
|
|
--starting-section "${CURRENT_SECTION}" \
|
|
--job-submitted-at "${CI_JOB_STARTED_AT}" \
|
|
- append-overlay \
|
|
--name=kernel-build \
|
|
--url="${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/kernel-files.tar.zst" \
|
|
--compression=zstd \
|
|
--path="${CI_PROJECT_DIR}" \
|
|
--format=tar \
|
|
- append-overlay \
|
|
--name=job-overlay \
|
|
--url="https://${JOB_ROOTFS_OVERLAY_PATH}" \
|
|
--compression=gz \
|
|
--path="/" \
|
|
--format=tar \
|
|
- submit \
|
|
>> results/lava.log
|