aboutsummaryrefslogtreecommitdiff
path: root/tests/ci/tools
Commit message (Collapse)AuthorAgeFilesLines
* tests/ci: Collect environment informationMuhammad Moinur Rahman2025-12-171-22/+35
| | | | | | | | | | | | | | | | | | | For reproducing errors or test results it is important to gather environment information. These environments are divided into two parts. One part is in which environment the artifacts were built into and the second part is in which environment the tests were run. This patch collects thesee information and saves into a .env file in the metadir. After this patch lands we will also need to change our jenkins job where we are uploading the artifact to a central location. This environment file should also be stored along with the artifact. For easier location the image basename and the environment basename are kept same. Approved by: lwhsu MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D54247
* release: Create /firstboot in common VM image creation codeMark Johnston2025-09-111-1/+0
| | | | | | | | | | | | | | | | Some services, such as growfs, only run upon the first boot of an image. The first boot is indicated by the presence of the file /firstboot, which is unlinked after boot. Individual cloudware types shouldn't be responsible for creating it. Do so in a centralized place. Aside from simplifying things, this ensures that we create a metalog entry for the firstboot file. Reviewed by: cperciva, emaste MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D52450
* tests/ci: Add missing kmods and pkgs to unskip testsSiva Mahadevan2025-08-131-0/+19
| | | | | | Signed-off-by: Siva Mahadevan <me@svmhdvn.name> Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D51309
* tests/ci: style: canonicalize, sort, and multiline kmods/pkgsSiva Mahadevan2025-08-131-11/+27
| | | | | | | | | This helps to remove ambiguity and reduce future diffs of changes to the VM_EXTRA_PACKAGES list. Also sort kld_list. Signed-off-by: Siva Mahadevan <me@svmhdvn.name> Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D51308
* tests/ci: Fix unescaped kld_list var in rc.confSiva Mahadevan2025-08-131-16/+16
| | | | | | Signed-off-by: Siva Mahadevan <me@svmhdvn.name> Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D51305
* tests/ci: Add KYUA_TEST_FILTERS to allow user to select specific testsSiva Mahadevan2025-08-132-1/+5
| | | | | Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D51306
* tests/ci: fix missing /usr/local/{sbin,bin} in freebsdci rc PATHSiva Mahadevan2025-07-161-4/+5
| | | | | | | | | | | | | | | | | | Currently, a lot of tests report 'skipped' due to missing binaries in the PATH. The real issue is that /etc/rc forcibly restricts the PATH to the base system only. This patch re-enables a large chunk of skipped tests by adding the missing LOCALBASE directories to the PATH so that Kyua can discover third-party packages. It also fixes some minor rc scripting style as per the official freebsd scripting guide[0]. [0] https://docs.freebsd.org/en/articles/rc-scripting Signed-off-by: Siva Mahadevan <me@svmhdvn.name> Sponsored by: The FreeBSD Foundation Approved by: lwhsu Differential Revision: https://reviews.freebsd.org/D51303
* tests/ci: run ci-full kyua tests in parallelSiva Mahadevan2025-07-041-1/+2
| | | | | | | | | By default, use all available cpus given to the VM. This can be controlled with the already available PARALLEL_JOBS make variable. Signed-off-by: Siva Mahadevan <me@svmhdvn.name> Pull Request: https://github.com/freebsd/freebsd-src/pull/1754
* CI: Add full test supportMuhammad Moinur Rahman2025-04-302-10/+32
| | | | | | | | | | | | | | | | | | | | | | | The patch adds support for running full tests in the local CI Environment. New features added: - New target `ci-full` which runs the full test. This is also the default now - Renamed the previous target `ci-smokeit` to `ci-smoke` - Unlike previous if the available memory is more than 16G a default of 8G will be used - Removed some unnecessary debug messages - Added `dummybuf` kernel module to the list of modules to be loaded on the VM The features that can be tested: `make TARGET=<TARGET> TARGET_ARCH=<TARGET_ARCH> CITYPE=full ci` `make TARGET=<TARGET> TARGET_ARCH=<TARGET_ARCH> ci` is also the same as above as CITYPE full is the default now Approved by: lwhsu Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48015
* Add preliminary in-tree CI infrastructure for developersMuhammad Moinur Rahman2024-04-182-0/+186
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