Commit Graph

57 Commits

Author SHA1 Message Date
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
Ed Maste
170d10421a Cirrus-CI: add gpart show to setup script
GCP instances have stopped resizing the UFS root filesystem.  The 14.x
snapshot image built from b1ef176eb5 works while c89209c674 fails.
Discovered via testing a WIP branch in Cirrus-CI that uses
`image: family/freebsd-14-0-snap`.

Add `gpart show` to the setup script to confirm that the partition
size (as set by Cirrus config / GCP) took effect and to help when
investigating any similar issue in the future.

MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
2023-01-03 11:06:16 -05:00
Ed Maste
612f254c82 Cirrus-CI: move QEMU pkg installation to test script
Occasionally the QEMU package fails to build and isn't available on
-CURRENT using the Latest package set.  Move the package installation
to the test script, so that if the package isn't available we at least
still perform a build test.

Sponsored by:	The FreeBSD Foundation
2022-09-07 13:32:12 -04:00
Ed Maste
9bcded6f5d Cirrus-CI: update image to FreeBSD 13.1 (latest release)
Sponsored by:	The FreeBSD Foundation
2022-06-02 15:25:36 -04:00
Ed Maste
daed785d6f Cirrus-CI: Switch to llvm14 toolchain package
Follow base system update to LLVM 14

Sponsored by:	The FreeBSD Foundation
2022-05-24 16:58:20 -04:00
Ed Maste
75e44873df Cirrus-CI: add a manual amd64-gcc9 build and smoketest job
Allow users to test changes and find GCC-specific issues using Cirrus-CI
against their own GitHub forks.

Reviewed by:	lwhsu, jhb
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34289
2022-02-15 12:55:14 -05:00
Ed Maste
e510f97b48 Cirrus-CI: use qemu-nox11
We use -nographic for the smoke test and there is no need to pull in all
of the x11 deps.  This saves some time and bandwidth during package
installation.

When I originally added Cirrus-CI support the -nox11 package was not
available.

Sponsored by:	The FreeBSD Foundation
2022-02-14 16:06:04 -05:00
Ed Maste
63f4413281 Cirrus-CI: build with LLVM 13 package
As of 28a41182c0 the base system uses Clang/LLVM 13.  Follow along in
Cirrus-CI (which uses a packaged toolchain for speed).

Sponsored by:	The FreeBSD Foundation
2021-11-18 09:57:33 -05:00
Ed Maste
8cba2003e8 Cirrus-CI: add a manually triggered arm64 task
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D31953
2021-09-14 15:12:55 -04:00
Ed Maste
bbf7027055 Cirrus-CI: reduce VM memory to 8G
Cirrus-CI now provides a task memory use graph, and it is clear we do
not need to provision the VM with 24GB.

Sponsored by:	The FreeBSD Foundation
2021-08-30 21:40:37 -04:00
Ed Maste
e1e9e084a7 Revert "Cirrus-CI: Temporarily skip package build + test"
This reverts commit 2bfba2a04b.

As of commit 4e224e4be7 Makefile.inc1 works with old and new pkg.

PR:		257422
Sponsored by:	The FreeBSD Foundation
2021-07-27 16:28:47 -04:00
Ed Maste
a077a4e3b4 Cirrus-CI: report pkg version
PR:		257422
2021-07-26 14:17:59 -04:00
Ed Maste
2bfba2a04b Cirrus-CI: Temporarily skip package build + test
The PKG_FORMAT=tar used by Cirrus CI's pkgbase build is failing after
6cafdee71d ("pkgbase: Track pkg 1.17").  Skip package build and test
in Cirrus-CI until new pkg is available.

PR:		257422
Sponsored by:	The FreeBSD Foundation
2021-07-26 10:36:39 -04:00
Ed Maste
7d9794b34b CI: use amd64 EDK II firmware included with QEMU
QEMU (now) includes a prebuilt EDK II firmare in edk2-x86_64-code.fd.
Use that instead of requring a standalone uefi-edk2-qemu-x86_64 package.

Reviewed by:	imp
MFC after:	3 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D30915
2021-06-26 14:22:48 -04:00
Fedor Korotkov
225605ec16 Cirrus-CI: Use the default Git history depth
Which is `50`.  I saw a few errors like
`Failed to force reset to SHA: object not found!` which seems is
happening because the SHA is not available because there were two
commits pushed almost simultaneously and the second from the top fails
with this error because the SHA is not in the history.

Pull Request:	https://github.com/freebsd/freebsd-src/pull/454

Comments on re-commit from emaste:

Originally committed as fcb4797c90 and reverted in 80a840b8ba due
to the clone operation taking significantly longer.  However, I have
seen many failures due to the "object not found" issue recently.
7 of 37 recent runs failed because of this, and intermittent failures
like this makes CI much less useful.

Prefer longer-running runs to intermittent failures.
2021-06-07 18:50:18 -04:00
Ed Maste
dd41de95a8 Cirrus-CI: retry pkg installation on failure
Pkg installation failed somewhat frequently, always at:

[62/104] Fetching jpeg-turbo-2.0.6.txz: .......... done
pkg: http://pkgmir.geo.freebsd.org/FreeBSD:13:amd64/quarterly/All/jbigkit-2.1_1.txz: No route to host

Move pkg installation to a script and retry once upon failure as a
(hopefully temporary) workaround.

