OPNsense - FreeBSD source
Find a file
Muhammad Moinur Rahman cb9d4bb1fb
Add preliminary in-tree CI infrastructure for developers
The goal of this project is to integrate the relevant scripts from the
FreeBSD-CI project (https://github.com/freebsd/freebsd-ci) into the src
repository. This allows developers to run the test suite similar to how
it is executed on ci.freebsd.org, and eventually, have it directly used
by our CI system. This effort is also part of the workflow improvement
project, aiming to incorporate pre-merge testing.

Current Features:
* Does smoke tests using either bhyve(amd64 only) or qemu(Non x86_64 or
  when defined USE_QEMU=1). Currently defined CITYPE=smoke. Once we have
  added full tests we can also utilize something like CITYPE=full
* Most of the resources are dynamically allocated based on available
  resources in the host
* If CPU supports POPCNT or vmm can be loaded then bhyve is used for
  amd64 otherwise automatically installs and uses qemu@nox11
* When required third party applications or packages for booting non-x86
  images are automatically installed

Current Limitation:
* Does not support full tests like the one in our Jenkins
* At this moment this is also not suitable to be used in our Jenkins
  platform as the jobs are divided in multiple smaller tasks and
  artifacts are moved here and there which are not exactly the scenario
  for individual developers.

Future Works:
* Add full tests like the one in ci.freebsd.org
* Add different tests or options to disable some tests
* Add test profiles full
* Possibly add test through Cloud Providers like AWS/GCP/Azure or Cirrus
  or Github Actions
* Update documentation

Test Plan:
cd /usr/src/tests/ci
make ci
make TARGET=amd64 TARGET_ARCH=amd64 ci
make TARGET=amd64 TARGET_ARCH=amd64 USE_QEMU=1 ci
make TARGET=arm64 TARGET_ARCH=aarch64 ci
make TARGET=powerpc TARGET_ARCH=powerpc64 ci
make TARGET=powerpc TARGET_ARCH=powerpc64le ci
make TARGET=riscv TARGET_ARCH=riscv64 ci

Reviewed by:           lwhsu
Sponsored by:          The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D43786
2024-04-18 20:02:24 +02:00
.cirrus-ci Cirrus-CI: add some timing info on pkg install failure 2021-08-04 15:02:00 -04:00
.github Update vendor/libarchive to 3.7.3 2024-04-11 15:48:20 +02:00
bin cp: Use warnc(). 2024-04-17 04:08:38 +02:00
cddl zfs: merge openzfs/zfs@90ba19eb7 2024-04-16 22:54:07 +02:00
contrib libarchive: fix null format string error in tests (unbreaks gcc13 build) 2024-04-17 09:37:04 +02:00
crypto heimdal: asn1: Use unsigned bitfields for named bitsets 2024-04-17 19:49:30 +02:00
etc etc/init.d: decide which variant to use at build time. 2024-04-08 16:52:24 -07:00
gnu misc: Remove ancient SCCS tags. 2023-11-26 22:23:27 -07:00
include bdev_discard_supported: understand discard_granularity=0 2024-04-12 09:00:20 -07:00
kerberos5 kerberos5: Mitigate the possibility of using an old libcrypto 2024-01-18 07:12:14 -08:00
lib lib{c,sys}: normalize export of openat, setcontext, and swapcontext 2024-04-17 23:39:46 +01:00
libexec nuageinit: start the script after zfs 2024-04-17 16:25:02 +02:00
release release: Build dvd image before staging pkgs 2024-04-14 16:45:40 -07:00
rescue rescue: Stop using LDADD_zstd 2024-02-22 20:56:05 +00:00
sbin dumpon: fix set but not used variable 2024-04-18 11:39:16 -04:00
secure caroot: routine update 2024-02-11 00:35:16 -06:00
share intro(7): add link to new networking(7) 2024-04-18 14:58:33 -03:00
stand stand: Install gptboot.efi(8) 2024-04-05 16:53:47 -06:00
sys vtnet: use CURVNET_SET() instead of CURVNET_SET_QUIET() 2024-04-18 07:58:00 -07:00
targets Merge llvm-project main llvmorg-17-init-19304-gd0b54bb50e51 2023-12-08 18:34:50 +01:00
tests Add preliminary in-tree CI infrastructure for developers 2024-04-18 20:02:24 +02:00
tools tools: Remove stray "then" 2024-04-18 08:10:14 -07:00
usr.bin install: Assorted nitpickery. 2024-04-17 04:03:31 +02:00
usr.sbin crunchgen: add --list option 2024-04-17 12:07:25 -06:00
.arcconfig arcanist: use FreeBSD/git project repository instead of FreeBSD/svn 2022-08-23 14:16:41 +00:00
.arclint arc lint: ignore /tests/ in chmod 2017-12-19 03:38:06 +00:00
.cirrus.yml Update vendor/libarchive to 3.7.3 2024-04-11 15:48:20 +02:00
.clang-format Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
.git-blame-ignore-revs Add another commit to .git-blame-ignore-revs 2024-03-15 23:11:52 +00:00
.gitattributes Remove SVN related Git attributes 2023-12-26 10:28:28 -07:00
.gitignore Update vendor/libarchive to 3.7.3 2024-04-11 15:48:20 +02:00
.mailmap AUTHORS: refresh with recent new contributors 2024-04-11 14:49:57 -07:00
CONTRIBUTING.md CONTRIBUTING.md: fix typo from commmit to commit 2023-12-28 10:01:03 -05:00
COPYRIGHT copyright: Bump the copyright date. 2023-12-31 23:15:43 -07:00
LOCKS Update LOCKS for Git 2023-12-26 10:28:25 -07:00
MAINTAINERS MAINTAINERS: change linuxkpi review Phabricator group. 2024-01-16 19:23:39 +00:00
Makefile build: Order kernel-toolchain and buildkernel targets 2024-03-20 01:32:24 -04:00
Makefile.inc1 Makefile.inc1: Fix typo 2024-04-11 11:40:31 -06:00
Makefile.libcompat build{libcompat}: Pass UNIVERSE_TOOLCHAIN_PATH to the _lc_build-tools submake 2023-08-21 21:00:45 -07:00
Makefile.sys.inc Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
ObsoleteFiles.inc tests/unix_stream: test that send(2) of zero bytes is successful 2024-04-14 10:19:20 -07:00
README.md README.md: link to the list of supported platforms 2022-11-01 12:20:55 -03:00
RELNOTES RELNOTES: Add entry for updates to ktrace(2) 2024-04-07 18:52:51 -05:00
UPDATING libc: link libsys as a auxiliary filter library 2024-02-05 20:34:56 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory.

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), FreeBSD handbook on building userland, and Handbook for kernels for more information, including setting make(1) variables.

For information on the CPU architectures and platforms supported by FreeBSD, see the FreeBSD website's Platforms page.

Source Roadmap:

Directory Description
bin System/user commands.
cddl Various commands and libraries under the Common Development and Distribution License.
contrib Packages contributed by 3rd parties.
crypto Cryptography stuff (see crypto/README).
etc Template files for /etc.
gnu Commands and libraries under the GNU General Public License (GPL) or Lesser General Public License (LGPL). Please see gnu/COPYING and gnu/COPYING.LIB for more information.
include System include files.
kerberos5 Kerberos5 (Heimdal) package.
lib System libraries.
libexec System daemons.
release Release building Makefile & associated tools.
rescue Build system for statically linked /rescue utilities.
sbin System commands.
secure Cryptographic libraries and commands.
share Shared resources.
stand Boot loader sources.
sys Kernel sources (see sys/README.md).
targets Support for experimental DIRDEPS_BUILD
tests Regression tests which can be run by Kyua. See tests/README for additional information.
tools Utilities for regression testing and miscellaneous tasks.
usr.bin User commands.
usr.sbin System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see FreeBSD Handbook.