Commit Graph

24 Commits

Author SHA1 Message Date
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
Ed Maste
4d083e6d20 Cirrus-CI: increase timeout to 120m
For some reason build+package+test time went from about 1h10 to over
1h30 (killed due to timeout prior to completion).

The reason for the increase still needs investigation.
2020-02-19 15:56:40 +00:00
Ed Maste
da30a97e0d Cirrus-CI: add make packages to CI test
Now that we can override the format to avoid the time spent compressing
pkgbase packages we can test `make packages` with only 5 minutes or so
added to the CI cycle time.

A future change should switch the CI smoke test to using these packages.

Sponsored by:	The FreeBSD Foundation
2020-01-19 22:29:22 +00:00
Ed Maste
19d4d771fc Cirrus-CI: bump VM image to FreeBSD 12.1
12.0 will be EOL.

Sponsored by:	The FreeBSD Foundation
2020-01-18 20:19:07 +00:00
Ed Maste
98197770c9 cirrus.yml: stop fetching OVMF.fd now that we're using the pkg
Missed in r350302

Sponsored by:	The FreeBSD Foundation
2019-07-30 16:40:33 +00:00
Ed Maste
55ce8dc00f cirrus.yml: use OVMF.fd from uefi-edk2-qemu-x86_64 package
Sponsored by:	The FreeBSD Foundation
2019-07-24 21:08:30 +00:00
Ed Maste
cf973b4420 Cirrus-CI: pass OVMF env var to test script for upcoming changes
In review D19876 ian@ has some proposed improvements to the
tools/boot/ci-qemu-test.sh script.  Start specifying the location of
OVMF.fd fetched by the Cirrus-CI build in advance of those changes.
2019-04-11 13:01:26 +00:00
Ed Maste
9c0fe7f6b9 Add Cirrus CI config file to support CI builds (in downstream projects)
Make use of the CI smoke test script added in r346080.

Reviewed by:	imp, lwhsu
Sponsored by:	The FreeBSD Foundation
2019-04-10 15:38:53 +00:00