1*0119c894STomeu Vizoso#!/bin/bash 2*0119c894STomeu Vizoso# SPDX-License-Identifier: MIT 3*0119c894STomeu Vizoso 4*0119c894STomeu Vizososet -ex 5*0119c894STomeu Vizoso 6*0119c894STomeu Vizoso# Clean up stale rebases that GitLab might not have removed when reusing a checkout dir 7*0119c894STomeu Vizosorm -rf .git/rebase-apply 8*0119c894STomeu Vizoso 9*0119c894STomeu Vizoso. .gitlab-ci/container/container_pre_build.sh 10*0119c894STomeu Vizoso 11*0119c894STomeu Vizoso# libssl-dev was uninstalled because it was considered an ephemeral package 12*0119c894STomeu Vizosoapt-get update 13*0119c894STomeu Vizosoapt-get install -y libssl-dev 14*0119c894STomeu Vizoso 15*0119c894STomeu Vizosoif [[ "$KERNEL_ARCH" = "arm64" ]]; then 16*0119c894STomeu Vizoso GCC_ARCH="aarch64-linux-gnu" 17*0119c894STomeu Vizoso DEBIAN_ARCH="arm64" 18*0119c894STomeu Vizoso DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb" 19*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dtb" 20*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb" 21*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb" 22*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8016-sbc.dtb" 23*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8096-db820c.dtb" 24*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb" 25*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8173-elm-hana.dtb" 26*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb" 27*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb" 28*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dtb" 29*0119c894STomeu Vizosoelif [[ "$KERNEL_ARCH" = "arm" ]]; then 30*0119c894STomeu Vizoso GCC_ARCH="arm-linux-gnueabihf" 31*0119c894STomeu Vizoso DEBIAN_ARCH="armhf" 32*0119c894STomeu Vizoso DEVICE_TREES="arch/arm/boot/dts/rockchip/rk3288-veyron-jaq.dtb" 33*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm/boot/dts/allwinner/sun8i-h3-libretech-all-h3-cc.dtb" 34*0119c894STomeu Vizoso DEVICE_TREES+=" arch/arm/boot/dts/nxp/imx/imx6q-cubox-i.dtb" 35*0119c894STomeu Vizoso apt-get install -y libssl-dev:armhf 36*0119c894STomeu Vizosoelse 37*0119c894STomeu Vizoso GCC_ARCH="x86_64-linux-gnu" 38*0119c894STomeu Vizoso DEBIAN_ARCH="x86_64" 39*0119c894STomeu Vizoso DEVICE_TREES="" 40*0119c894STomeu Vizosofi 41*0119c894STomeu Vizoso 42*0119c894STomeu Vizosoexport ARCH=${KERNEL_ARCH} 43*0119c894STomeu Vizosoexport CROSS_COMPILE="${GCC_ARCH}-" 44*0119c894STomeu Vizoso 45*0119c894STomeu Vizoso# The kernel doesn't like the gold linker (or the old lld in our debians). 46*0119c894STomeu Vizoso# Sneak in some override symlinks during kernel build until we can update 47*0119c894STomeu Vizoso# debian. 48*0119c894STomeu Vizosomkdir -p ld-links 49*0119c894STomeu Vizosofor i in /usr/bin/*-ld /usr/bin/ld; do 50*0119c894STomeu Vizoso i=$(basename $i) 51*0119c894STomeu Vizoso ln -sf /usr/bin/$i.bfd ld-links/$i 52*0119c894STomeu Vizosodone 53*0119c894STomeu Vizoso 54*0119c894STomeu VizosoNEWPATH=$(pwd)/ld-links 55*0119c894STomeu Vizosoexport PATH=$NEWPATH:$PATH 56*0119c894STomeu Vizoso 57*0119c894STomeu Vizosogit config --global user.email "fdo@example.com" 58*0119c894STomeu Vizosogit config --global user.name "freedesktop.org CI" 59*0119c894STomeu Vizosogit config --global pull.rebase true 60*0119c894STomeu Vizoso 61*0119c894STomeu Vizoso# Try to merge fixes from target repo 62*0119c894STomeu Vizosoif [ "$(git ls-remote --exit-code --heads ${UPSTREAM_REPO} ${TARGET_BRANCH}-external-fixes)" ]; then 63*0119c894STomeu Vizoso git pull ${UPSTREAM_REPO} ${TARGET_BRANCH}-external-fixes 64*0119c894STomeu Vizosofi 65*0119c894STomeu Vizoso 66*0119c894STomeu Vizoso# Try to merge fixes from local repo if this isn't a merge request 67*0119c894STomeu Vizosoif [ -z "$CI_MERGE_REQUEST_PROJECT_PATH" ]; then 68*0119c894STomeu Vizoso if [ "$(git ls-remote --exit-code --heads origin ${TARGET_BRANCH}-external-fixes)" ]; then 69*0119c894STomeu Vizoso git pull origin ${TARGET_BRANCH}-external-fixes 70*0119c894STomeu Vizoso fi 71*0119c894STomeu Vizosofi 72*0119c894STomeu Vizoso 73*0119c894STomeu Vizosofor opt in $ENABLE_KCONFIGS; do 74*0119c894STomeu Vizoso echo CONFIG_$opt=y >> drivers/gpu/drm/ci/${KERNEL_ARCH}.config 75*0119c894STomeu Vizosodone 76*0119c894STomeu Vizosofor opt in $DISABLE_KCONFIGS; do 77*0119c894STomeu Vizoso echo CONFIG_$opt=n >> drivers/gpu/drm/ci/${KERNEL_ARCH}.config 78*0119c894STomeu Vizosodone 79*0119c894STomeu Vizoso 80*0119c894STomeu Vizosoif [[ -n "${MERGE_FRAGMENT}" ]]; then 81*0119c894STomeu Vizoso ./scripts/kconfig/merge_config.sh ${DEFCONFIG} drivers/gpu/drm/ci/${MERGE_FRAGMENT} 82*0119c894STomeu Vizosoelse 83*0119c894STomeu Vizoso make `basename ${DEFCONFIG}` 84*0119c894STomeu Vizosofi 85*0119c894STomeu Vizoso 86*0119c894STomeu Vizosomake ${KERNEL_IMAGE_NAME} 87*0119c894STomeu Vizoso 88*0119c894STomeu Vizosomkdir -p /lava-files/ 89*0119c894STomeu Vizosofor image in ${KERNEL_IMAGE_NAME}; do 90*0119c894STomeu Vizoso cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/. 91*0119c894STomeu Vizosodone 92*0119c894STomeu Vizoso 93*0119c894STomeu Vizosoif [[ -n ${DEVICE_TREES} ]]; then 94*0119c894STomeu Vizoso make dtbs 95*0119c894STomeu Vizoso cp ${DEVICE_TREES} /lava-files/. 96*0119c894STomeu Vizosofi 97*0119c894STomeu Vizoso 98*0119c894STomeu Vizosomake modules 99*0119c894STomeu Vizosomkdir -p install/modules/ 100*0119c894STomeu VizosoINSTALL_MOD_PATH=install/modules/ make modules_install 101*0119c894STomeu Vizoso 102*0119c894STomeu Vizosoif [[ ${DEBIAN_ARCH} = "arm64" ]]; then 103*0119c894STomeu Vizoso make Image.lzma 104*0119c894STomeu Vizoso mkimage \ 105*0119c894STomeu Vizoso -f auto \ 106*0119c894STomeu Vizoso -A arm \ 107*0119c894STomeu Vizoso -O linux \ 108*0119c894STomeu Vizoso -d arch/arm64/boot/Image.lzma \ 109*0119c894STomeu Vizoso -C lzma\ 110*0119c894STomeu Vizoso -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \ 111*0119c894STomeu Vizoso /lava-files/cheza-kernel 112*0119c894STomeu Vizoso KERNEL_IMAGE_NAME+=" cheza-kernel" 113*0119c894STomeu Vizoso 114*0119c894STomeu Vizoso # Make a gzipped copy of the Image for db410c. 115*0119c894STomeu Vizoso gzip -k /lava-files/Image 116*0119c894STomeu Vizoso KERNEL_IMAGE_NAME+=" Image.gz" 117*0119c894STomeu Vizosofi 118*0119c894STomeu Vizoso 119*0119c894STomeu Vizoso# Pass needed files to the test stage 120*0119c894STomeu Vizosomkdir -p install 121*0119c894STomeu Vizosocp -rfv .gitlab-ci/* install/. 122*0119c894STomeu Vizosocp -rfv install/common install/ci-common 123*0119c894STomeu Vizosocp -rfv drivers/gpu/drm/ci/* install/. 124*0119c894STomeu Vizoso 125*0119c894STomeu Vizoso. .gitlab-ci/container/container_post_build.sh 126*0119c894STomeu Vizoso 127*0119c894STomeu Vizosoif [[ "$UPLOAD_TO_MINIO" = "1" ]]; then 128*0119c894STomeu Vizoso xz -7 -c -T${FDO_CI_CONCURRENT:-4} vmlinux > /lava-files/vmlinux.xz 129*0119c894STomeu Vizoso FILES_TO_UPLOAD="$KERNEL_IMAGE_NAME vmlinux.xz" 130*0119c894STomeu Vizoso 131*0119c894STomeu Vizoso if [[ -n $DEVICE_TREES ]]; then 132*0119c894STomeu Vizoso FILES_TO_UPLOAD="$FILES_TO_UPLOAD $(basename -a $DEVICE_TREES)" 133*0119c894STomeu Vizoso fi 134*0119c894STomeu Vizoso 135*0119c894STomeu Vizoso for f in $FILES_TO_UPLOAD; do 136*0119c894STomeu Vizoso ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" /lava-files/$f \ 137*0119c894STomeu Vizoso https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/$f 138*0119c894STomeu Vizoso done 139*0119c894STomeu Vizoso 140*0119c894STomeu Vizoso S3_ARTIFACT_NAME="kernel-files.tar.zst" 141*0119c894STomeu Vizoso tar --zstd -cf $S3_ARTIFACT_NAME install 142*0119c894STomeu Vizoso ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/${S3_ARTIFACT_NAME} 143*0119c894STomeu Vizoso 144*0119c894STomeu Vizoso echo "Download vmlinux.xz from https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/vmlinux.xz" 145*0119c894STomeu Vizosofi 146*0119c894STomeu Vizoso 147*0119c894STomeu Vizosomkdir -p artifacts/install/lib 148*0119c894STomeu Vizosomv install/* artifacts/install/. 149*0119c894STomeu Vizosorm -rf artifacts/install/modules 150*0119c894STomeu Vizosoln -s common artifacts/install/ci-common 151*0119c894STomeu Vizoso 152*0119c894STomeu Vizosofor image in ${KERNEL_IMAGE_NAME}; do 153*0119c894STomeu Vizoso cp /lava-files/$image artifacts/install/. 154*0119c894STomeu Vizosodone 155*0119c894STomeu Vizoso 156*0119c894STomeu Vizosotar -C artifacts -cf artifacts/install.tar install 157*0119c894STomeu Vizosorm -rf artifacts/install 158