summaryrefslogtreecommitdiff
path: root/.cirrus.yml
AgeCommit message (Collapse)Author
2022-01-29Add support for aarch64-apple-darwinRyan Zoeller
Replace 'OSX' language with 'macOS', to match Rust's language.
2022-01-24uclibc supportJonah Petri
2022-01-22Better type safety for mqueueAlan Somers
On some platforms, mqd_t is a pointer. That means code like the below can trigger a segfault. Fix it by defining a Newtype around mqd_t that prevents use-after-free and dangling pointer scenarios. ```rust fn invalid_mqd_t() { let mqd: libc::mqd_t = std::ptr::null_mut(); mq_close(mqd).unwrap(); } ``` Also, get test coverage for mqueue in CI on FreeBSD.
2022-01-12Re-enable deprecation warnings on DragonFlyRyan Zoeller
Use latest nightly compiler.
2021-12-20try cargo-hack on Redox. It might work.Alan Somers
2021-12-20Use the correct toolchain for cargo-hackAlan Somers
2021-12-20feature-gate most Nix functionsVincent Dagonneau
Using features reduces build time and size for consumer crates. By default all features are enabled.
2021-12-14Pin the nightly compiler version used with DragonflyBSDAlan Somers
Newer rustc is broken on DragonflyBSD, probably by https://github.com/rust-lang/rust/commit/e68887e67cc6b7bb4ea5113a40eaa4c0831bda13
2021-12-14Update the OSX test environment for Big SurAlan Somers
Big Sur is the first OSX version that supports preadv/pwritev
2021-11-18Ensure that MSRV tests do not regressAleksey Kladov
When testing with older versions of rustc, there's a CI failure mode when our dependency, which used to be compatible with that Rust version, publishes a new version which can't be compiled using that old Rust anymore. That's pretty unfortunate, as that means that third parties can break our CI without any changes to the code in this repo. To protect against that, let's use Cargo.lock on CI, but only when testing against older versions. For stable Rust, we continue to generate Cargo.lock with freshest dependencies. Implementation wise, we save known-good Cargo.lock as `Cargo.lock.msrv`, and just copy that in every relevant CI job. To get a working `Cargo.lock.msrv`, I run `cargo +nightly generate-lockfile -Zminimal-versions` -- that is guaranteed to support the oldest Rust version we can.
2021-11-15Suppress deprecation warnings on DragonflyAlan Somers
libc::stat is deprecated on DragonflyBSD in libc. But there isn't any alternative yet, so Nix must simply suppress the warnings. It's used in too many places to suppress each one individually, so just suppress all deprecation warnings globally until it's properly fixed. https://github.com/rust-lang/libc/pull/2522
2021-11-15Update Redox compiler.Alan Somers
The latest libc uses the native_link_modifiers feature, which isn't known by the old compiler used in the Redox builds. Update Redox's compiler to that used by the Redox project itself.
2021-11-15Revert "Suppress a warning from the latest clippy"Alan Somers
This reverts commit fb1ae125d931b2de5bae05df614e8af565bf31c6. Nightly clippy removed the warning in question.
2021-10-22Revert "Temporarily use Rust 1.51.0 for testing cross-based builds"Alan Somers
This reverts commit 5e7c5f6e885753cb1d8ac2459da5a40b361ac684. Upstream swiftly fixed the bug.
2021-10-21Temporarily use Rust 1.51.0 for testing cross-based buildsAlan Somers
A bug in gimli-rs/object is causing the build to fail at the "cargo install cross" step. Until that's fixed, we must use Rust 1.51.0 or newer for cross-based builds. https://github.com/gimli-rs/object/issues/394
2021-10-03Suppress a warning from the latest clippyAlan Somers
2021-09-19Clippy cleanupAlan Somers
And this time, start running Clippy in CI
2021-09-17Update the FreeBSD CI imageAlan Somers
FreeBSD 11.4 will be EoL on 30-Sept
2021-09-04Check Dragonfly BSD and OpenBSD in CIAlan Somers
Build, but don't test, for these operating systems. Thanks to @rtzoeller for the tip. Also, fix the OpenBSD build.
2021-09-04DRY in the CI configAlan Somers
* Define the build and test scripts once instead of repeating them * Don't use cross with OSX. We no longer need it.
2021-09-04Document more thingsAlan Somers
Also, test rustdoc in CI, and demote missing_docs from a deny to a warning (but still deny it in CI).
2021-08-27Ignore vsock tests on Linux aarch64Alan Somers
Apparently AWS Graviton containers don't support it. socket() retunrs EAFNOSUPPORT in that environment. Also, be more selective about skipping tests under QEMU Instead of skipping them on architectures where we happen to use QEMU, only skip them when QEMU is actually being used.
2021-08-27Test Linux aarch64 on real aarch64 hardware.Alan Somers
2021-08-22Multiple CI improvements:Alan Somers
* Install cross the easy way, via cargo * Don't test in release mode. Nix contains no release-dependent paths, and release mode testing has to my knowledge never revealed a bug in Nix. * Add Linux powerpc back to CI, fixed by the latest cross. * Check the tests even on platforms that can't run them. * DRY for the Illumos and Redox sections * Cross-check iOS from a Linux VM instead of OSX * Revert the workaround for rust-lang/rustup issue 2774
2021-08-13Remove support for 32-bit Apple targetsAlan Somers
2021-08-13Fix the build with bitflags-1.3.0 and newerAlan Somers
Bitflags raised its MSRV in a minor version, forcing all consumers to follow suit. Fixes #1491
2021-05-30Adapt aio to the world of async/await, and fix some potential unsoundness.Alan Somers
* libc::aiocb must not be moved while the kernel has a pointer to it. This change enforces that requirement by using std::pin. * Split LioCbBuilder out of LioCb. struct LioCb relied on the (incorrect) assumption that a Vec's elements have a stable location in memory. That's not true; they can be moved during Vec::push. The solution is to use a Vec in the new Builder struct, but finalize it to a boxed slice (which doesn't support push) before allowing it to be submitted to the kernel. * Eliminate owned buffer types. mio-aio no longer uses owned buffers with nix::aio. There's little need for it in the world of async/await. I'm not aware of any other consumers. This substantially simplifies the code.
2021-05-23Workaround Rustup bug 2774Alan Somers
A regression in rustup has broken that tool on FreeBSD. Set RUSTUP_IO_THREADS=1 as a workaround. https://github.com/rust-lang/rustup/issues/2774
2021-04-04Check all tests in CIAlan Somers
Travis didn't compile check tests on platforms that couldn't run tests in CI, so they bitrotted. Let's see how bad they are. Most annoyingly, 32-bit Android defines mode_t as 16 bits, but stat.st_mode as 32-bits.
2021-03-21illumos and Solaris supportJason King
Co-authored-by: Dominik Hassler <hadfl@omnios.org> Co-authored-by: Joshua M. Clulow <josh@sysmgr.org>
2021-03-04Remove a duplicate stanza from .cirrus.ymlAlan Somers
2021-02-23During CI, use just 1 cpu for QEMU buildsAlan Somers
https://github.com/cirruslabs/cirrus-ci-docs/issues/741
2021-02-15Bump caps to 0.5.1. Add x32 to CI for cross-builds and Tier 3 list in READMEнаб
2020-12-19Add fuchsia supportAmanda Tait
Allow nix to compile on Fuchsia by conditionally avoiding libc functionality that does not exist for Fuchsia.
2020-12-19Update cross-compilation Rust version to 1.40.0Tamir Duberstein
This was missed in d36353701341df9cfffb4fc4e88c002698d2deda.
2020-12-10Raise MSRV to 1.40.0Alan Somers
This will shortly be needed for Fuchsia support.
2020-12-06Switch all builds from Travis to CirrusAlan Somers
Travis has been super-slow lately (> 6 hours per build). Cirrus is much faster: about 20 minutes. Cirrus also has slightly better test coverage, mainly because it doesn't use SECCOMP. Also, * Fix the Redox CI build. The old Travis configuration didn't actually build for Redox, so we never noticed that Redox can't be built with a stable compiler. Thanks to @coolreader18 for finding this. * Disable the udp_offload tests on cross-tested platforms. These tests are failing with ENOPROTOOPT in Cirrus-CI. I suspect it's due to a lack of support in QEMU. These tests were skipped on Travis because its kernel was too old. * Fix require_kernel_version on Cirrus-CI. Cirrus reports the Linux kernel version as 4.19.112+, which the semver crate can't handle. * Fix test_setfsuid on Cirrus. When run on Cirrus, it seems like the file in /tmp gets deleted as soon as it's closed. Probably an overzealous temporary file cleaner. Use /var/tmp, because no temporary file cleaner should run in there. * Skip mount tests on Cirrus. They fail for an unknown reason. Issue #1351 * Skip the AF_ALG tests on Cirrus-CI Issue #1352
2020-07-03Update the FreeBSD test image to 11.4-releaseAlan Somers
2020-04-19Update the FreeBSD CI image to an 11.3 snapshotAlan Somers
11.2 is EOL.
2019-10-15Use fetch instead of curl during CI on FreeBSDAlan Somers
2019-10-15Use rustup's minimal profile during CI on FreeBSDAlan Somers
This should fix CI on FreeBSD after Rustup 1.20.0 was released, and save time as well.
2019-08-28Raise minimum supported Rust version to 1.36.0Otavio Salvador
The minimum supported Rust version is being raised to 1.36.0 as this is the first release to support the `mem::MaybeUninit` feature. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2019-07-13Fix warnings on Rust 1.37.0Alan Somers
* Replace obsolete range syntax "..." with inclusive range "..=" * Use dyn Trait syntax instead of Box<Trait> * Raise MSRV to 1.27.0 (for dyn Trait syntax) * Raise MSRV to 1.31.0 (because of rand) tempfile pulls in rand, and rand pulls in fuchsia-cprng, which requires 1.31.0. Why rand pulls in fuchsia-cprng I don't know. It's specified as a target-specific dependency, but Cargo tries to build it anyway (only on Linux, not on FreeBSD or OSX). A bug in Cargo 1.27.0?
2019-06-09Enable libc extra_traits featureBryant Mairs
Also bump Rust requirement to 1.25 which is a requirement of that feature
2019-06-06Use Cirrus' Cargo cacheAlan Somers
2018-12-29Switch FreeBSD CI builds from BuildBot to cirrus-ci.comAlan Somers
This change does the following: 1) Adds a CI build on cirrus-ci.com 2) Switches FreeBSD's CI from a jail to a full VM 3) Switches FreeBSD i386's CI from a 32-bit jail to simply using a cross-compiled binary on a 64-bit VM. 4) Switches FreeBSD i386's CI from using stable rust to 1.24.1 (back when I added buildbot, rustup didn't support i686-unknown-freebsd) 5) Switches bors to gate on cirrus-ci rather than buildbot This change does _not_ disable buildbot. That must happen outside of git. Fixes #996