Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ci
Path: blob/main/jobs/FreeBSD-main-amd64-dtrace_testvm/build.sh
1130 views
1
#!/bin/sh
2
3
TARGET=amd64
4
TARGET_ARCH=amd64
5
WITH_LIB32=1
6
WITH_DEBUG=1
7
WITH_TESTS=1
8
9
SSL_CA_CERT_FILE=/usr/local/share/certs/ca-root-nss.crt
10
11
set -ex
12
13
if [ -z "${GIT_COMMIT}" ]; then
14
echo "No git commit id specified"
15
exit 1
16
fi
17
18
cleanup () {
19
# check mount point inside jail
20
P=${WORKSPACE}/work/ufs/dev
21
if [ `mount | grep ${P} | wc -l` -gt 0 ]; then
22
sudo umount ${P}
23
fi
24
}
25
26
trap cleanup EXIT
27
28
ARTIFACT_SERVER=${ARTIFACT_SERVER:-artifact.ci.freebsd.org}
29
ARTIFACT_SUBDIR=dtrace-test/${FBSD_BRANCH}/${GIT_COMMIT}/${TARGET}/${TARGET_ARCH}
30
OUTPUT_IMG_NAME=disk-test.img
31
32
sudo rm -fr work
33
mkdir -p work
34
cd work
35
36
DIST_PACKAGES="base kernel"
37
if [ "${WITH_DOC}" = 1 ]; then
38
DIST_PACKAGES="${DIST_PACKAGES} doc"
39
fi
40
if [ "${WITH_TESTS}" = 1 ]; then
41
DIST_PACKAGES="${DIST_PACKAGES} tests"
42
fi
43
if [ "${WITH_DEBUG}" = 1 ]; then
44
DIST_PACKAGES="${DIST_PACKAGES} base-dbg kernel-dbg"
45
fi
46
if [ "${WITH_LIB32}" = 1 ]; then
47
DIST_PACKAGES="${DIST_PACKAGES} lib32"
48
if [ "${WITH_DEBUG}" = 1 ]; then
49
DIST_PACKAGES="${DIST_PACKAGES} lib32-dbg"
50
fi
51
fi
52
mkdir -p ufs
53
for f in ${DIST_PACKAGES}
54
do
55
fetch https://${ARTIFACT_SERVER}/${ARTIFACT_SUBDIR}/${f}.txz
56
sudo tar Jxf ${f}.txz -C ufs
57
done
58
59
sudo cp /etc/resolv.conf ufs/etc/
60
sudo mount -t devfs devfs ufs/dev
61
sudo chroot ufs env ASSUME_ALWAYS_YES=yes pkg update
62
sudo chroot ufs pkg install -y jq libxml2 nmap pdksh perl5
63
sudo umount ufs/dev
64
65
cat <<EOF | sudo tee ufs/etc/fstab
66
# Device Mountpoint FStype Options Dump Pass#
67
/dev/gpt/swapfs none swap sw 0 0
68
/dev/gpt/rootfs / ufs rw 1 1
69
fdesc /dev/fd fdescfs rw 0 0
70
EOF
71
72
cat <<EOF | sudo tee ufs/etc/rc.conf
73
kld_list="sctp"
74
EOF
75
76
cat <<EOF | sudo tee ufs/etc/rc.local
77
#!/bin/sh -ex
78
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
79
export PATH
80
echo
81
echo "--------------------------------------------------------------"
82
echo "start kyua tests!"
83
echo "--------------------------------------------------------------"
84
cd /usr/tests/cddl/usr.sbin/dtrace
85
/usr/bin/kyua test
86
/usr/bin/kyua report --verbose --results-filter passed,skipped,xfail,broken,failed --output test-report.txt
87
/usr/bin/kyua report-junit --output=test-report.xml
88
shutdown -p now
89
EOF
90
91
cat <<EOF | sudo tee -a ufs/etc/kyua/kyua.conf
92
test_suites.FreeBSD.ci = 'true'
93
EOF
94
95
sudo rm -f ufs/etc/resolv.conf
96
97
sudo dd if=/dev/random of=ufs/boot/entropy bs=4k count=1
98
sudo makefs -d 6144 -t ffs -f 200000 -s 8g -o version=2,bsize=32768,fsize=4096 -Z ufs.img ufs
99
mkimg -s gpt -f raw \
100
-b ufs/boot/pmbr \
101
-p freebsd-boot/bootfs:=ufs/boot/gptboot \
102
-p freebsd-swap/swapfs::1G \
103
-p freebsd-ufs/rootfs:=ufs.img \
104
-o ${OUTPUT_IMG_NAME}
105
zstd --rm ${OUTPUT_IMG_NAME}
106
107
cd ${WORKSPACE}
108
rm -fr artifact
109
mkdir -p artifact/${ARTIFACT_SUBDIR}
110
mv work/${OUTPUT_IMG_NAME}.zst artifact/${ARTIFACT_SUBDIR}
111
112
echo "USE_GIT_COMMIT=${GIT_COMMIT}" > ${WORKSPACE}/trigger.property
113
114