Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ci
Path: blob/main/scripts/build/build-kernel-head.sh
1130 views
1
#!/bin/sh
2
3
set -ex
4
5
export MAKEOBJDIRPREFIX=${WORKSPACE}/obj
6
rm -fr ${MAKEOBJDIRPREFIX}
7
8
MAKECONF=${MAKECONF:-/dev/null}
9
SRCCONF=${SRCCONF:-/dev/null}
10
11
cd /usr/src
12
13
if [ -n "${CROSS_TOOLCHAIN}" ]; then
14
CROSS_TOOLCHAIN_PARAM=CROSS_TOOLCHAIN=${CROSS_TOOLCHAIN}
15
fi
16
17
sudo make -j ${JFLAG} -DWITHOUT_CLEAN \
18
kernel-toolchain \
19
TARGET=${TARGET} \
20
TARGET_ARCH=${TARGET_ARCH} \
21
${CROSS_TOOLCHAIN_PARAM} \
22
__MAKE_CONF=${MAKECONF} \
23
SRCCONF=${SRCCONF} \
24
25
sudo make -j ${JFLAG} -DWITHOUT_CLEAN \
26
buildkernel \
27
TARGET=${TARGET} \
28
TARGET_ARCH=${TARGET_ARCH} \
29
${CROSS_TOOLCHAIN_PARAM} \
30
__MAKE_CONF=${MAKECONF} \
31
SRCCONF=${SRCCONF}
32
33
cd /usr/src/release
34
35
sudo make clean
36
sudo make -DNOPORTS -DNOSRC -DNODOC kernel.txz \
37
TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
38
MAKE="make -DDB_FROM_SRC __MAKE_CONF=${MAKECONF} SRCCONF=${SRCCONF}"
39
40
if [ -f ${MAKECONF} ]; then
41
KERNCONF=$(make -f ${MAKECONF} -V KERNCONF)
42
fi
43
KERNCONF=${KERNCONF:-GENERIC}
44
ARTIFACT_DEST=artifact/${FBSD_BRANCH}/${GIT_COMMIT}/${TARGET}/${TARGET_ARCH}
45
if [ "${KERNCONF}" != "GENERIC" ]; then
46
ARTIFACT_SUFFIX="-${KERNCONF}"
47
fi
48
sudo mkdir -p ${ARTIFACT_DEST}
49
50
ARTIFACT_OBJDIR=/usr/obj/usr/src/${TARGET}.${TARGET_ARCH}/release
51
for f in `ls ${ARTIFACT_OBJDIR}/*.txz ${ARTIFACT_OBJDIR}/MANIFEST`; do
52
fb=$(basename ${f})
53
fn=${fb%.*}
54
fe=${fb##*.}
55
if [ "${fn}" != "${fe}" ]; then
56
fnew=${fn}${ARTIFACT_SUFFIX}.${fe}
57
else
58
fnew=${fb}${ARTIFACT_SUFFIX}
59
fi
60
sudo mv ${f} ${ARTIFACT_DEST}/${fnew}
61
done
62
63
echo "${GIT_COMMIT}" | sudo tee ${ARTIFACT_DEST}/revision.txt
64
65
echo "USE_GIT_COMMIT=${GIT_COMMIT}" > ${WORKSPACE}/trigger.property
66
67