xref: /freebsd/tests/ci/tools/ci.conf (revision 1d6b6ea2d0e617d29681da3cf121abec309d272f)
1#!/bin/sh
2#
3# SPDX-License-Identifier: BSD-2-Clause
4#
5# Copyright (c) 2024 The FreeBSD Foundation
6#
7# This software was developed by Cybermancer Infosec <bofh@FreeBSD.org>
8# under sponsorship from the FreeBSD Foundation.
9#
10# Set to a list of third-party software to enable in rc.conf(5).
11export VM_RC_LIST="auditd freebsdci"
12
13if [ "${CITYPE}" != "smoke" ]; then
14export VM_EXTRA_PACKAGES="
15archivers/gtar
16devel/git
17devel/gdb
18devel/py-pytest
19perl5
20lang/python
21lang/python3
22net/isc-dhcp44-server
23net/ndisc6
24net/py-dpkt
25net/scapy
26net/tcptestsuite
27security/nist-kat
28security/nmap
29security/openvpn
30security/sudo
31shells/ksh93
32sysutils/coreutils
33sysutils/porch
34sysutils/sg3_utils
35textproc/jq
36"
37
38	if [ "${TARGET}" = "amd64" ]; then
39		export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} devel/linux-ltp"
40	fi
41fi
42
43vm_extra_pre_umount() {
44cat << EOF >> ${DESTDIR}/boot/loader.conf
45autoboot_delay=1
46beastie_disable="YES"
47loader_logo="none"
48console="comconsole,vidconsole"
49net.fibs=3
50net.inet.ip.fw.default_to_accept=1
51mac_bsdextended_load="YES"
52vfs.zfs.arc_max=4294967296
53kern.vty=sc
54EOF
55cat << EOF >> ${DESTDIR}/etc/kyua/kyua.conf
56test_suites.FreeBSD.ci = 'true'
57test_suites.FreeBSD.fibs = '1 2'
58test_suites.FreeBSD.allow_sysctl_side_effects = '1'
59test_suites.FreeBSD.cam_test_device = '/dev/ada0'
60test_suites.FreeBSD.disks = '/dev/vtbd2 /dev/vtbd3 /dev/vtbd4 /dev/vtbd5 /dev/vtbd6'
61EOF
62cat << EOF >> ${DESTDIR}/etc/rc.conf
63kld_list=""				# Load modules needed by tests
64kld_list="\${kld_list} accf_data"	# sys/kern/socket_accf
65kld_list="\${kld_list} accf_dns"	# sys/kern/socket_accf
66kld_list="\${kld_list} accf_http"	# sys/kern/socket_accf
67kld_list="\${kld_list} accf_tls"	# sys/kern/socket_accf
68kld_list="\${kld_list} blake2"		# sys/opencrypto
69kld_list="\${kld_list} carp"		# sys/netinet/carp
70kld_list="\${kld_list} cryptodev"	# sys/opencrypto
71kld_list="\${kld_list} dummymbuf"	# sys/netpfil
72kld_list="\${kld_list} dummynet"	# sys/netpfil/common
73kld_list="\${kld_list} fusefs"		# sys/fs/fusefs
74kld_list="\${kld_list} if_bridge"	# sys/net/if_bridge_test
75kld_list="\${kld_list} if_enc"		# sys/netpfil/pf
76kld_list="\${kld_list} if_epair"	# sys/net/if_epair_test
77kld_list="\${kld_list} if_ovpn"		# sys/net/if_ovpn
78kld_list="\${kld_list} if_stf"		# sys/net/if_stf
79kld_list="\${kld_list} ipdivert"	# sys/netinet (loads ipdivert)
80kld_list="\${kld_list} ipfw"		# sys/netpfil/ipfw (loads ipfw)
81kld_list="\${kld_list} ipfw_nat"	# sys/netpfil/ipfw (loads ipfw_nat)
82kld_list="\${kld_list} ipl"		# sys/sbin/ipf (loads ipfilter)
83kld_list="\${kld_list} ipsec"		# sys/netipsec
84kld_list="\${kld_list} mac_portacl"	# sys/mac/portacl
85kld_list="\${kld_list} mqueuefs"	# sys/kern/mqueue_test
86kld_list="\${kld_list} pf"		# sys/netpfil/pf
87kld_list="\${kld_list} pflog"		# sys/netpfil/pf
88kld_list="\${kld_list} pflow"		# sys/netpfil/pf
89kld_list="\${kld_list} pfsync"		# sys/netpfil/pf (loads pf)
90kld_list="\${kld_list} sctp"		# sys/netpfil/pf
91kld_list="\${kld_list} tarfs"		# sys/fs/tarfs
92kld_list="\${kld_list} tcpmd5"		# sys/netinet
93background_fsck="NO"
94sendmail_enable="NONE"
95cron_enable="NO"
96syslogd_enable="NO"
97newsyslog_enable="NO"
98EOF
99if [ "${CITYPE}" = "smoke" ]; then
100cat << EOF >> ${DESTDIR}/etc/rc.conf
101freebsdci_type="smoke"
102EOF
103elif [ "${CITYPE}" = "full" ]; then
104cat << EOF >> ${DESTDIR}/etc/rc.conf
105freebsdci_type="full"
106freebsdci_test_filters="${KYUA_TEST_FILTERS}"
107EOF
108fi
109cat << EOF >> ${DESTDIR}/etc/sysctl.conf
110kern.cryptodevallowsoft=1
111kern.ipc.tls.enable=1
112net.add_addr_allfibs=0
113security.mac.bsdextended.enabled=0
114vfs.aio.enable_unsafe=1
115vfs.usermount=1
116EOF
117cat << EOF >> ${DESTDIR}/etc/fstab
118fdesc                      /dev/fd fdescfs   rw      0       0
119EOF
120	mkdir -p ${DESTDIR}/usr/local/etc/rc.d
121	cp -p ${scriptdir}/../../tests/ci/tools/freebsdci ${DESTDIR}/usr/local/etc/rc.d/
122
123	return 0
124}
125
126vm_extra_pkg_rmcache() {
127	if [ -e ${DESTDIR}/usr/local/sbin/pkg ]; then
128		mount -t devfs devfs ${DESTDIR}/dev
129		chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
130			/usr/local/sbin/pkg clean -a
131		umount_loop ${DESTDIR}/dev
132	fi
133
134	return 0
135}
136