Reviewed by:	imp
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D30613
2021-06-02 22:41:20 -04:00
Ed Maste
903526542a Cirrus-CI: Add descriptive task name
Previously it appeared only as "main" in places like GitHub's list
of checks run as part of a pull request.

MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
2021-06-02 19:58:40 -04:00
Ed Maste
cec2682cd2 Restore Cirrus-CI boot smoke test
This reverts commit a7d593dd1d.
We now use compute_engine_instance which allows us to specify a custom
disk size.  Also go back to using the default qemu version (rather than
qemu42 or qemu-devel) as any issues were fixed some time ago.

Reviewed by:	lwhsu, markj
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D30082
2021-05-05 10:05:58 -04:00
Ed Maste
15c0aaf517 Cirrus-CI: switch to Clang/LLVM 12
dim@ is preparing to import Clang/LLVM 12 into the base system as the
system compiler / toolchain.  Apply the same change to the Cirrus-CI
config.

Reviewed by:	imp, markj
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D30109
2021-05-04 17:07:11 -04:00
Ed Maste
407abff2b9 Cirrus-CI: use FreeBSD 13.0 image for base system CI build
We generally want to build and test on the highest release version, and
FreeBSD 13.0 also brings some performance benefits.

Reviewed by:	lwhsu
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D29842
2021-04-19 15:23:14 -04:00
Ed Maste
f2f24008a2 Cirrus-CI: Add more information to help track down disk full issues
Execute df(1) before and after the build (reporting in MiB for
consistency), and du(1) of /usr/obj.  Also include the uname.
2021-03-03 11:51:08 -05:00
Ed Maste
a7d593dd1d Cirrus-CI: temporarily avoid qemu smoke test boot
Cirrus-CI has been red for some time because we're running out of disk
space on the ephemeral GCP VMs.  For now remove the package + qemu boot,
and just check for build regressions.

This change to be reverted once we have identified and addressed the
underlying issue.

Sponsored by:	The FreeBSD Foundation
2021-03-01 17:37:26 -05:00
Ed Maste
af11c20290 Cirrus-CI: show mounted filesystems and free space at start
CI runs have been encountering disk full errors.  Add a `df` invocation
so that we can see what we're working with.
2021-03-01 11:54:37 -05:00
Ed Maste
80a840b8ba Revert "Cirrus-CI: Use the default Git history depth"
This reverts commit fcb4797c90.
With `CIRRUS_CLONE_DEPTH` unspecified (using the default of 50) the
time to clone the repo increased from a little under 2 minutes to over
6 minutes, possibly due to additional processing required by GitHub.

We will want to watch out for occasional `Failed to force reset to
SHA: object not found!` errors.
2021-01-29 11:22:03 -05:00
Ed Maste
f17fc5439f Cirrus-CI: remove svn2git remnant
Previously Cirrus was skipped on svn_head to avoid running CI on two
different branches with identical content.  With the transition to git
this serves no purpose.

Reported by:	kevans
Sponsored by:	The FreeBSD Foundation
2021-01-29 09:37:47 -05:00
Fedor Korotkov
fcb4797c90 Cirrus-CI: Use the default Git history depth
Which is `50`.  I saw a few errors like
`Failed to force reset to SHA: object not found!` which seems is
happening because the SHA is not available because there were two
commits pushed almost simultaneously and the second from the top fails
with this error because the SHA is not in the history.

Pull Request:	https://github.com/freebsd/freebsd-src/pull/454
2021-01-29 09:29:30 -05:00
Ed Maste
9abc762138 CI: switch to qemu42 package
It appears that booting FreeBSD from qemu's synthesized FAT filesystem
broke somehow in a recent qemu-devel update.  qemu42 works so switch to
it for now.
2020-10-29 02:02:30 +00:00
Alex Richardson
6869aed2cf Speed up Cirrus CI by using CROSS_TOOLCHAIN
Installing the llvm11 package instead of bootstrapping it from the source
tree reduces the build time by about 20 minutes.

The last freebsd/freebsd build that was tested (r366629) took 1h 21m 22s,
whereas my GitHub fork with this .cirrus.yml took 58m 6s.
We could probably further reduce time by using images that have LLVM
pre-installed: the pkg install step took 4 minutes 30s.

Since the bootstrap toolchain is still tested by Jenkins, this should not
reduce test coverage of the CI testing.

Reviewed By:	emaste
Differential Revision: https://reviews.freebsd.org/D26747
2020-10-28 11:54:09 +00:00
Ed Maste
57391dee45 Cirrus-CI: skip svn_head branch
svn_head has the same content as the master or main branch (it's just
the result of a `git svn` conversion instead of svn2git).

Sponsored by:	The FreeBSD Foundation
2020-09-19 13:55:26 +00:00
Ed Maste
db853af62a Cirrus-CI: build as an unprivileged user
The Cirrus-CI-provided working tree is owned by root.  Leave that as is
for simplicity but build as an unprivileged user; this tests building
with an unmodifiable source tree as a side effect.

Continue running the smoke test as root for now, as it failed when run
as an unprivileged user - pkg reported "Fail to chmod
/usr/bin/.pkgtemp.lpq.dUHpEqPGJ9pq:Operation not permitted"

Sponsored by:	The FreeBSD Foundation
2020-09-17 18:47:23 +00:00