Commit graph

86 commits

Author SHA1 Message Date
Muhammad Moinur Rahman
41e9414e26
.cirrus.yml: Add persistent worker
As we have received an external box sponsored by NetActuate we can now
enable the pre-commit tasks to be run in this box.

Once we have enabled this debug if there are any errors and after
confirmation we can enable this for other tasks too.

Sponsored by:	NetActuate
Sponsored by:	The FreeBSD Foundation

Approved by:	emaste, lwhsu
Differential Revision:	https://reviews.freebsd.org/D54220
2025-12-17 19:55:42 +01:00
Siva Mahadevan
2812c917e0 Cirrus-CI: Bump to FreeBSD 15.0-RELEASE
Signed-off-by: Siva Mahadevan <me@svmhdvn.name>
Reviewed by: asomers
Pull request: https://github.com/freebsd/freebsd-src/pull/1929
Sponsored by:  The FreeBSD Foundation
2025-12-17 09:06:59 -05:00
Ed Maste
cca9295dd6 Cirrus-CI: Bump to FreeBSD 14.3 image
Sponsored by:	The FreeBSD Foundation
2025-10-04 12:09:45 -04:00
Ed Maste
ae5914c0e4 Cirrus-CI: Switch back to tzst packages, but use level 1
We previously used `PKG_FORMAT: tar` to avoid spending a lot of time in
zstd compression.  Instead just set PKG_LEVEL to compression level 1,
which still produces packages that are much smaller than uncompressed
tarballs with only a small penalty in build time.

Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52858
2025-10-03 10:49:47 -04:00
Ed Maste
e2796f0359 Cirrus-CI: Build packages in parallel
Reviewed by:	ivy
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52857
2025-10-02 11:35:06 -04:00
Ed Maste
5bba547a67 Cirrus-CI: Use nproc instead of sysctl -n hw.ncpu
It is available on all supproted FreeBSD versions.

Sponsored by:	The FreeBSD Foundation
2025-10-02 11:19:44 -04:00
Ed Maste
2b8bfdcad1 Revert ".cirrus.yml: Reenable CI with pre-commit CI scripts"
This reverts commit 676d64ee83.

These tests take a combined 3h to run and are consuming our montly
Cirrus-CI credits in short order, before failing.

In the PR markj reports that the failure appeared somewhere between:

good: da64f6e047
bad:  b197d2abcb

Unfortunately, even after we find the offending commit and have a fix we
still do not have sufficient monthly compute credit.  Disable these
tests for now, pending a solution to both issues.

PR:		289696
Reviewed by:	ngie
Differential Revision: https://reviews.freebsd.org/D52618
2025-09-21 09:34:30 -04:00
Muhammad Moinur Rahman
676d64ee83
.cirrus.yml: Reenable CI with pre-commit CI scripts
These CI works were disabled as we had been suppressing build logs for
developers running CI. That has been addressed by adding a new variable
called CIENV. So reenable the tests.

Approved by:	lwhsu
Differential Revision:	https://reviews.freebsd.org/D51178
Event: Oslo Hackthon 202508
2025-08-27 12:50:02 +02:00
Muhammad Moinur Rahman
be0b4916f1
.cirrus.yml: Switch to manual mode for internal CI
Pre-commit CI task using the FreeBSD internal CI system silences the
build logs. This is hard to decode the actual problem on why a build is
failing without any clue as the buildlogs are removed once the task
fails.

For now disable the tasks using manual trigger_type.

Approved by:	emaste (irc)
2025-07-06 14:40:24 +02:00
Muhammad Moinur Rahman
539f84db94
tests/ci: Pre-commit CI with CIRRUS-CI
Currently we do not have pre-commit testing mechanism for our src tree.
We have merged the CI test scripts into base(HEAD only). The plan is to
replace the entire Jenkins scripts with the one from the base system.
Limitations of the scripts:
- Full test does not work as intended like in a local environment. Our
  amd64/aarch64/arm64 test requires somewhere near 4+ hours which is not
  supported by CIRRUS-CI hosted systems yet as the hard limitation is
  120m. But in future we can try to do this using hosted system with
  various cloud providers.
