Commit Graph

56 Commits

Author SHA1 Message Date
Alex Auvolat
a6c6c44310 nix: build and test fjall feature 2025-08-27 18:54:42 +02:00
Renjaya Raga Zenta
8843aa92fa feat: add log to journald feature
The systemd-journald is used in most major Linux distros that use systemd.
This enables logging using the systemd-journald native protocol, instead
of just writing to stderr.
2025-06-02 11:55:27 +07:00
Alex Auvolat
ec1a475923 build with rust 1.82.0 2025-02-03 17:46:48 +01:00
Alex Auvolat
390a5d97fe nix, ci: build with Crane
This removes our dependency on cargo2nix, which was causing us some
issues. Whereas cargo2nix creates one Nix derivation per crate, Crane
uses only two derivations:

1. Build dependencies only
2. Build the final binary

This means that during the second step, no caching can be done. For
instance, if we do a change in garage_model, we need to recompile all of
the Garage crates including those that do not depend on garage_model.
On the upside, this allows all of the Garage crates to be built at once
using cargo build logic, which is optimized for high parallelism and
better pipelining between all of the steps of the build. All in all,
this makes most builds faster than cargo2nix.

A few other changes have been made to the build scripts and CI:

- Unit tests are now run within a Nix derivation. In fact, we have
  different derivations to run the tests using LMDB and Sqlite as
  metadata db engines.

- For debug builds, most CI steps now run in parallel (with the notable
  exception of the smoke test that runs after the build, which is
  inevitable).

- We no longer pass the GIT_VERSION argument when building debug builds
  and running the tests. This means that dev binaries and test
  binaries don't know the exact version of Garage they are from. That
  shouldn't be an issue in most cases.

- The not-dynamic.sh scripts has been fixed to fail if the file does not
  exist.
