Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ci
Path: blob/main/scripts/build/build-images.sh
1130 views
1
#!/bin/sh
2
3
SSL_CA_CERT_FILE=/usr/local/share/certs/ca-root-nss.crt
4
5
set -ex
6
7
if [ -z "${GIT_COMMIT}" ]; then
8
echo "No git commit id specified"
9
exit 1
10
fi
11
12
ARTIFACT_SERVER=${ARTIFACT_SERVER:-artifact.ci.freebsd.org}
13
ARTIFACT_SUBDIR=${FBSD_BRANCH}/${GIT_COMMIT}/${TARGET}/${TARGET_ARCH}
14
OUTPUT_IMG_NAME=disk.img
15
16
sudo rm -fr work
17
mkdir -p work
18
cd work
19
20
DIST_PACKAGES="base kernel"
21
if [ "${WITH_DOC}" = 1 ]; then
22
DIST_PACKAGES="${DIST_PACKAGES} doc"
23
fi
24
if [ "${WITH_TESTS}" = 1 ]; then
25
DIST_PACKAGES="${DIST_PACKAGES} tests"
26
fi
27
if [ "${WITH_DEBUG}" = 1 ]; then
28
DIST_PACKAGES="${DIST_PACKAGES} base-dbg kernel-dbg"
29
fi
30
if [ "${WITH_LIB32}" = 1 ]; then
31
DIST_PACKAGES="${DIST_PACKAGES} lib32"
32
if [ "${WITH_DEBUG}" = 1 ]; then
33
DIST_PACKAGES="${DIST_PACKAGES} lib32-dbg"
34
fi
35
fi
36
mkdir -p ufs
37
for f in ${DIST_PACKAGES}
38
do
39
fetch https://${ARTIFACT_SERVER}/snapshot/${ARTIFACT_SUBDIR}/${f}.txz
40
sudo tar Jxf ${f}.txz -C ufs
41
done
42
43
cat <<EOF | sudo tee ufs/etc/fstab
44
# Device Mountpoint FStype Options Dump Pass#
45
/dev/gpt/swapfs none swap sw 0 0
46
/dev/gpt/rootfs / ufs rw 1 1
47
EOF
48
49
sudo dd if=/dev/random of=ufs/boot/entropy bs=4k count=1
50
sudo makefs -d 6144 -t ffs -s 16g -o version=2,bsize=32768,fsize=4096 -Z ufs.img ufs
51
mkimg -s gpt -f raw \
52
-b ufs/boot/pmbr \
53
-p freebsd-boot/bootfs:=ufs/boot/gptboot \
54
-p freebsd-swap/swapfs::1G \
55
-p freebsd-ufs/rootfs:=ufs.img \
56
-o ${OUTPUT_IMG_NAME}
57
zstd --rm ${OUTPUT_IMG_NAME}
58
59
cd ${WORKSPACE}
60
rm -fr artifact
61
mkdir -p artifact/${ARTIFACT_SUBDIR}
62
mv work/${OUTPUT_IMG_NAME}.zst artifact/${ARTIFACT_SUBDIR}
63
64