- Currently only works with main branch, stable/13 and stable/14 has not
  yet been processed. As the scripts are different.

Approved by:	lwhsu
Differential Revision:	https://reviews.freebsd.org/D36257
2025-05-27 18:22:58 +02:00
Muhammad Moinur Rahman
3740606f26
.cirrus.yml: Switch image to 14
The current default image is set to 13.4 which is going to reach EOL
soon so switch the default CI image to 14.

Will be merged into stable/14 only. This has no operational effect on
the build itself.

Approved by:	emaste
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D50110
2025-05-02 00:56:46 +02:00
Muhammad Moinur Rahman
5c67180ffa
.cirrus.yml: Refactor
Most of the matrix options are manually triggered ones but some of those
do not specifically mention them in the name. So add the string
' (manual)` in the name of the jobs for better clarity in the web
interface of cirrus CI.

These are mostly cosmetic changes and have no effects on the build
itself.

Will be merged in all stable versions.

Approved by:	emaste
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D50110
2025-05-02 00:56:02 +02:00
John Baldwin
bd9709c2b3 .cirrus-ci: Update the non-manual GCC build job to GCC 14
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D49159
2025-03-03 11:51:47 -05:00
Ed Maste
5bd7cf837c Cirrus-CI: Bump image to (supported) 13.4
Sponsored by:	The FreeBSD Foundation
2025-02-21 13:49:42 -05:00
John Baldwin
f586d52599 .cirrus-ci: Update the non-manual GCC build job to GCC 13
Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D48291
2025-01-03 10:44:44 -05:00
John Baldwin
40ed89ffc3 .cirrus: Add manual amd64 and aarch64 jobs using GCC 14
Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D48290
2025-01-03 10:44:33 -05:00
Ed Maste
5e310866c3 Cirrus-CI: Switch default job to llvm19-amd64
Clang/LLVM19 matches the default in-tree toolchain.

Sponsored by:	The FreeBSD Foundation
2024-12-12 11:58:01 -05:00
Ed Maste
944f45b809 Cirrus-CI: Add manual LLVM 19 jobs
The base system compiler is now Clang/LLVM 19.

Sponsored by:	The FreeBSD Foundation
2024-12-09 19:04:32 -05:00
Ed Maste
b15889d6d2 Cirrus-CI: switch to FreeBSD 13.3
Sponsored by:	The FreeBSD Foundation
2024-11-01 21:52:04 -04:00
Ed Maste
e8b7c78c1b Cirrus-CI: switch to llvm18 by default
As of commit 439352ac82 Clang/LLVM 18 is the default in-tree compiler.
Follow suit in with the external toolchain package used by Cirrus-CI.

Sponsored by:	The FreeBSD Foundation
2024-04-07 17:23:25 -04:00
Ed Maste
24235654f1 Cirrus-CI: Add manual Clang 18 jobs
Work is in progress to import Clang/LLVM 18 as the base system compiler.
llvm18-lite is not yet in the quarterly package set but but will be
available in the not too distant future, and is available for src forks
that switch to latest packages.  Add manual llvm18 jobs now so that they
can be used for testing.

Sponsored by:	The FreeBSD Foundation
2024-03-01 11:44:09 -05:00
Ed Maste
51c6bf0478 Cirrus-CI: bump Clang versions to 16 and 17
Clang/LLVM 17 is currently the in-tree default compiler, so use it as
the default Cirrus-CI toolchain.  Clang/LLVM 18 is coming soon and needs
to be added here, but I ran into trouble with llvm18-lite package
availability so will look at that later.

Reviewed by:	dim (earlier), Jose Luis Duran
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D44162
2024-02-29 20:11:24 -05:00
Ed Maste
92aa071dc7 Cirrus-CI: stop forcibly installing pkg
Updated pkg is now in quarterly and there is no need to forcibly
install a specific version.

This reverts commit 1c376684c7.
This reverts commit 3c097b06a7.