2025-02-03 16:39:50 +01:00
Alex Auvolat
bb3e0f7d22 nix CI: reduce redundant work 2025-01-27 18:09:51 +01:00
Alex Auvolat
83887a8519 nix build: remove clippy build env that doesn't work 2025-01-12 17:51:33 +01:00
Alex Auvolat
0a15db6960 nix build: update rustc to v1.78 2025-01-12 17:37:36 +01:00
Alex Auvolat
7061fa5a56 use rust 1.77 in nix/compile.nix 2024-08-26 19:19:16 +02:00
Alex Auvolat
f7cd4eb600 Merge branch 'main' into next-0.10 2024-03-26 16:34:40 +01:00
Alex Auvolat
fe8a7819fa [syslog] Add support to logging to syslog
Original patch by Jakub Jirutka for Alpine Linux port.
2024-03-20 14:22:18 +01:00
Alex Auvolat
0038ca8a78 Merge branch 'main' into next-0.10 2024-03-18 20:19:30 +01:00
Alex Auvolat
b55f52a9b7 [sqlite-r2d2] run integration test with all db engines 2024-03-18 18:31:35 +01:00
Alex Auvolat
44454aac01 [rm-sled] Remove the Sled database engine 2024-03-08 14:11:02 +01:00
Alex Auvolat
d35d4599de [nix-improvements] use kaniko and manifest-tools from nixpkgs, simplify 2024-02-09 11:15:52 +01:00
Alex Auvolat
9900368380 [nix-improvements] modernize Nix infrastructure 2024-02-09 11:10:13 +01:00
Alex Auvolat
8724aabdf5 [oxalica-toolchain-only] remove obsolete comment on toolchains 2024-02-08 23:23:27 +01:00
Alex Auvolat
57024a2129 [oxalica-toolchain-only] remove custom toolchains from toolchains.nix 2024-02-08 23:21:00 +01:00
Alex Auvolat
9e0b1dcf1c [oxalica-toolchain-only] remove use of nixos rust toolchain 2024-02-08 19:10:26 +01:00
Alex Auvolat
33e6db8b72 [dep-upgrade-202402] update rustc to 1.73 2024-02-08 12:33:09 +01:00
Alex Auvolat
2e90e1c124 Merge branch 'main' into next 2023-08-29 11:32:42 +02:00
Florian Klink
79ca8e76a4 nix/common.nix: use pattern from nix-community/flake-compat
This is still a bit confusing, as normally the flake.defaultNix attrset
gets exposed via a top-level default.nix, but at least it brings us
closer to that.
2023-07-16 12:52:14 +03:00
Alex Auvolat
865f0c7d0c Add LMDB to debug builds 2023-06-09 12:04:28 +02:00
Alex Auvolat
5efcdc0de3 Update rust toolchain to 1.68 and simplify Nix stuff 2023-04-25 14:46:47 +02:00
Alex Auvolat
f251b4721f Apply nixfmt to all .nix files; fix devshell and add it to cache 2023-01-26 12:25:48 +01:00
Alex Auvolat
e76dba9561 Make repository into a Nix flake 2022-11-16 23:25:34 +01:00
Alex Auvolat
002b9fc50c Add TLS support for Consul discovery + refactoring 2022-10-18 18:38:20 +02:00
Alex Auvolat
667ca9d3e3 Cleanup nix scripts 2022-10-18 12:48:31 +02:00
Alex Auvolat
00cf076412 Fix cargo2nix feature discovery 2022-10-18 12:15:45 +02:00
Alex Auvolat
e89e047c5a Fix i386 build with custom toolchain (armv6 unknown state) 2022-10-14 18:10:24 +02:00
Alex Auvolat
8d04ae7014 cargo2nix unstable (patched), rust 1.63.0, nixpkgs 22.05 (32-bit builds are broken) 2022-10-14 14:30:48 +02:00
Alex
2197753dfd Merge pull request 'Add step to generate multi-arch Docker container in CI' (#393) from multi-arch-container into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/393
2022-09-27 11:55:49 +02:00
Alex Auvolat
d104ae8711 Add step to generate multi-arch Docker container in CI 2022-09-26 19:09:55 +02:00
Alex Auvolat
e89f880694 Enable k2v feature flag in CI 2022-09-20 17:54:41 +02:00
Alex Auvolat
782630fc27 Initialize metrics exporter earlier (fix #389) 2022-09-20 17:50:22 +02:00
Alex Auvolat
7f54706b95 Merge branch 'lx-perf-improvements' into netapp-stream-body 2022-09-08 15:50:56 +02:00
Alex Auvolat
f310fce34b Inject GIT_VERSION even later 2022-09-07 18:30:15 +02:00
Alex Auvolat
db61f41030 Move GIT_VERSION injection later in build chain to reduce build times 2022-09-07 11:59:56 +02:00
Alex Auvolat
2c2b93acdf Update Nix files with optional db engines 2022-09-06 17:20:10 +02:00
Alex Auvolat
7de53a4d66 Force disable pkg-config for libsodum-sys and libzstd-sys 2022-09-06 16:41:58 +02:00
Alex Auvolat
8d77a76df1 Update .nix files 2022-09-06 15:49:41 +02:00
Alex Auvolat
5d065b8a0f cargo2nix fix to fetchCrateGit 2022-08-29 17:24:53 +02:00
Quentin Dufour
2c7bae935a Configure structopt to report the right version
By default, structopt reports the value provided by
the env var CARGO_PKG_VERSION, feeded by Cargo when reading
Cargo.toml. However for Garage we use a versioning based on git,
so we often report a version that is behind the real version.
In this commit, we create garage_util::version::garage() that
reports the right version and configure all structopt subcommands
to call this function instead of using the env var.
2022-08-11 10:21:45 +02:00
Quentin Dufour
fcb04843f7 Run clippy in nix, leveraging nix caching ability 2022-07-26 18:27:52 +02:00
Quentin Dufour
5fb8584247 Refactor default.nix to follow Nix Flakes patterns 2022-07-26 18:27:52 +02:00
Quentin Dufour
96561c48a1 Bump Nix image to 22.05 2022-07-26 18:27:52 +02:00
Quentin Dufour
9c9e483375 Put log-lines in nix.conf 2022-07-26 18:27:51 +02:00
Quentin Dufour
0529f3c34d Patch cargo2nix openssl override 2022-03-17 12:17:38 +01:00
Quentin Dufour
2a3afcaf65 Test WinSCP 2022-03-03 14:29:10 +01:00
Quentin Dufour
5d19f3d2d7 Add integration tests to Drone 2022-02-10 17:55:50 +01:00
Quentin Dufour
084dcdbd3a Upgrade cargo2nix 2022-02-10 17:55:50 +01:00