diff --git a/.gitlab-ci/conditional-build-image-tags.yml b/.gitlab-ci/conditional-build-image-tags.yml index bf7e803f816..596abdf878c 100644 --- a/.gitlab-ci/conditional-build-image-tags.yml +++ b/.gitlab-ci/conditional-build-image-tags.yml @@ -3,4 +3,4 @@ variables: CONDITIONAL_BUILD_CROSVM_TAG: bb7f75d912ef43be8c9204385d79820a CONDITIONAL_BUILD_FLUSTER_TAG: 3bc3afd7468e106afcbfd569a85f34f9 CONDITIONAL_BUILD_PIGLIT_TAG: 009be6e9949c1121f67c8a3985b08505 - CONDITIONAL_BUILD_VKD3D_PROTON_TAG: 5b73ce9ca2be32a54b88af1949e31ace + CONDITIONAL_BUILD_VKD3D_PROTON_TAG: dea4be3035832821bfb4bb24ec9c4308 diff --git a/.gitlab-ci/container/build-vkd3d-proton.sh b/.gitlab-ci/container/build-vkd3d-proton.sh index e4413598462..ea8dad9da42 100644 --- a/.gitlab-ci/container/build-vkd3d-proton.sh +++ b/.gitlab-ci/container/build-vkd3d-proton.sh @@ -16,6 +16,13 @@ VKD3D_PROTON_COMMIT="041cfa75580090c6b30af2f2721015d15493f14b" VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests" VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src" VKD3D_PROTON_BUILD_DIR="/vkd3d-proton-build" +VKD3D_PROTON_WINE_DIR="/vkd3d-proton-wine64" +VKD3D_PROTON_S3_ARTIFACT="vkd3d-proton.tar.zst" + +if [ ! -d "$VKD3D_PROTON_WINE_DIR" ]; then + echo "Fatal: Directory '$VKD3D_PROTON_WINE_DIR' does not exist. Aborting." + exit 1 +fi git clone https://github.com/HansKristian-Work/vkd3d-proton.git --single-branch -b master --no-checkout "$VKD3D_PROTON_SRC_DIR" pushd "$VKD3D_PROTON_SRC_DIR" @@ -42,7 +49,19 @@ cp \ "$VKD3D_PROTON_DST_DIR/tests/" popd +# Archive and upload vkd3d-proton for use as a LAVA overlay, if the archive doesn't exist yet +ARTIFACT_PATH="${DATA_STORAGE_PATH}/vkd3d-proton/${VKD3D_PROTON_TAG}/${CI_JOB_NAME}/${VKD3D_PROTON_S3_ARTIFACT}" +if FOUND_ARTIFACT_URL="$(find_s3_project_artifact "${ARTIFACT_PATH}")"; then + echo "Found vkd3d-proton at: ${FOUND_ARTIFACT_URL}, skipping upload" +else + echo "Uploaded vkd3d-proton not found, reuploading..." + tar --zstd -cf "$VKD3D_PROTON_S3_ARTIFACT" -C / "${VKD3D_PROTON_DST_DIR#/}" "${VKD3D_PROTON_WINE_DIR#/}" + ci-fairy s3cp --token-file "${S3_JWT_FILE}" "$VKD3D_PROTON_S3_ARTIFACT" \ + "https://${S3_BASE_PATH}/${CI_PROJECT_PATH}/${ARTIFACT_PATH}" +fi + rm -rf "$VKD3D_PROTON_BUILD_DIR" rm -rf "$VKD3D_PROTON_SRC_DIR" +rm "$VKD3D_PROTON_S3_ARTIFACT" section_end vkd3d-proton diff --git a/.gitlab-ci/container/fdo_cntr_export.sh b/.gitlab-ci/container/fdo_cntr_export.sh index cc5041e344c..6a0cbd11311 100644 --- a/.gitlab-ci/container/fdo_cntr_export.sh +++ b/.gitlab-ci/container/fdo_cntr_export.sh @@ -44,6 +44,11 @@ buildah_export() { exit 1 fi + # These components will be provided via LAVA overlays, + # so remove them from the core rootfs + rm -rf "${mountpoint}/vkd3d-proton-tests" + rm -rf "${mountpoint}/vkd3d-proton-wine64" + # Compress to zstd ZSTD_CLEVEL=10 tar -C "$mountpoint" -I zstd -cf "$2" . } diff --git a/.gitlab-ci/lava/lava-submit.sh b/.gitlab-ci/lava/lava-submit.sh index 7011dccb875..52b4dbe0ecf 100755 --- a/.gitlab-ci/lava/lava-submit.sh +++ b/.gitlab-ci/lava/lava-submit.sh @@ -69,6 +69,16 @@ if [ -n "${HWCI_KERNEL_MODULES:-}" ]; then --format=tar ) fi +if [ -n "${VKD3D_PROTON_TAG:-}" ]; then + LAVA_EXTRA_OVERLAYS+=( + - append-overlay + --name=vkd3d-proton + --url="$(find_s3_project_artifact "${DATA_STORAGE_PATH}/vkd3d-proton/${VKD3D_PROTON_TAG}/${MESA_IMAGE_PATH}/vkd3d-proton.tar.zst")" + --path="/" + --format=tar + --compression=zstd + ) +fi PYTHONPATH=/ /lava/lava_job_submitter.py \ --farm "${FARM}" \