Reported by:	bapt
Sponsored by:	The FreeBSD Foundation
2023-12-12 19:50:19 -05:00
Mark Johnston
1c376684c7 Cirrus-CI: Use HTTPS to fetch pkg
Discussed with:	Jose Luis Duran <jlduran@gmail.com>
Fixes:	3c097b06a7 ("Cirrus-CI: forcably upgrade pkg to latest")
2023-12-09 10:12:04 -05:00
John Baldwin
9101746a6c Cirrus CI: Add manual jobs for amd64 and aarch64 using GCC 13
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D42840
2023-12-07 14:32:08 -08:00
Jose Luis Duran
3c097b06a7 Cirrus-CI: forcably upgrade pkg to latest
make packages requires the latest pkg for now so force that.

Differential Revision:	https://reviews.freebsd.org/D42908
2023-12-05 19:04:04 +00:00
Brooks Davis
663e4fa38f Cirrus-CI: fix git usage by build user
The git checkout it owned by root, but builds are run as "user".  git
refuses to operate in such an environment unless the directory is
trusted so make "user" trust it.

Fixes CI after 99b8c0c35b.

Sponsored by:	DARPA

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D42903
2023-12-05 19:03:35 +00:00
Jose Luis Duran
5d371834d2 Cirrus CI: Trigger on pull requests or downstream repos
Since Cirrus Labs is limiting their free usage tier [1], limit CI runs
on pull requests only.  Otherwise, we might deplete our monthly quota
within a few days.

Adapt the task amd64-llvm16 to execute on downstream repos or on pull
requests only.

Other alternatives will be further studied.

[1]: https://cirrus-ci.org/blog/2023/07/17/limiting-free-usage-of-cirrus-ci/
2023-10-09 15:13:21 -04:00
Jose Luis Duran
57b9a104a2 Cirrus CI: Only trigger amd64-gcc12 on pull requests
Since Cirrus Labs is limiting their free usage tier [1], limit gcc CI
runs to pull requests only.

[1]: https://cirrus-ci.org/blog/2023/07/17/limiting-free-usage-of-cirrus-ci/
2023-10-06 10:07:59 -04:00
Ed Maste
d8bb58586d Cirrus-CI: restore amd64-gcc12 build/test on main
The Cirrus-CI log length issue was addressed by commit 5f72ceb2c5
("Cirrus-CI: for *-gcc12, build world with make -s"), and the failure
itself by commit 0c785f0602 ("Fix GoogleTest 1.14.0 import").

This reverts commit 0ed2e7e889.

Reported by:	Jose Luis Duran
Sponsored by:	The FreeBSD Foundation
2023-08-18 22:35:39 -04:00
Ed Maste
5f72ceb2c5 Cirrus-CI: for *-gcc12, build world with make -s
Cirrus-CI appears to have a 100MB limit for log output.  Use `make -s`
to attempt to reduce the amount of output.

Sponsored by:	The FreeBSD Foundation
2023-08-17 13:23:15 -04:00
Ed Maste
0ed2e7e889 Cirrus-CI: temporarily disable amd64-gcc12 build/test on main
The amd64-gcc12 job is failing at present.  Unfortunately Cirrus-CI
appears to have a 100MB log limit and we exceed this before the error
is reported.  Disable the job for now until we can address the log
length issue.

See also https://github.com/cirruslabs/cirrus-ci-docs/issues/1176.

Sponsored by:	The FreeBSD Foundation
2023-08-16 16:45:23 -04:00
Warner Losh
d0b2dbfa0e Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
2023-08-16 11:55:03 -06:00
Ed Maste
171f1c1b4f Cirrus-CI: use llvm16 job by default and make llvm15 manual
With commit e048f78b21 the default tool chain is Clang/LLVM 16, so
follow along in the llvm pkg used by Cirrus-CI.

MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2023-06-22 20:26:34 -04:00
Ed Maste
5ad6c907f9 Cirrus-CI: add a manually triggered aarch64-gcc12 task
Sponsored by:	The FreeBSD Foundation
2023-06-09 20:49:31 -04:00
Ed Maste
6024564cd4 Cirrus-CI: split main script into separate world + kernel
It appears that Cirrus-CI has a 100MB limit for log output, and we
exceed that (!) with the amd64-gcc12 build.  Separate world and kernel
build tasks in an attempt to stay below the limit.

