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