aboutsummaryrefslogtreecommitdiff
path: root/lt-qcom-linux-automerge/builders-kernel.sh
blob: cba68d953a28adcb29f78b1770803a89ff6793db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash

set -ex

function build_integration_kernel()
{
	export ARCH=$1
	export KERNEL_CONFIGS=$2

	source install-gcc-toolchain.sh
	export CROSS_COMPILE="ccache $(basename $(ls -1 ${tcbindir}/*-gcc) gcc)"
	export PATH=${tcbindir}:$PATH

	make distclean
	make ${KERNEL_CONFIGS}

	# build QCOM DTBS with warnings
	if [ "$ARCH" = "arm64" ]; then
		make W=1 arch/$ARCH/boot/dts/qcom/  2>&1 | tee -a qcom-dtbs.log
	elif [ "$ARCH" = "arm" ]; then
		make W=1 arch/$ARCH/boot/dts/  2>&1 | tee -a qcom-dtbs.log
	fi
	make -j$(nproc)
}

if [ ${AUTOMERGE_EXIT_CODE} -ne 0 ]; then
	echo "ERROR: Automerge failed, returned ${AUTOMERGE_EXIT_CODE}"
	exit ${AUTOMERGE_EXIT_CODE}
fi

if [ ! -z "${AUTOMERGE_BRANCH_FAILED}" ]; then
	echo "ERROR: Automerge failed,"
	echo "${AUTOMERGE_BRANCH_FAILED}"
	exit 1
fi

pushd ${INTEGRATION_REPO_PATH}

GIT_STATUS=$(git status -s)
if [ ! -z "${GIT_STATUS}" ]; then
	echo "ERROR: Automerge repository isn't clean,"
	echo "${GIT_STATUS}"
	exit 1
fi

wget https://git.linaro.org/ci/job/configs.git/plain/lt-qcom/install-gcc-toolchain.sh
build_integration_kernel "arm" "multi_v7_defconfig"
build_integration_kernel "arm64" "defconfig"

# record QCOM DTBS warnings, for all builds
DTBS_WARNINGS=$(sed -n "s/.*: Warning (\(.*\)):.*/\1/p" qcom-dtbs.log | sort | uniq -c | sort -nr | sed ':a;N;$!ba;s/\n/\\n\\\n/g')

if [ ! -z ${KERNEL_CI_REPO_URL} ]; then
	git push -f ${KERNEL_CI_REPO_URL} ${INTEGRATION_BRANCH}:${KERNEL_CI_BRANCH}
fi

popd

echo "DTBS_WARNINGS=${DTBS_WARNINGS}" > kernel-build_result_variables