This also has the benefit of showing world and kernel build status
separately in the Cirrus-CI UI.

PR:		271903
Sponsored by:	The FreeBSD Foundation
2023-06-09 11:07:24 -04:00
Ed Maste
df042dcf26 Cirrus-CI: add amd64 and arm64 Clang/LLVM 16 jobs
Reviewed by:	lwhsu (earlier)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D40286
2023-05-30 09:17:15 -04:00
Ed Maste
98c5211847 Cirrus-CI: move arch and toolchain to beginning of task names
This is the key difference between the tasks, so make it the most
prominent.

Sponsored by:	The FreeBSD Foundation
2023-05-30 09:17:09 -04:00
Ed Maste
f326a83c85 Cirrus-CI: switch to -lite LLVM package for native run
This reduces CI cycle time (a small amount).

Suggested by:	brooks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D40136
2023-05-19 09:56:03 -04:00
Ed Maste
9244506a1b Cirrus-CI: hide manual tasks from official runs
Sponsored by:	The FreeBSD Foundation
2023-05-11 14:20:43 -04:00
Ed Maste
f5f1b9a982 Cirrus-CI: add gcc12 automatic task on primary GitHub mirror
We want to get GCC coverage via Cirrus-CI, but don't want to trigger
excessive runs across all forks and branches.  Create a duplicate gcc12
task to run automatically for freebsd/freebsd-src.

Reviewed by:	jhb
Sponsored by:	The FreeBSD Foundation
2023-05-09 17:13:44 -04:00
Ed Maste
75baf3765c Cirrus-CI: set PKG_FORMAT via top level env:
This ensures consistency among different CI scripts, including future
ones for pkgbase work.

Sponsored by:	The FreeBSD Foundation
2023-05-01 14:03:32 -04:00
Brooks Davis
85e8c2a034 Cirrus-CI: Run makeman script
Run makeman and verify that src.conf.5 has been updated if
required and that there are no missing definition files.

Reviewed by:	emaste
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D39682
2023-04-20 22:38:37 +01:00
Brooks Davis
8cee0c9ae9 Cirrus-CI: Run check-ldirs in include/
Check that LDIRS defined in include/Makefile actually exist.

Reviewed by:	emaste
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D39681
2023-04-19 16:58:54 +01:00
Brooks Davis
b4373ce309 Cirrus-CI: Check that make sysent was run
Run the `make sysent` target and verify that the repo isn't modified
afterwards.  This ensures that a pushed branch contains all the
required bits after a change to syscall.master.

Reviewed by:	emaste
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D39680
2023-04-19 16:58:46 +01:00
Brooks Davis
260b2c51b2 Cirrus-CI: Add blank lines between scripts
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39679
2023-04-19 16:58:39 +01:00
QWERTIOX
5e2ba9cb6b Cirrus update to new freebsd instance version
MFC after:	2 weeks
Pull Request:	https://github.com/freebsd/freebsd-src/pull/718
2023-04-19 08:34:28 -06:00
Ed Maste
2ed0305bc3 CI: Run pkgbase METALOG lint script
tools/pkgbase/metalog_reader.lua checks for errors in METALOG (for
pkgbase staging), such as hard links with differing modes, duplicate
entries, etc.  Run it as part of the Cirrus-CI job to prevent
regressions.

Reviewed by:	manu, imp
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D37521
2023-03-14 21:13:46 -04:00
Ed Maste
67fca20eb2 Cirrus-CI: use llvm15 toolchain packages
As of commit 50d7464c3f we use llvm15 as the system toolchain, and
commit eca005d853 added compiler options incompatible with earlier
versions.  Switch to llvm15 packages.

Sponsored by:	The FreeBSD Foundation
2023-02-13 09:29:36 -05:00
Ed Maste
e7f9bdb4a6 Cirrus-CI: switch GCC job to GCC 12
We need a C++20 or later compiler.

Sponsored by:	The FreeBSD Foundation
2023-01-27 15:02:34 -05:00